参考链接:unix.stackexchange.com
在ubuntu20.04上安装了Ao(可以看做Microsoft todo的linux版),从终端启动时报错: Failed to load module "canberra-gtk-module" 和Pango-ERROR **: 00:56:03.195: Harfbuzz version too old (1.4.2)
第一个很好解决,直接sudo apt-get install libcanberra-gtk-module完事儿。 第二个,百度了一下发现是因为Pango库的原因(Pango是一个文本布局引擎库,可与HarfBuzz整形引擎一起使用,以显示多语言文本),Pango的版本太新,Harfbuzz没有相应版本。 首先看一下可能导致错误的依赖项:
$ ldd ao-app | grep pango libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007fd56cca2000) libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007fd56c8fb000) libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007fd56b046000)要做的是降级Ao依赖的Pango库。根据你的硬件架构下载相关文件:
libpango-1.0-0 (1.42.4-7) libpangocairo-1.0-0 (1.42.4-7) libpangoft2-1.0-0 (1.42.4-7)
下载之后会得到.deb文件:
直接解压.deb文件,然后解压其中data.tar.xz文件切到解压后的文件夹/data/usr/lib/x86_64-linux-gnu/,把里面的两个文件复制到软件的根目录下面,比如我的是/opt/Ao/对其它两个文件也是同样的方法之后检查一下依赖:
$ ldd ao-app | grep pango libpangocairo-1.0.so.0 => /opt/Ao/./libpangocairo-1.0.so.0 (0x00007faedf8aa000) libpango-1.0.so.0 => /opt/Ao/./libpango-1.0.so.0 (0x00007faedf305000) libpangoft2-1.0.so.0 => /opt/Ao/./libpangoft2-1.0.so.0 (0x00007faedd853000)可以看到Pango依赖路径已经移到软件根目录下了,而且是相对较低的版本,不出意外的话就能正常运行了。