軟體概覽
待辦
列出已棄用元件
AppImage 專案
AppImageKit
AppImageKit 是 AppImage 規範 的參考實作。它分為多個元件,將在本小節說明。
runtime
runtime 提供每個 AppImage 的「可執行標頭」。執行 AppImage 時,AppImage 內的 runtime 會被執行,將內嵌的檔案系統映像以唯讀方式掛載到暫存位置,並在其中啟動 payload 應用程式。payload 結束後,runtime 會卸載 squashfs 映像並清理暫存資源(例如暫存掛載點目錄)。
下載: 通常沒有必要手動下載,但若仍想下載,可至 https://github.com/AppImage/type2-runtime/releases/continuous。請注意,它單獨使用沒有作用,必須與檔案系統映像結合才是有效的 AppImage,通常透過 appimagetool(其本身包含一份 runtime)來完成。
appimagetool
appimagetool 是從系統既有目錄(所謂的 AppDir)建立 AppImage 的最簡單方式。它會嵌入 runtime,並建立與附加檔案系統映像來產生 AppImage。
appimagetool 實作了所有可選功能,例如 更新資訊、簽署,以及一些 lint 選項以確保 AppImage 內的資訊有效(例如可驗證 AppStream 檔案)。
下載: 可從 https://github.com/AppImage/appimagetool/releases/continuous 取得 AppImage。
AppRun
每個 AppImage 的 AppDir 都必須包含名為 AppRun 的檔案,作為「入口點」。執行 AppImage 時,runtime 會在 AppDir 中執行 AppRun。
AppRun 不一定要是一般檔案。若應用程式是 可重定位,它可以只是指向主執行檔的符號連結。像 linuxdeploy user guide 之類的工具能將應用程式轉為可重定位,因此可建立這樣的符號連結。
在某些情況下(例如應用程式不可被修改,或授權禁止修改,或無法使用 linuxdeploy 等工具),可改用 AppImageKit 的 AppRun.c。AppRun.c 透過調整環境變數,嘗試讓程式載入打包的共享函式庫而非系統函式庫。此外,也會避免使用者因 AppDir 以唯讀掛載而產生的警告。
使用 AppRun.c 並不保證應用程式一定能執行,打包者必須在使用 appimagetool 建立 AppImage 前,手動(或透過外部工具)提供應用程式所需的所有資源。AppRun 會強制變更目前工作目錄,因此應用程式無法得知原始呼叫 AppImage 的位置。這對 CLI 工具有時很惱人,對需要透過參數接收路徑的 GUI 應用程式也可能造成問題。
備註
AppRun.c`(AppImageKit 的二進位檔)屬於過時技術,若可行應盡量避免。像 :ref:`linuxdeploy <ref-linuxdeploy> 這類工具以不同方式部署應用程式(它們足夠聰明,讓名為 AppRun 的簡單符號連結指向主執行檔即可運作),因此多數情況下使用 AppRun.c 已不再必要。
在某些邊緣情況下仍會使用 AppRun.c,且可能有其用途。然而它有許多限制並需要一些變通作法(例如本節提到的強制變更目前工作目錄等),在除錯 AppImage 時可能造成不少困擾。在考慮使用 AppRun.c 前,請先了解這些限制。
下載: 通常沒有必要手動下載,但若仍想下載,可至 https://github.com/AppImage/AppImageKit/releases/continuous。
輔助工具
AppImageKit 附帶一些輔助工具,可用於驗證與檢查部分 AppImage 功能。
validate
validate 可驗證 AppImage 內的 PGP 簽章。
通常不需要直接使用它,主要是提供 AppImage 開發者除錯用。
下載: 目前需要從原始碼編譯,原始碼位於 https://github.com/AppImage/AppImageKit/。未來可能會隨 appimagetool 一起提供,或其功能會整合到 appimagetool 中。
digest-md5
計算用於桌面整合的 MD5 摘要(針對指定 AppImage)。此摘要取決於路徑,而非內容。
通常不需要直接使用它,主要是提供 AppImage 開發者除錯用。
下載: 目前需要從原始碼編譯,原始碼位於 https://github.com/AppImage/AppImageKit/。未來可能會隨 appimagetool 一起提供,或其功能會整合到 appimagetool 中。
AppImageUpdate
AppImageUpdate 讓您透過 AppImage 內嵌的資訊,以去中心化的方式更新 AppImage。
此專案包含兩個工具::code:`appimageupdatetool`(完整功能的 CLI 更新工具,處理 `update information`_),以及 :code:`AppImageUpdate`(以 Qt 編寫的 AppImage 更新介面)。
下載: 可從 https://github.com/AppImage/AppImageUpdate/releases/continuous 取得 AppImage。
appimaged
appimaged 是常駐服務,會監控系統中一組預先定義的目錄以尋找 AppImage。它會在初始搜尋時自動整合找到的 AppImage,之後也會即時監看新加入或移除的 AppImage,並立即(解除)整合。
它以 AppImage 形式提供。
警告
監控的目錄之一是 ~/Downloads。若該目錄很大,appimaged 通常需要較長時間掃描所有檔案,可能會讓系統(特別是檔案系統)變慢。
下載: 可從 https://github.com/probonopd/go-appimage/releases 取得 AppImage。
第三方工具
本節介紹幾個可用於建立與處理 AppImage 檔案的第三方工具。
linuxdeployqt
linuxdeployqt 是基於 Qt 的簡單命令列工具,可用來建立 AppDir 與 AppImage。它以 Qt 隨附的 macdeployqt 為基礎。可用於產生 C、C++、Qt/QML 應用程式的 AppDir 與 AppImage,也可用於其他編譯型語言的應用程式。
也參考
在 https://github.com/probonopd/linuxdeployqt#using-linuxdeployqt-with-travis-ci 提供了可直接複製使用的 Travis CI 範例。
下載: 可從 https://github.com/probonopd/linuxdeployqt/releases/tag/continuous 取得 AppImage。
linuxdeploy
linuxdeploy 是簡單又彈性的外掛式工具,可用來建立 AppDir 與 AppImage。它於 2018 年開發,並自稱為「AppDir 建立與維護工具」。
linuxdeploy 計畫成為 linuxdeployqt 的後繼工具,可用於所有使用 linuxdeployqt 的專案。外掛清單持續成長,提供打包 Qt 等框架的方案,也提供非原生程式語言(如 Python)的完整環境。
也參考
在 Packaging Guide 中有 原生二進位打包 指南以及一般性的 linuxdeploy 使用指南。
下載: 可從 https://github.com/linuxdeploy/linuxdeploy/releases/continuous 取得 AppImage。
AppImageLauncher
AppImageLauncher 是 Linux 散布版的輔助應用程式,可作為執行與整合 AppImage 的「入口」。
引用 README:
AppImageLauncher 讓您的 Linux 桌面 AppImage ready™。安裝後,您再也不用擔心 AppImage。您可以直接雙擊執行,而不必先設為可執行,就像現在應該能做到的一樣。只需一次點擊就能整合 AppImage,並可在應用程式啟動器中管理它們。更新與移除 AppImage 變得前所未有地簡單。
由於整合方式簡單而有效,它可與其他用來管理 AppImage 的應用程式(例如應用商店)良好搭配。然而它不依賴任何這些工具,且可完全獨立運作。
今天就為您的散布版安裝 AppImageLauncher,享受前所未有的 AppImage 使用體驗!
—https://github.com/TheAssassin/AppImageLauncher/blob/master/README.md
AppImageLauncher 不提供任何「應用商店」軟體,而是整合到系統提供的啟動器右鍵選單中。它提供更新(基於 AppImageUpdate)與移除 AppImage 的工具。
下載: 可從 https://github.com/TheAssassin/AppImageLauncher/releases/continuous 取得AppImageLauncher-Lite(AppImage)與完整版本(deb)。
NX Software Center
基於 AppImage 的可攜式應用軟體中心。
下載: 可作為 Nitrux OS 的一部分在 https://nxos.org/ 取得 NX Software Center。目前沒有近期的獨立 AppImage 持續建置版本。
待辦
描述其餘第三方工具