快轉到主要內容

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 Freedesktop Specifications
i3wm、Hyprland視窗管理器適用的動態桌面,Linux Wallpaper Engine用法
分類   Linux系統 Linux好用軟體
標籤   Wallpaper Engine Dynamic Wallpaper I3wm Hyprland

留言板

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

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

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