Ubuntu 23.10 釘釘無法啓動解決方法

上週五升級到 Ubuntu23.10 後,整體很絲滑,也發現了一些小問題:

    1. alacritty + tmux 選擇複製,tmux server 崩潰,且是必現,purge 重裝後問題解決,舊版本是我自己編譯的。
    1. 釘釘無法啓動了,這是我始料不及的。

啓動報錯:

1➜  files ./Elevator.sh
2ubuntu
3ubuntu branch
4preload_libs=
5./com.alibabainc.dingtalk: symbol lookup error: /lib/x86_64-linux-gnu/libcairo.so.2: undefined symbol: FT_Get_Color_Glyph_Layer

先看看 libcairo.so什麼情況,正常:

1➜  x86_64-linux-gnu ls -al libcairo.so*
2lrwxrwxrwx 1 root root      13 Sep 24 06:39 libcairo.so -> libcairo.so.2
3lrwxrwxrwx 1 root root      21 Sep 24 06:39 libcairo.so.2 -> libcairo.so.2.11800.0
4-rw-r--r-- 1 root root 1334120 Sep 24 06:39 libcairo.so.2.11800.0
5➜  x86_64-linux-gnu pwd
6/lib/x86_64-linux-gnu
7➜  x86_64-linux-gnu

阿里那麼大的企業,官方既然提供 deb 包,主流發行版升級的時候,最起碼的測試都不做,實在是無法理解。更加要命的是,找個反饋渠道都困難,以前我是在桌面端登錄的,裏面有個反饋問題入口,也反饋過一些雙屏和退出不正常的問題,差不多算解決了(不能期望太高)。

這次桌面端登錄不了,只能去 iOS 端反饋問題。 入口在"我的">"客服與幫助">"在線客服"(滑到最底下,生怕人找到 🤮)> 輸入"人工"(排隊等 16 分鐘 🤷🤷‍♂️)。

爲什麼是輸入"人工",看文檔找到的。不信你輸入"轉人工"試試!半點智能都沒有。

過程如下:

dingtalk help

dingtalk dialog

dingtalk response

本來覺得已經提供關鍵報錯信息了,只要對方給 Linux 客戶端同學看看,不出意外肯定能解決,沒想到還要我錄屏寫郵件,提供版本號。

我不禁想問,難道阿里沒有使用 Ubuntu 的同學嗎?測試集最起碼要包含下主流系統吧...

看錯誤提示,感覺不是很複雜,於是嘗試自己解決,求人不如求己,解決方法如下:

1. 找到目標目錄

1➜  7.1.0-Release.31011 pwd
2/opt/apps/com.alibabainc.dingtalk/files/7.1.0-Release.31011

2. 移走/刪除目標.so 文件

移走/刪除目標.so 文件(建議 mv,萬一這個操作方法不行,還可以復原)

1➜   7.1.0-Release.31011 mv  libfreetype.so.6* ~
2mv: cannot remove 'libfreetype.so.6': Permission denied
3mv: cannot remove 'libfreetype.so.6.16.1': Permission denied
4➜  7.1.0-Release.31011 sudo mv  libfreetype.so.6* ~
5[sudo] password for mephisto:

3. 測試

測試啓動正常:

 1➜  ~ /opt/apps/com.alibabainc.dingtalk/files/Elevator.sh
 2ubuntu
 3ubuntu branch
 4preload_libs=
 5Run Main is_gpu=0 is_zygote=0 is_render=0 cmd : ./com.alibabainc.dingtalk
 6[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
 7[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:cspace key:calendar_jsapi_cross_platform
 8[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
 9[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:mail key:enable_mail_navigation_notify_button
10[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
11[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:cspace key:change_memo_color_mac_38596632
12[2023/10/18 14:17:09:INFO:gray_switch_lemon.cpp(456)] [gray_sdk] auto route to before login interface, module:general,key:enable_dingpan_sync_20220606_common
13[2023/10/18 14:17:09:ERROR:gray_sdk_manager.cpp(118)] [gray_sdk] GraySdkManager::IsGraySdkStarted uninitialized
14[2023/10/18 14:17:09:WARNING:gray_sdk_manager.cpp(208)] [gray_sdk] GraySdkManager::GetGraySwitch module:general key:enable_dingpan_sync_20220606_common
15...... 此處省略一萬行

4. 怎麼找到方法的

先關鍵字搜索:

google search

前面幾個搜索結果不是很理想,不是刪除,就是各種軟鏈接,我怕影響系統穩定性。

直到點開 arch wiki, 報錯都一模一樣,只是換了個軟件名而已。

  • 方法就是找到問題.so文件,不讓 dingtalk 讀到

這樣就不會使用釘釘的libfreetype.so(此時,使用系統自帶的 libfreetype.so,系統的各種 .so文件之間不會存在兼容問題,畢竟自己人), 也就不會觸發釘釘和系統依賴庫不兼容的問題。

  • FT_Get_Color_Glyph_Layer 是個什麼鬼

是 OpenType fonts 獲取一些基礎信息用的, 參考 文檔

  • Glyph Layer 大模型解釋

    「Glyph Layer」通常是指在圖形設計或字體排版中,用於表示文字或符號的圖層。在字體排版中,每個字形(glyph)都可以被視爲一個獨立的對象,這些對象被放在各自的圖層上,這就是所謂的「Glyph Layer」。這樣可以讓排版更加靈活,更容易進行編輯和修改。在設計軟件中,例如 Adobe Illustrator 或 QuarkXPress,都有關於圖層的設置,可以讓用戶對每個單獨的元素進行分層編輯和管理。

怎麼感覺和圖片的各種圖層操作差不多,不得不說大模型適合理解各種概念,比自己搜查理解快。

題外話,此次升級飛書是沒有任何問題的。釘釘的 Linux 客戶端還有進步空間,只能說不是最差的,畢竟 Linux 微信客戶端墊底,像個殘疾一樣。

最後修改於: Wednesday, October 18, 2023

相關文章:

翻譯: