Ubuntu 20.04下EasyConnect兼容性問題臨時解決方案


Ubuntu每一次版本更新都伴隨着大量的系統依賴的更新,常常會導致很多原來能用的軟件更新后就用不了了,尤其是對於一些更新不頻繁的商業軟件。這次更新之后我發現連接學校VPN的EasyConnect打不開了,在命令行中執行顯示如下的錯誤:

$ /usr/share/sangfor/EasyConnect/EasyConnect 
(EasyConnect:71583): Pango-ERROR **: 15:11:47.910: Harfbuzz version too old (1.3.1)

尋找問題根源

簡單搜索發現,已經有人在easyconnect論壇上提出過這個問題,不過並沒有工作人員回應:

不過好在這個問題並不是easyconnect獨有的,通過谷歌搜索發現這是一個比較常見的錯誤,很有可能是electron框架版本太老的問題,然而electron開發者表示無能為力。

一個workaround

幸運的是,有網友發現可以通過降級pango等依賴解決問題。錯誤信息提示Harfbuzz版本太舊了,實際上是因為pango版本太新了。需要做的不是升級Harfbuzz,而是降級pango。為了防止修改系統庫帶來的風險,直接將相關的so庫文件解壓到easyconnect同目錄下即可。具體來說,涉及的so文件為:

$ ldd EasyConnect | grep pango
	libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f9713518000)
	libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f971337e000)
	libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f97116d8000)

相關的包可以到ubuntu packages網站上下載,例如https://packages.ubuntu.com/eoan/libpango-1.0-0。另外兩個也需要下載。將下載的deb文件解壓,放到/usr/share/sangfor/EasyConnect目錄下。現在ldd輸出變為:

$ ldd EasyConnect | grep pango
	libpangocairo-1.0.so.0 => /usr/share/sangfor/EasyConnect/./libpangocairo-1.0.so.0 (0x00007f16ce009000)
	libpango-1.0.so.0 => /usr/share/sangfor/EasyConnect/./libpango-1.0.so.0 (0x00007f16cde72000)
	libpangoft2-1.0.so.0 => /usr/share/sangfor/EasyConnect/./libpangoft2-1.0.so.0 (0x00007f16cc1cb000)

問題解決

再次打開EasyConnect客戶端,已經能夠正常啟動。

這個方法雖然充滿了妥協,但是畢竟是在客戶端沒有及時更新的情況下一種有效的解決方法。同時也避免了降級系統的pango庫,帶來更多問題。當然,等待網站更新才是最終解決之道。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM