撸linux


/usr/lib/libharfbuzz.so.0: undefined symbol: FT_Get_Var_Blend_Coordinates问题的解决

系统版本

manjaro linux 2017.0

发生时间

2017.03.12 运行yaourt -Syu滚动升级manjaro之后

故障描述

终端里运行一些QT程序,打不开,出现这样的错误提示:

g_module_open() failed for /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/libharfbuzz.so.0: undefined symbol: FT_Get_Var_Blend_Coordinates

或者如

VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/usr/lib/virtualbox/VirtualBox.so",) failed: /usr/lib/libharfbuzz.so.0: undefined symbol: FT_Get_Var_Blend_Coordinates

故障分析

问题肯定出在harfbuzz上,不知道这个harfbuzz是什么鬼,但可以肯定的是这个版本的harfbuzz存在兼容性问题。参考https://www.v2ex.com/t/333196,据说跟infianlity字体渲染插件有关,只要不用infianlity就可以了。小撸我是infinality的铁杆粉丝,为此还亲手制作过受欢迎的“Linux清晰不发虚字体渲染包”,自然不会为了harfbuzz而搞掉infinality。

解决方法

使用aur在github上存储的harfbuzz源代码自行编译,编译之后的harfbuzz包跟系统切合度很高在终端运行yaourt -S harfbuzz-git harfbuzz-icu-git命令即可

撸后感言

archlinux系列的发行版滚动升级有一定的风险,全盘升级之后也会有零星的折腾人的bug,比如上面说的harfbuzz兼容性问题导致很多软件无法正常使用。这个时候就要考虑退回到以前可以正常使用的版本,因为archlinux系发行版不提供过往版本的软件包下载,所以如果本机没有缓存,就很不幸了。然而还有一个最简单的方法就是使用aur在github上存储的源代码重新编译,命令是yaourt -S xxxxx-git。

相关博文



发表评论

电子邮件地址不会被公开。