sikulix应用在老系统之路

前言生产环境的系统无法满足自动化。需离线安装sikulix提高一丢丢生产力。公网系统环境：windows11 虚拟机：hyper-v 内网系统：麒麟信安ky3.kb1 目标：老麒麟正常使用sikulix。安装相似环境centos6 ky3.kb1 约等于 centos 6，会不会翻车，试试再说，想知道结果的直接翻到最后。 Untitled.png 从live安装系统到harddisk，不停的 next ，等待安装完成 。检查系统环境 java gcc`` uanme -a rpm -qa | grep ssh [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.32-754.el6.x86_64 #1 SMP Tue Jun 19 21:26:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]# java -version java version "1.7.0_181" OpenJDK Runtime Environment (rhel-2.6.14.10.el6-x86_64 u181-b00) OpenJDK 64-Bit Server VM (build 24.181-b00, mixed mode) [root@localhost ~]# gcc -v Using built-in specs. Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) 踩坑1：过期源，环境部署找不到gcc ，要求至少java8 [!info] CentOS 6 Yum源更新「建议收藏」大家好，又见面了，我是你们的朋友全栈君。 最近在CentOS 6上安装软件一直报错，安装不了，换了163，清华，阿里yum源都不行，进去链接看才发现有关CentOS 6 yum源包全部下架了。 ​​​​ CentOS 6已经随着2020年11月的结束进入了EOL（Reaches End of Life）。所以在2020年12月2日，CentOS官方停止了对CentOS 6的所有更新，并且下架了包括官方所有的CentOS6源，目前阿里、163、清华等CentOS6源已无法使用。 以下官方redme文档的解释： This directory (and version of CentOS) is deprecated.https://cloud.tencent.com/developer/article/2133551#:~:text=CentOS%206%E5%B7%B2%E7%BB%8F%E9%9A%8F%E7%9D%802020%E5%B9%B411%E6%9C%88%E7%9A%84%E7%BB%93%E6%9D%9F%E8%BF%9B%E5%85%A5%E4%BA%86EOL%EF%BC%88Reaches%20End,of%20Life%EF%BC%89%E3%80%82%20%E6%89%80%E4%BB%A5%E5%9C%A82020%E5%B9%B412%E6%9C%882%E6%97%A5%EF%BC%8CCentOS%E5%AE%98%E6%96%B9%E5%81%9C%E6%AD%A2%E4%BA%86%E5%AF%B9CentOS%206%E7%9A%84%E6%89%80%E6%9C%89%E6%9B%B4%E6%96%B0%EF%BC%8C%E5%B9%B6%E4%B8%94%E4%B8%8B%E6%9E%B6%E4%BA%86%E5%8C%85%E6%8B%AC%E5%AE%98%E6%96%B9%E6%89%80%E6%9C%89%E7%9A%84CentOS6%E6%BA%90%EF%BC%8C%E7%9B%AE%E5%89%8D%E9%98%BF%E9%87%8C%E3%80%81163%E3%80%81%E6%B8%85%E5%8D%8E%E7%AD%89CentOS6%E6%BA%90%E5%B7%B2%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E3%80%82 核心就是： wget -O /etc/yum.repos.d/CentOS-Base.repo https://static.lty.fun/%E5%85%B6%E4%BB%96%E8%B5%84%E6%BA%90/SourcesList/Centos-6-Vault-Official.repo wget -O /etc/yum.repos.d/CentOS-Base.repo https://static.lty.fun/%E5%85%B6%E4%BB%96%E8%B5%84%E6%BA%90/SourcesList/Centos-6-Vault-Aliyun.repo 补齐所需要的环境； yum install gcc make cmake gcc-c++ 踩坑2：编译缺少的文件安装sikulix ,liunx系统需要libopencv_javaXYZ.so文件 http://www.sikulix.com/ curl -OL https://launchpad.net/sikuli/sikulix/2.0.5/+download/sikulixide-2.0.5-lux.jar java -jar sikulixide-2.0.5-lux.jar -v tesseract -v 继续安装(也有模拟离线的) yum install ant build-tools yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel --downloadonly --downloaddir . rpm -ivh *.rpm --force --nodeps [!important] 参数 -nodeps就是安装时不检查依赖关系，比如你这个rpm需要A，但是你没装A，这样你的包就装不上，用了--nodeps你就能装上了 -force就是强制安装，比如你装过这个rpm的版本1，如果你想装这个rpm的版本2，就需要用--force强制安装 Untitled 1.png glibc升级是不可能升级的编译需要的对应版本的对应的libopencv_javaXYZ.so文件吧320 or 341 curl -OL https://gitcode.net/mirrors/opencv/opencv/-/archive/4.3.0/opencv-4.3.0.tar tar xvf opencv-4.3.0.tar 更新cmake到3.0+ 升级ant到1.10（略） yum -y install readline-devel sqlite-devel bzip2-devel.i686 openssl-devel.i686 gdbm-devel.i686 libdbi-devel.i686 ncurses-libs zlib-devel.i686 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz tar -xf Python-2.7.9.tar.xz 还需要python2.7 或python3.2+ export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ANT_HOME=/opt/ant export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH ant -version cd build cmake -D BUILD_SHARED_LIBS=OFF -D BUILD_TEST=OFF .. \#报错 那就不要谁 结果 331~340 cmake -DBUILD_LIST=java -D BUILD_SHARED_LIBS=OFF -D BUILD_TEST=OFF -D WITH_PROTOBUF=OFF -D BUILD_ITT=OFF -D WITH_OPENCL=OFF .. # 仅opencv_java cmake -DBUILD_LIST=java -D BUILD_SHARED_LIBS=OFF -D BUILD_TEST=OFF .. # 8核cpu 就写 j8 make -j3 踩坑3：运行起来吧 sikulix可以使用2.0.2到2.0.3 2.0.5 替换sikulix自带的/home/d5000/.Sikulix/SikulixLibs/libopencv_java430.so为编译好的build/lib cp lib/libopencv_java320.so /home/d5000/.Sikulix/SikulixLibs/libopencv_java430.so popup(u"dds打算") click(Mouse.at()) type("a",Key.CTRL) rightClick("1674201799447.png") Untitled 2.png 内网所需附件 libopencv_java320.so java1.8jdk运行坏境和库 sikulixide-2.0.5-lux或官网自取内网测试内网环境+国产系统=别碰可以运行，能够识别图片。中文ocr识别即安装Tesseract （看情况）待续 [!important] Getting the Tesseract support ready You have to make sure, that a libtesseract....so is available on your system. You should first try with your package manager. It must be a version 4.x 1.控制字符键名 sikuliX中的命令 Shift type(Key.SHIFT) Ctrl type(Key.CTRL) Alt键 type(Key.ALT) Tab(制表符) type(Key.TAB) 大写锁定 type(Key.CAPSLOCK) 输入 type(Key.ENTER) 删除 type(Key.DELETE) 退格键 type(Key.BACKSPACE) 插入 type(Key.INSERT) Home type(Key.HOME) End type(Key.END) ESC type(Key.ESC) 空格 type(Key.SPACE) 视窗 type(Key.WIN) 换页 type(Key.PAGE_UP) 向下翻页 type(Key.PAGE_DOWN) 列印画面 type(Key.PRINTSCREEN) 数字键盘锁 type(Key.NUM_LOCK) 滚动锁 type(Key.SCROLL_LOCK) F1 type(Key.F1) F2 type(Key.F2) F3 type(Key.F3) F4 type(Key.F4) F5 type(Key.F5) F6 type(Key.F6) F7 type(Key.F7) F8 type(Key.F8) F9 type(Key.F9) F10 type(Key.F10) F11 type(Key.F11) F12 type(Key.F12) 光标键：向上 type(Key.UP) 光标键：向下 type(Key.DOWN) 光标键：左 type(Key.LEFT) 光标键：向右 type(Key.RIGHT) 向上移动光标两次 type(Key.UP * 2) 向下移动光标两次 type(Key.DOWN * 2) 向左移动光标两次 type(Key.LEFT * 2) 向右移动光标两次 type(Key.RIGTH * 2) 按特定键 KeyDown(Key.*) 需要使用Region()进行区域设置。释放特定键 KeyUp(Key.*) 需要使用Region()设置区域。 2.快捷键常见操作快捷键 sikuliX中的命令复制 Ctrl + C type(“ c”，Key.CTRL) 剪下 Ctrl + X type(“ x”，Key.CTRL) 贴上 Ctrl + V type(“ v”，Key.CTRL) 搜索 Ctrl + F type(“ f”，Key.CTRL) 打印 Ctrl + P type(“ p”，Key.CTRL) 撤消 Ctrl + Z type(“ z”，Key.CTRL) 重做 Ctrl + Y ；Ctrl + Shift + Z type(“ y”，Key.CTRL)；type(“ z”，Key.CTRL + Key.SHIFT) 关闭标签 Ctrl + F4 type(Key.F4，Key.CTRL) 还原标签 Ctrl + Shift + T type(“ t”，Key.CTRL + Key.SHIFT) 浏览器缓存刷新(强制刷新) Ctrl + F5 type(Key.F5，Key.CTRL) 关闭窗口 Alt + F4 type(Key.F4，Key.ALT) 最小化所有窗口 Windows + M type(“ m”，Key.WIN) 显示桌面 Windows + D type(“ d”，Key.WIN) 最小化窗口(当窗口为正常大小时)恢复为原始大小(当窗口为最大化时) Windows +光标键：向下，如果最大化，请执行上述两次。 type(Key.DOWN，Key.WIN) 窗口最大化 Windows +光标键：向上 type(Key.UP，Key.WIN) 切换活动窗口 Windows + Tab；Windows + Shift + Tab type(Key.TAB，Key.WIN)；type(Key.TAB，Key.WIN + Key.SHIFT) 启动任务管理器 Ctrl + Shift +ESC type(Key.ESC，Key.CTRL + Key.SHIFT) 启动资源管理器 Windows +e type(“ e”，Key.WIN)