Linux中國

為什麼程序員喜歡為 Linux 打包

如今,人們比以往任何時候都喜愛 Linux。在這個系列中,我將分享使用 Linux 的 21 個不同理由。今天,我將談一談是什麼讓 Linux 的打包成為程序員的理想選擇。

程序員喜歡編程。這可能看起來是一個顯而易見的說法,但重要的是要明白,開發軟體所涉及的不僅僅是編寫代碼。它包括編譯、文檔、源代碼管理、安裝腳本、配置默認值、支持文件、交付格式等等。從一個空白的屏幕到一個可交付的軟體安裝程序,需要的不僅僅是編程,但大多數程序員寧願編程也不願打包

什麼是打包?

當食物被送到商店購買時,它是被包裝好的。當直接從農民或從環保的散裝或桶裝商店購買時,包裝是你所帶的任何容器。當從雜貨店購買時,包裝可能是一個紙板箱、塑料袋、一個鐵罐等等。

當軟體被提供給廣大計算機用戶時,它也必須被打包起來。像食品一樣,軟體也有幾種打包方式。開源軟體可以不進行打包,因為用戶在獲得原始代碼後,可以自己編譯和打包它。然而,打包也有好處,所以應用程序通常以某種特定於用戶平台的格式交付。而這正是問題的開始,因為軟體包的格式並不只有一種。

對於用戶來說,軟體包使安裝軟體變得容易,因為所有的工作都由系統的安裝程序完成。軟體被從軟體包中提取出來,並分發到操作系統中的適當位置。幾乎沒有任何出錯的機會。

然而,對於軟體開發者來說,打包意味著你必須學會如何創建一個包 —— 而且不僅僅是一個包,而是為你希望你的軟體可以安裝到的每一個操作系統創建一個獨特的包。更加複雜的是,每個操作系統都有多種打包格式和選項,有時甚至是不同的編程語言。

為 Linux 打包

傳統上,Linux 的打包方式似乎是非常多的。從 Fedora 衍生出來的 Linux 發行版,如 Red Hat 和 CentOS,默認使用 .rpm 包。Debian 和 Ubuntu(以及類似的)默認使用 .deb 包。其他發行版可能使用其中之一,或者兩者都不使用,選擇自定義的格式。當被問及時,許多 Linux 用戶說,理想情況下,程序員根本不會為 Linux 打包他們的軟體,而是依靠每個發行版的軟體包維護者來創建軟體包。所有安裝在 Linux 系統上的軟體都應該來自該發行版的官方軟體庫。然而,目前還不清楚如何讓你的軟體可靠地被一個發行版打包和包含,更不用說所有的發行版了。

Linux 的 Flatpak

Flatpak 打包系統是為了統一和去中心化 Linux 作為開發者的交付目標而推出的。通過 Flatpak,無論是開發者還是其他人(Linux 社區的成員、不同的開發者、Flatpak 團隊成員或其他任何人)都可以自由地打包軟體。然後他們可以將軟體包提交給 Flathub,或者選擇自我託管軟體包,並將其提供給幾乎任何 Linux 發行版。Flatpak 系統適用於所有 Linux 發行版,所以針對一個發行版就等於針對所有發行版。

Flatpak 技術如何工作

Flatpak 具有普遍吸引力的秘密是一個標準基礎。Flatpak 系統允許開發者引用一套通用的軟體開發者工具包(SDK)模塊。這些模塊由 Flatpak 系統的維護者進行打包和管理。當你安裝 Flatpak 時,SDK 會根據需要被拉入,以確保與你的系統兼容。任何特定的 SDK 只需要一次,因為它所包含的庫可以在任何 Flatpak 中共享。

如果開發者需要一個尚未包含在現有 SDK 中的庫,開發者可以在 Flatpak 中添加該庫。

結果不言自明。用戶可以從一個叫做 Flathub 的中央倉庫在任何 Linux 發行版上安裝數百個軟體包。

開發者如何使用 Flatpak

Flatpak 被設計成可重複的,所以構建過程很容易被集成到 CI/CD 工作流程中。Flatpak 是在一個 YAML 或 JSON 清單文件中定義的。你可以按照我的 介紹性文章 創建你的第一個 Flatpak,你也可以在 docs.flatpak.org 閱讀完整的文檔。

Linux 讓它變得簡單

在 Linux 上創建軟體很容易,為 Linux 打包也很簡單,而且可以自動化。如果你是一個程序員,Linux 使你很容易忘記打包這件事,因為它只需要針對一個系統,並可以整合到你的構建過程中。

via: https://opensource.com/article/21/2/linux-packaging

作者:Seth Kenlon 選題:lujun9972 譯者:wxy 校對: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中國