Ubuntu 22.04 Electron SSR Troubleshoot

安裝Electron SSR很簡單,下載好deb檔案安裝就可以。

1
sudo dpkg -i electron-ssr.deb

由於Electron-SSR作者已經刪除了這個專案的倉庫,故目前只有Fork來的備份可用。

https://github.com/qingshuisiyuan/electron-ssr-backup

Readme這一部分只提到了libsodium等少量依賴,於是直接執行安裝命令時dpkg提示有依賴問題。所以,安裝所必要的依賴:

1
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module gconf2 gconf-service libappindicator1 libssl-dev libsodium-dev

實際上apt提供了自動解決依賴問題的選項:

1
sudo apt --fix-broken install

在安裝需要依賴的deb包後執行即可解決依賴問題。

Electron-ssr在解決依賴問題後成功執行,可以正常顯示圖形介面,訂閲、更新節點。但無論怎麼調整Ubuntu的網絡設定都無法魔法上網。檢視electron-ssr的.config目錄發現其後端使用的是python版本的ssr,調取錯誤日誌發現其竟然提示沒有安裝Python。

怎麼可能沒有Python?Ubuntu肯定自帶Python。經過排查發現:

  • 輸入python3可以正常呼叫python3.10
  • 輸入python會提示未知命令
  • electron-ssr預設呼叫的是python而不是python3

上網一查才發現,Ubuntu自22.04版本開始不再將Python加入$PATH。故手動建立symlink:

1
sudo ln -s /usr/bin/python3 /usr/bin/python

再度開啓Electron SSR測試,發現可以正常魔法上網,問題解決。

Ubuntu22.04 在中國開啓Electron SSR後正常訪問www.google.com

別忘了將Ubuntu網絡設定中的代理設定調成自動。

可以學到什麼?

不帶版本號呼叫python命令是一個壞實踐,以後應當避免這種行為。