如何在 Linux 中使用 AppImage

AppImages 允許 Linux 開發人員將他們的應用程序打包到一個文件中,該文件可以安裝在任何 Linux 發行版上。 這大大簡化了事情。 以下是如何使用它們並將它們集成到您的桌面。

在 Linux 上安裝軟件

軟件安裝要簡單方便。 它有多簡單和方便很大程度上取決於您的發行版的包管理器。 包管理器是允許您下載和安裝其他 Linux 程序的軟件應用程序。

Linux 衍生髮行版傾向於使用其父發行版的包管理器。 例如,許多變體和衍生物Debian他們使用 apt RedHat 和 Fedora 使用發行版 dnf 和 Arch 家族的發行版使用 pacman . 因此,幸運的是,包管理器的數量幾乎沒有發行版那麼多。

儘管如此,從開發人員的角度來看,支持所有不同的包格式意味著將您的應用程序包裝在 Debian 系列的 DEB 文件、RedHat 系列的 RPM 等中。 這是很多額外的開銷。

這也意味著如果開發人員和其他任何人都沒有為您的發行版創建安裝包,您將無法安裝該軟件。 至少不是原生的。

您也許可以將來自不同發行版的軟件包硬塞到您的計算機上,但這不是一種無風險的方法,也不能保證有效。 如果您知道自己在做什麼,則可以下載源代碼並在計算機上編譯應用程序,但這遠非簡單方便。

像 Snap 和扁平包裝它們旨在克服為每個發行版包裝應用程序的問題。 如果您可以將一個包打包到一個文件中,以便它帶有適當的庫和它具有的任何其他依賴項,因此它(實際上)不需要主機操作系統,它應該能夠在任何發行版上運行。

AppImage 項目就是這樣一個倡議。 AppImage 是項目的名稱,AppImages 是打包的應用程序的名稱。

應用圖像的工作原理

AppImage 文件不是傳統意義上的安裝。 構成應用程序包的組件文件都包含在一個文件中。 它們不會被解壓並存儲在文件系統的不同目錄中。

由其包管理器安裝的應用程序會將其可執行文件複製到適當的“/bin”目錄,它的 man 這些頁面將存儲在“/usr/share/man”目錄中,依此類推。 AppImages 不會發生解包和復制步驟。

AppImage 內部有一個文件系統,通常是一個squashFS 文件系統. 運行應用程序所需的文件存儲在此文件系統中,而不是 Linux 安裝的主文件系統中。 執行 AppImage 時,它會啟動其內部幫助程序之一,將 squashFS 文件系統掛載到“/tmp/mount”,以便可以從其主文件系統訪問它。 然後它會啟動應用程序本身。

這就是為什麼從 Snaps、Flatpaks 和 AppImages 啟動應用程序比運行常規應用程序要慢一些的原因。 為了使所有這些工作,主機文件系統必須有一個名為“用戶空間中的文件系統” 安裝。 這是將 AppImages 放置在主機上的唯一依賴項。 FUSE 通常預裝在現代 Linux 發行版上。

使用 AppImage 文件

您需要做的第一件事是為您想要的應用程序下載 AppImage。 這些不會在您的發行版的存儲庫中。 您通常可以在應用程序的網站上找到它們。

我們將下載並使用開源 3D 計算機輔助設計包 FreeCAD。 導航到FreeCAD 下載頁面並單擊“64 位 AppImage”按鈕。

下載後,在終端窗口中找到該文件。 除非您更改了 Web 瀏覽器的默認設置,否則它可能位於“下載”目錄中。 我們需要使 AppImage 可執行。 我們將使用 chmod 添加的命令 -x 權限(可執行)。

                      chmod +x FreeCAD-0.20.0-Linux-x86_64.AppImage
                    

haciendo que AppImage sea ejecutable usando el comando chmod

我們已經下載了我們的文件並使其可執行。 要執行它,我們可以通過它的名稱來調用它。

                      ./FreeCAD-0.20.0-Linux-x86_64.AppImage
                    

Lanzamiento del archivo AppImage

這就是我們在 Fedora 和 Manjaro 中所要做的。 在Ubuntu22.04,我們必須安裝一個庫文件。 FUSE 已經安裝在 Ubuntu 22.04 上,但它比大多數 AppImages 使用的版本更新。 安裝庫文件不會影響已安裝的 FUSE 版本。

                      sudo apt install libfuse2
                    

Instalación del archivo de la biblioteca libfuse2

這立即解決了問題,我們能夠在 Ubuntu Jammy Jellyfish 22.04 上毫無問題地啟動 AppImages。

La aplicación freeCAD que se ejecuta desde una AppImage

所有這一切都很棒。 但是如果你想吃蛋糕怎麼辦? 想像一下,如果有一種使用 AppImages 的方法不需要您從終端窗口啟動它們。 能夠像常規原生應用程序一樣啟動 AppImage 應用程序會更方便。

