参考链接: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
依赖路径已经移到软件根目录下了,而且是相对较低的版本,不出意外的话就能正常运行了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)