我是凝思系统,使用的一些系统库可能比较旧吧,容易报错,记录一下解决过程
(尽量不要手动编译库,能rpm之类的安装,就走rpm)
/tmp/.mount_DOKybL/AppRun: symbol lookup error: /tmp/.mount_DOKybL/usr/lib/libgio-2.0.so.0: undefined symbol: g_option_group_unref
查阅资料是 glib 版本的问题
所以编译新版 glib,我用的是 glib 的 2.68.4 分支,旧的版本有些符号有问题
https://github.com/GNOME/glib/tree/2.68.4
参照
1_04_GLib库入门与实践_GLib库的编译_field1003的博客-CSDN博客_libglib
glib 的依赖库可以参照上面链接,我是缺了 libffi-dev
meson 和 ninja 命令是 pip3 安装出来的,如 pip3 install meson ninja
安装完 meson 和 ninja 后,可以把命令软链接到 /usr/bin/ 下 ,方便使用
运行下面命令进行编译安装 glib 库 (早期 glibc 版本貌似可以直接 make 方式编译,后来才改成 meson 和 ninja 编译的)
- meson build
- # meson build --prefix=/usr
- # 可以指定安装目录
- ninja -C build
- ninja -C build install
编译完了库默认安装到
/usr/local/lib/x86_64-linux-gnu/
临时使用上面这个库,使用
export LD_LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
如果要永久生效,需要写入 .bash_profile 文件,或者直接安装到系统库里 (基础库直接安装系统库可能有风险)
/tmp/.mount_CjKps5/AppRun: symbol lookup error: /tmp/.mount_CjKps5/usr/lib/libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format
查阅资料是 freestyle 版本问题,旧的版本有些符号有问题
有人分析了 libfreetype 的符号,确定是 libfreetype 的问题
- #readelf -s /usr/local/freetype/lib/libfreetype.so | grep -i font_format
- 95: 000000000001a640 43 FUNC GLOBAL DEFAULT 11 FT_Get_X11_Font_Format
- 265: 000000000001a610 43 FUNC GLOBAL DEFAULT 11 FT_Get_Font_Format
所以编译新版 freestyle, 我用的是 freestyle 的 2.6.5 分支, freestyle 最新版本好像要下载子模块
https://github.com/freetype/freetype/tree/2.6.5
- ./autogen.sh
- ./configure --prefix=/usr/local/freetype
- make
- make install
编译完了库默认安装到
/usr/local/freetype/lib
临时使用上面这个库,使用
export LD_LIBRARY_PATH=/usr/local/freetype/lib:$LD_LIBRARY_PATH
如果要永久生效,需要写入 .bash_profile 文件,或者直接安装到系统库里 (基础库直接安装系统库可能有风险)
从前面链接
学到,可以从 AppImage 文件提取里面的文件
- mkdir src
- mount -o loop navicat15-premium-cs.AppImage src
- cp -r src squashfs-root
- umount src
- rmdir src
然后还可以把提取出来的文件再镜像打包
appimagetool squashfs-root navicat15-premium-cs.AppImage
也许可以直接把编译好的库文件扔到镜像包里,不过我没实验