Linux系統-----包管理器的演變

每一個電腦設備都使用某種形式的軟件來執行其預約任務。在軟件開發的早期,對產品進行了嚴格的bug和其餘缺陷測試。在過去的十多年裏,軟件經過互聯網發佈,目的是經過應用新版本的軟件來修復任何錯誤。在某些狀況下,每一個應用程序都有本身的更新程序。在其餘狀況下,則由用戶本身決定如何得到和升級軟件。html

 

Linux早期採用了維護集中位置的作法,用戶能夠在這裏查找和安裝軟件。在這篇文章中,我將討論linux上軟件安裝的歷史,以及現代操做系統是如何與無休止的洪流保持同步的。linux

在軟件包管理器以前,Linux上的軟件是如何安裝的?shell

從歷史上看,軟件要麼是經過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-2001年開發的,做爲圖形化安裝程序的後端引擎。黃狗Linux。杜克大學喜歡是的想法,並決定改進它。他們創造了改良的黃狗更新器(Yum)它最終被改形成幫助管理大學的紅帽Linux系統。百勝愈來愈受歡迎,據估計,到2005年,它將被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)最初是在2002年發佈的,Pacman已經獲得了穩步的迭代和改進。Pacman的主要優勢之一是它支持拱築體系,一種從源構建包的系統。構建系統包含一個名爲PKGBUILD的文件,該文件包含元數據(例如版本號、修訂、依賴項等)以及一個shell腳本,其中包含編譯符合Arch Linux要求的包所需的標誌。而後將產生的二進制文件打包到上述文件中。.tar.xz文件供帕克曼使用。

這個系統致使建立了ARCH用戶庫(Aur)是一個社區驅動的存儲庫,包含PKGBUILD文件和支持補丁或腳本。這使得幾乎無窮無盡的軟件能夠在Arch中得到。這個系統的明顯優勢是,若是用戶但願向公衆提供軟件,他們不須要通過官方渠道才能在主要存儲庫中接受軟件。缺點是它依賴社區管理,相似於碼頭樞紐,CANTEN的快照包,或其餘相似的機制。有許多特定於Aur的包管理器,它們能夠用於從Aur中的PKGBUILD文件中下載、編譯和安裝。

結語

固然,本文只觸及包管理器所能作的事情的表面。還有不少其餘的包管理器,我沒法在這個空間中介紹。一些發行版,好比Ubuntu或ElementOS,已經不遺餘力提供了一種圖形化的包管理方法。最後推薦《Linux就該這麼學》這本書,很是適合小白入門~

相關文章
相關標籤/搜索