Linux系統 包管理器的演變

2021-09-26 15:30:07 字數 2381 閱讀 6004

每個電腦裝置都使用某種形式的軟體來執行其預定任務。在軟體開發的早期,對產品進行了嚴格的bug和其他缺陷測試。在過去的十多年裡,軟體通過網際網路發布,目的是通過應用新版本的軟體來修復任何錯誤。在某些情況下,每個應用程式都有自己的更新程式。在其他情況下,則由使用者自己決定如何獲得和公升級軟體。

linux早期採用了維護集中位置的做法,使用者可以在這裡查詢和安裝軟體。在這篇文章中,我將討論linux上軟體安裝的歷史,以及現代作業系統是如何與無休止的洪流保持同步的。

在軟體包管理器之前,linux上的軟體是如何安裝的?

從歷史上看,軟體要麼是通過ftp提供的,要麼是通過郵件列表提供的(最終這個發行版將包括基本**)。只有幾個小檔案包含了建立二進位制檔案的指令(通常在tarfile中)。您將解壓縮檔案,讀取自述檔案,只要您有gcc或其他形式的c編譯器,您通常會執行乙個./configure帶有一些屬性列表的指令碼,例如將檔案貼上到庫檔案、建立新二進位制檔案的位置等。此外,configure程序將檢查您的系統是否存在應用程式依賴關係。如果缺少任何主要需求,配置指令碼將退出,在滿足所有依賴關係之前無法繼續安裝。如果成功完成配置指令碼,則makefile都會被創造出來。

什麼是包裹?

軟體包是為了對抗這種複雜性而發明的。為了便於移植和儲存,包將多個資料檔案一起收集到乙個存檔檔案中,或者簡單地壓縮檔案以減少儲存空間。包中包含的二進位制檔案是根據開發人員選擇的正常預設值預編譯的。包還包含元資料,如軟體名稱、用途說明、版本號和軟體正常執行所需的依賴項列表。

雖然包本身並不直接管理依賴項,但它們在linux軟體管理方面向前邁進了一大步。

什麼是軟體儲存庫?

幾年前,在智慧型手機氾濫之前,對於許多使用者來說,如果他們沒有參與linux生態系統的話,建立乙個軟體儲存庫的想法是很難理解的。到目前為止,大多數windows使用者似乎仍然需要開啟網頁瀏覽器來搜尋和安裝新的軟體。然而,那些擁有智慧型手機的人已經習慣了軟體「商店」的想法。智慧型手機使用者獲取軟體的方式和軟體包管理器的工作方式並無不同。雖然已經有幾次嘗試為軟體庫建立乙個有吸引力的ui,但絕大多數linux使用者仍然使用命令列來安裝軟體包。軟體儲存庫是系統配置要使用的任何儲存庫的所有可用軟體的集中列表。

下面是一些最著名的包管理器的簡要概述:

基於rpm的包管理器

更新基於rpm的系統,特別是那些基於redhat技術的系統,有著非常有趣和詳細的歷史。實際上,當前版本的百勝(用於企業發行版)和dnf(對於社群)組合了幾個開源專案,以提供它們當前的功能。

最初,redhat使用了乙個名為rpm(紅帽包管理器),至今仍在使用。但是,它的主要用途是安裝rpm,這是您在本地擁有的,而不是搜尋軟體儲存庫。包管理器名為up2date建立的目的是通知使用者包的更新,並使他們能夠搜尋遠端儲存庫並輕鬆安裝依賴項。在達到目的同時,一些社群成員認為up2date有一些明顯的缺點。

目前對百勝的咒語來自幾種不同的社群努力。yellowdogupdater(yup)是由terra軟體解決方案公司的人員在1999-2023年開發的,作為圖形化安裝程式的後端引擎。黃狗linux。杜克大學喜歡是的想法,並決定改進它。他們創造了改良的黃狗更新器(yum)它最終被改造成幫助管理大學的紅帽linux系統。百勝越來越受歡迎,據估計,到2023年,它將被linux市場的一半以上所使用。今天,幾乎所有使用rpm的linux發行版都使用yum進行包管理(除了一些顯著的例外)。

基於debian的包管理器

debian是目前維護最古老的linux發行版之一,它的系統非常類似於基於rpm的系統。他們用.deb包,可以由名為dpkg. dpkg非常類似於rpm因此,它是為管理本地可用的包而設計的。它不進行依賴解析(儘管它進行依賴檢查),也沒有與遠端儲存庫互動的可靠方法。為了提高使用者體驗和易用性,debian專案委託了乙個名為神靈。這個代號最終被放棄,改為高階包裝工具(apt).

基於arch的軟體包管理器

arch linux使用名為帕克曼。不像.deb或.rpm檔案,pacman使用了更傳統的tarball和lzma 2壓縮(.tar.xz)這使得arch linux包比其他形式的壓縮存檔要小得多(例如gzip)最初是在2023年發布的,pacman已經得到了穩步的迭代和改進。pacman的主要優點之一是它支援拱築體系,一種從源構建包的系統。構建系統包含乙個名為pkgbuild的檔案,該檔案包含元資料(例如版本號、修訂、依賴項等)以及乙個shell指令碼,其中包含編譯符合arch linux要求的包所需的標誌。然後將產生的二進位制檔案打包到上述檔案中。.tar.xz檔案供帕克曼使用。 

結語

當然,本文只觸及包管理器所能做的事情的表面。還有很多其他的包管理器,我無法在這個空間中介紹。一些發行版,比如ubuntu或elementos,已經竭盡全力提供了一種圖形化的包管理方法。最後推薦《linux就該這麼學》這本書,非常適合小白入門~

Linux系統 包管理器的演變

每個電腦裝置都使用某種形式的軟體來執行其預定任務。在軟體開發的早期,對產品進行了嚴格的bug和其他缺陷測試。在過去的十多年裡,軟體通過網際網路發布,目的是通過應用新版本的軟體來修復任何錯誤。在某些情況下,每個應用程式都有自己的更新程式。在其他情況下,則由使用者自己決定如何獲得和公升級軟體。linux...

Linux包管理器

使用 linux 系統總是免不了要接觸包管理工具。比如,debian ubuntu 的 apt opensuse 的 zypp fedora 的 yum mandriva 的 urpmi slackware 的 slackpkg archlinux 的 pacman gentoo 的 emerge ...

Mac OS系統Homebrew包管理器

安裝 usr bin ruby e curl fssl 解除安裝 閒話少敘,安裝完成後,可以通過brew version檢視版本號。homebrew安裝成功後,會自動建立目錄 usr local cellar 來存放homebrew安裝的程式。常用命令行表 檢視brew的幫助 brew help 安...