Linux中國

使用 AppImage 進行 Linux 軟體包管理

管理 Linux 機器(尤其是遠程機器)的一個重要分就是管理和安裝軟體。當本地應用程序出現問題時,或者文件系統上的某些文件損壞需要修復時,你通常會希望推送更新,而不必走很多路坐在物理屏幕前。正如我在 Pluralsight 課程《Linux 系統維護和故障排除》中所解釋的那樣,許多問題當然可以通過 Bash 腳本解決,但是仍有很多情況下,除了老式的二進位文件外,沒有其他選擇。

想像一下,你的某些遠程系統需要安裝新的應用程序,這樣使用這些計算機的團隊成員就能夠執行某些業務。能夠利用 Debian 或 RPM 之類的主要 Linux 倉庫系統的集成和自動化,可以使你的管理任務變得更加容易。

正如 Linus Torvalds 永不厭倦地提醒我們的那樣,太多的 Linux 軟體管理系統的問題是 Linux 軟體管理系統太多了。多年來,應用開發甚至是 Linux 的採用都變得愈加複雜起來,因為你為了提供你的軟體(比如,放到 Debian 倉庫)而投入的所有時間和工作,對於你想讓它們進入 RPM 系統並沒有什麼幫助,對於 SUSE 的 Zypper 管理器也一樣,沒有什麼幫助。

解決軟體孤島問題的一種有前途的方案是分發具有自足環境的應用,它們可以在任何 Linux 發行版上運行。在這個年輕且不斷發展的領域中,選擇之一是 AppImage

使用 AppImage

我全面投入到了 AppImage。就像我提到的其他軟體包管理系統一樣,如果你需要的話,有很多複雜的功能可以使用。但是,從本質上講,AppImage 非常簡單。AppImage 不像大多數其他包管理器一樣通過倉庫工作,它使用單個、獨立的文件,可以直接發送或通過網站共享。

下面是個展示它的美妙之處的例子。當我在用 AppImage 時,我在一個技術論壇上看到了一個很老的討論,它讓我找到了一個同樣久遠且廢棄的 GitHub 項目以及相關的 YAML 和配方文件。它們旨在自動構建準備生成 AppImage 包所需的相當複雜的基礎架構。儘管該基礎架構全部是在 5 年前的 Ubuntu 版本上構建的,但是當我將它們放在一起並運行 appimagetool 命令時,它創建了一個 AppImage 文件,它可在我當前的桌面上無縫運行。我不認為有很多有五年歷史的 GitHub 複雜項目可以使用其他技術運行,而無需認真重做。

但是這裡我我不會介紹這個案例。相反,我將用一個簡單的 Hello World 程序向你展示它是如何工作的。首先,請確保本地已安裝 AppStream 包。

對於基於 Debian 的系統,運行:

$ sudo apt install appstream

對於 RPM 系統,請使用:

$ sudo dnf install appstream

克隆這篇文章中提及的 Git 倉庫,我會基於它示例:

$ git clone <https://github.com/boolean-world/appimage-resources>
$ cd appimage-resources
$ ls hello-world-appimage

接下來,使用 cd 進入 Git 新創建的目錄。這裡有兩個目錄。請使用 hello-world-appimage。另一個是更複雜的項目,你也應該考慮嘗試一下。

Linux GUI 系統會讀取 helloworld.desktop 文件來知道如何呈現桌面圖標。事實證明,當前的這個文件會在以後給你帶來點麻煩,因此請進行一些小修改:添加 Categories= 這行並為其賦予值 GNOME。不要忘記最後的分號:

$ nano hello-world-appimage/helloworld.desktop
        add Categories=GNOME;

AppImage GitHub 項目下載 appimagetool 預編譯的二進位文件。訪問 GitHub 的原因之一:那裡有很多出色的文檔和資源。下載二進位文件後,使文件可執行,並將 hello-world-appimage 目錄傳給它。但是首先,你需要告訴它你想要的架構。由於某些原因,一個名字以 x86_64 結尾的工具都不能自行確定是否該使用 x86_64 來構建應用程序(我不知道這是怎麼回事)。

$ wget <https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage>
$ chmod +x appimagetool-x86_64.AppImage
$ ARCH=x86_64 ./appimagetool-x86_64.AppImage hello-world-appimage

如果你沒有看到任何錯誤消息,那麼表示完成了,請運行:

$ ls
$ ./hello-world-appimage-x86_64.AppImage

總結

AppImage 是軟體包管理的非常有效的選擇。當你探索它時,我想你會發現它是 Linux 發行版默認軟體包系統的很好的替代品。

via: https://opensource.com/article/20/6/appimages

作者:David Clinton 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國