快轉到主要內容

Linux AppImage軟體格式安裝方法

分類   Linux系統 Linux好用軟體
標籤   AppImage
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

這篇文章將講解Linux上以.AppImage檔名結尾的應用程式安裝方法,並介紹輔助工具「AppImage Launcher」。

AppImage是Linux的一種軟體打包格式,用於解決不同Linux發行版安裝應用程式依賴的問題而生。

以AppImage打包的應用程式,需要的依賴套件都包在一起,下載就是單一檔案,點二下就可以執行,不需要安裝,也無需考量不同Linux發行版的差異。概念上AppImage類似於Windows的可攜式exe、macOS的dmg。

AppImage主要依賴FUSE掛載檔案系統運作,現在大部份64位元Linux發行版應該都支援AppImage格式,無需安裝套件就可以執行。

1. 如何安裝AppImage格式的程式?
#

嚴格來說,AppImage應用程式不需要「安裝」,因為下載後直接點選執行就可以了。如果你還是想要「安裝」到固定目錄,後面我們會再介紹用AppImage Launcher工具管理。

網站 Appimagehub有收錄許多AppImage格式的軟體,例如Firefox、GIMP、Kdenlive、Blender、LibreOffice。

Github上有些軟體開發者也會以AppImage格式分發他們的軟體。

  1. 以Mozilla Firefox為例,到 AppImage Hub點選Download,下載.AppImage的檔案

  2. AppImage需要賦予執行權限。如果你用的是KDE檔案管理員的話可以右鍵 → 屬性 → 權限,勾選其為可執行檔,GNOME亦同。

  3. 如果沒辦法用檔案管理員賦予權限,那就用chmod指令賦予執行權限

chmod +x firefox.AppImage
  1. 在那之後對AppImage按二下,應用程式即會啟動。AppImage檔案可放在任意目錄,都是點二下就能執行。

  2. 如果AppImage點了沒反應,試著用終端機執行,並看看有無輸出錯誤訊息。

./firefox.AppImage
  1. AppImage後面也可以接指令參數,例如指定Firefox開啟隱私視窗
./firefox.AppImage -private

(此狀況很少見)如果你的系統不支援FUSE,導致沒辦法執行AppImage,那麼試試將AppImage解壓縮,執行裡面的二進位檔

./firefox.AppImage --appimage-extract
cd squashfs-root
./AppRun

解開後的AppImage可以自行修改內容,再用 appimagetool打包回去。

2. 使用AppImage Launcher管理程式
#

AppImage雖然有可攜的特性,但是要管理和刪除仍是不方便。譬如,上面我們安裝了AppImage版的Firefox,但每次開啟都要進去檔案管理員點選,無法從應用程式列表啟動,是否太麻煩了些?

那就來安裝AppImge Launcher吧!將AppImage與桌面環境完美整合。它會在你執行AppImage後自動幫你把移動AppImage到固定路徑,並在應用程式列表建立捷徑。

  1. Github “Assets"處,下載AMD64架構的deb檔安裝。

  2. 於下載目錄開啟終端機,安裝deb檔

sudo apt install ./appimagelauncher_2.2.0-travis995.0f91801.bionic_amd64.deb
  1. 點選之前下載的AppImage檔案,於AppImage Launcher初始化的界面點選確定。

  2. 自此之後,執行AppImage的檔案,AppImage Launcher都會詢問是否要整合至系統(Integrate and run)還是直接執行(Run once)。

若不希望出現此對話框,可以使用環境變數APPIMAGELAUNCHER_DISABLE=暫時停用AppImage Launcher。

  1. 選擇「整合至系統」,該AppImage便會移動到~/Applications,且圖示會出現在應用程式列表。

  2. 對其點右鍵可以檢查更新(Update AppImage)。

  3. 如果要「解除安裝」AppImage,於應用程式列表對圖示按下右鍵,選取Remove AppImage from system,圖示和AppImage檔就會刪除。

如果覺得手動更新很麻煩,你也可以安裝 Zap AppImage package manager,用指令管理AppImage更新。

3. 在命令行使用AppImage程式
#

如果用AppImage安裝vim,如何在命令行直接呼叫vim使用呢?

AppImage本身就像一個二進位執行檔,因此確認AppImage路徑後,再把檔案所在路徑加入到PATH環境變數就行了。

譬如,使用AppImage Launcher所安裝的vim.AppImage會跑到~/Applications,那麼就把該路徑加入到~/.bashrc

echo "PATH=$PATH:~/Applications" >> ~/.bashrc

source ~/.bashrc

或者,按照AppImage的絕對路徑建立alias,指向AppImage所在位置:

echo "alias vim='~/Applications/vim.AppImage'" >> ~/.bashrc

source ~/.bashrc

4. 關於AppImage的技術細節
#

設定檔位置
#

AppImage設定檔的位置跟一般套件管理器的相似,比如AppImage版Firefox仍會優先讀取位於~/.mozilla的資料,不會另外建立新的目錄。所以如果deb版Firefox跟AppImage版Firefox一起用的話資料可能會互相干擾。

如果想將AppImage的應用程式設定檔一併帶著走,請參閱 將Linux AppImage變成可攜式軟體!Portable mode使用方式

AppImage沒有沙盒隔離的效果,應用程式執行時仍可以存取使用者所有目錄。想要沙盒隔離請搭配 FireJail或者上述的Portable mode來隔離設定檔。

不包含驅動程式
#

AppImage包的runtime其實沒有你想像的多,使用musl函式庫的Linux發行版可能無法執行以glibc打包的AppImage。

如果系統底層函式庫出問題,那AppImage也會受影響。比方說開發者用舊版Ubuntu系統打包,那麼Arch Linux不見得100%能執行。

如果應用程式需要用到Nvidia圖形驅動程式,AppImage也不會提供,使用者需要在系統事先安裝。

所以跟Snap和Flatpak比起來,AppImage程式還是得很大程度依賴系統的runtime才能跑起來。

跨架構支援需要另外打包
#

AppImage沒有跨架構模擬的效果,ARM和x86平台需要下載對應其架構的AppImage檔案。

延伸閱讀
#

如果你想把軟體打包成AppImage,請參考 AppImage Documentation

像AppImage意圖解決跨發行版問題的打包格式還有 Flatpak Snap。相較前二者,AppImage的優點是免安裝直接用,不需要額外套件管理器;但缺點是AppImage不能用套件管理員指令更新,也沒有應用程式商店前端能用。

相關文章

Blender Linux版安裝教學 + Nvidia CUDA渲染設定
分類   Linux系統 Linux好用軟體
標籤   Blender Nvidia Linux
Linux系統如何安裝Flatpak軟體套件?使用教學
分類   Linux系統 Linux好用軟體
標籤   Flatpak Linux
Joplin:開源筆記軟體使用教學,支援電腦與手機
分類   Linux系統 Linux好用軟體
標籤   Joplin Linux Android

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。