银河麒麟:应用安装后运行提示缺少依赖包,无法正常运行;而用户又是内网环境,无法通过外网源安装依赖时如何解决?
问题分析:查看缺少的依赖包,下载依赖包后解压,拷贝需要的库文件到解压后的原deb 包对应目录中,然后重新打包。
解决方案:
1) 下载应用包,进行解压:
$ dpkg-deb -R ***.deb ***
2) 然后找到应用的可执行文件,使用 ldd 查看缺少的依赖有哪些。
$ ldd
3) 从源里下载缺少的依赖包
$ sudo apt downlaod libc-ares2 libgrpc++1 libgrpc6 libportaudio2 libzip5
4) 然后再分别解压上面的包
$ dpkg-deb -R ***.deb ***
5) 解压后,分别进入到每个解压出来的目录,将.so 动态库文件拷贝
到 /opt/apps/com.iflytek.iflyime/files/bin/目录下。
$ cp -rp * /opt/apps/com.iflytek.iflyime/files/bin/目录
6) 再使用下列命令修改可执行文件的 rpath,要修改 rpath,需要 patchelf
工具,首先安装 patchelf 工具。
a. 安装 patchelf 工具
$ sudo apt install patchelf
b. 修改 rpath
$ patchelf --set-rpath /opt/apps/com.iflytek.iflyime/files/bin/ iflyime-hw
$ patchelf --set-rpath /opt/apps/com.iflytek.iflyime/files/bin/ iflyime-sett
******
7) 最后重新进行打包即可
$ dpkg-deb -b *** .
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!