咱有一个好几年前开的debian虚拟机,用来对外网发布一些临时文件
昨天发现这台机器网络有点不正常,当时想用mtr查看一下路由,结果输入mtr后直接报错“mtr: symbol lookup error: /lib/x86_64-linux-gnu/libharfbuzz.so.0: undefined symbol: FT_Get_Transform”
经过一段时间的查找资料和与不同机器上的数据对比,咱终于解决了这个问题
由于网上对这个问题的解答有挺多弯路,故在此进行记录
解决方案如下:
在报错中可以确定,“FT_Get_Transform”和“libharfbuzz.so.0”有关。在走了很多弯路后,了解到这个报错可能是和环境有关(比如说java环境未清空或使用了错误的版本)。最后咱搜索到了一篇回答(引用链接),这个回答才真正说明了问题的原因
回答中提到“libharfbuzz.so.0 declares it needs libfreetype.so.6”,也就是“libharfbuzz.so.0”需要使用到“libfreetype.so.6”,然后咱就使用“locate”命令对整个机器内的“libfreetype.so.6”进行搜索。搜索后发现在路径“/usr/local/freetype/lib”下存在“libfreetype.so.6.17.4”,而用apt安装的版本应该是“libfreetype.so.6.18.3”,故怀疑这个文件可能是罪魁祸首,改名后mtr直接正常工作。。。
结果网络问题是由于上级路由抽风,啧。。。
这篇文章还没有人发言,快抢第一!