這裡有一個明顯的矛盾:AppImage 的本意是不安裝傳統意義上的自身,包括不集成到您的桌面中。 但是仍然可以使用 AppImageLauncher。

應用程序圖像啟動器

AppImageLauncher 監控指定目錄。 掃描目錄,尋找 AppImage 文件。 對於它找到的每一個,它都會提取應用程序圖標(如果有的話)並將 AppImage 嵌入桌面上,就像普通應用程序一樣。

對於添加到目錄的每個新 AppImage,都會重複此操作。 當它檢測到 AppImage 已被刪除時,它會刪除集成。 因此,只需將下載的 AppImage 文件放在受監控的目錄中,它們就可以集成到您的桌面環境中。

如果您使用 Ubuntu 或 FedoraGo 到AppImageLauncher 下載頁面並單擊“構建版本(最新)”部分中的“資產”鏈接。

對於 Fedora,單擊鏈接“appimagelauncher-XXX.x86_64.rpm”,對於 Ubuntu,單擊文件“appimagelauncher_XXX.bionic_arm64.deb”。 “XXX”代表軟件的版本號。

Los enlaces de descarga de AppImageLauncher RPM y DEB

請注意,有 AppImageLauncher 的鏈接和 AppImageLauncher。 使用 AppImageLauncher 掛鉤。

瀏覽到下載的文件並雙擊它開始安裝。 在 GNOME 中,這將啟動“軟件”應用程序。

El archivo DEB de AppImageLauncher abierto en el programa de software de Ubuntu

在 Manjaro 中,您可以使用以下命令安裝 AppImageLauncher:

                      sudo pacman -S appimagelauncher
                    

Instalación de AppImageLauncher en Manjaro

您可以通過按“Super”鍵啟動 AppImageLauncher。 在大多數鍵盤上,它位於左側的“Ctrl”和“Alt”鍵之間。 在搜索欄中輸入“appim”。

AppImageLauncher 圖標將出現。 單擊它以啟動應用程序。

La pantalla principal de AppImageLauncher

有一些配置要做。 我們需要告訴 AppImageLauncher 我們希望它監控哪個目錄。 單擊“文件夾”圖標並瀏覽到您通常存儲 AppImage 的目錄。 我們選擇我們的“下載”目錄。 如果你願意,你可以選擇一個子目錄,也許是“/Downloads/applications”。

La aplicación AppImageLauncher con /home/dave/Downloads configurado como el directorio supervisado

如果您希望 AppImageLauncher 將它在其他目錄中找到的 AppImages 移動到您的監控目錄,請確保選中“詢問我是否要將 AppImage 文件移動到應用程序目錄”複選框。 但是如果 AppImageLauncher 只監控一個目錄,它怎麼會在別處找到 AppImages 呢?

答案可以在“appimagelauncherd”選項卡中找到。 單擊“appimagelauncherd”選項卡,您將看到 AppImage 可以監控多個目錄。

La pestaña appimagelauncherd de la aplicación AppImageLauncher

單擊綠色的“更多”圖標以添加更多目錄。 確保選中“自動啟動自動集成守護程序”複選框。 做出選擇後,單擊“確定”按鈕。

等待幾分鐘,然後按“Super”鍵並鍵入在受監控目錄中找到的 AppImage 名稱的第一部分。 在我們的例子中,我們只有一個。

輸入“free”後,您應該會看到 FreeCAD 的圖標。 單擊它會啟動應用程序。 如果 AppImage 文件不包含圖標,則使用通用齒輪圖標,就像 FreeCAD 的情況一樣。

為了進一步測試,我們下載了 AppImage 文件地下要求。 我們等了大約 30 秒以確保它已被發現並集成,然後點擊“Super”鍵,輸入“sub”,應用程序圖標出現。 這一次,找到並使用了正版應用圖標。

單擊圖標啟動應用程序。 我們甚至不需要使用 chmod 使 AppImage 可執行。

La aplicación Subsurface ejecutándose desde una AppImage

另一個不錯的方法是,通過右鍵單擊圖標,您可以直接從上下文菜單中刪除 AppImage。

El menú contextual del subsuelo

還有一個將圖標固定到啟動器的選項,這使得使用 AppImages 與使用本機應用程序一樣方便。

應用圖像正在上升

在我們的測試機器上,從 AppImages 啟動的應用程序加載速度比 Flatpak 應用程序稍快,比 Snap 應用程序快得多。 使用 AppImages 不需要安裝底層框架,因此除了應用程序本身所需的空間外,AppImages 在硬盤驅動器上使用零。

可選的 AppImageLauncher 應用程序增加了一些技巧,但沒有它你也可以愉快地使用 AppImages。

越來越多的應用程序提供 AppImages。 如果您發現自己嘗試安裝的東西似乎不在您的發行版存儲庫中,請檢查應用程序的網站。 他們可能有一個 AppImage。

適合與 apt-get:Linux 上有什麼不同?

相關文章