問題描述
下載深信服linux版本安裝包后,安裝完成后,雙擊應用圖標沒反應。
使用命令行啟動查看錯誤信息:
> /usr/share/sangfor/EasyConnect/EasyConnect
(EasyConnect:8667): Pango-ERROR **: 15:32:54.991: Harfbuzz version too old (1.3.1)
問題定位
按照提示說明Harfbuzz庫版本太舊,通過packages.ubuntu.com查詢沒有找到libharfbuzz庫。
那么反過來,將pango庫版本降低,猜測也是可以的。(EasyConnect自身也是舊版本)
stackexchange.com上也搜到了具體的操作步驟。
問題修復
- 下載libpango相關(guān)3個庫的低版本.deb文件,選擇
1.40.14版本。
wget http://security.ubuntu.com/ubuntu/pool/main/p/pango1.0/libpango-1.0-0_1.40.14-1ubuntu0.1_amd64.deb .
wget http://security.ubuntu.com/ubuntu/pool/main/p/pango1.0/libpangocairo-1.0-0_1.40.14-1ubuntu0.1_amd64.deb .
wget http://security.ubuntu.com/ubuntu/pool/main/p/pango1.0/libpangoft2-1.0-0_1.40.14-1ubuntu0.1_amd64.deb .
- 從.deb文件中解壓出對應的三個.so文件
- 將三個.so文件放入
/usr/share/sangfor/EasyConnect/目錄下
? ~ ls -l /usr/share/sangfor/EasyConnect/libpango*
-rw-r--r-- 1 root root 313264 4月 20 17:56 /usr/share/sangfor/EasyConnect/libpango-1.0.so.0
-rw-r--r-- 1 root root 51096 4月 20 17:56 /usr/share/sangfor/EasyConnect/libpangocairo-1.0.so.0
-rw-r--r-- 1 root root 87904 4月 20 17:56 /usr/share/sangfor/EasyConnect/libpangoft2-1.0.so.0
- 再次運行OK。
解決方案分析
當EasyConnect運行時,如果有多個相同的依賴庫,首先加載其所在目錄下的依賴庫,然后才從/usr/lib/x86_64-linux-gnu/目錄加載。所以將舊的依賴庫放入應用程序目錄下,即可解決其自身錯誤,同時也不會影響其他應用。
參考列表
EasyConnect 下載地址:http://download.sangfor.com.cn/download/product/sslvpn/pkg/linux_767/EasyConnect_x64_7_6_7_3.deb
StackExchange上的相關(guān)回復
https://unix.stackexchange.com/questions/589993/pango-error-harfbuzz-version-too-oldEasyConnect Docker:
https://github.com/Hagb/docker-easyconnect