1. 程式人生 > >Linux系統-----包管理器的演變

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

每個電腦裝置都使用某種形式的軟體來執行其預定任務。在軟體開發的早期,對產品進行了嚴格的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-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就該這麼學》這本書,非常適合小白入門~

相關推薦

Linux系統-----管理演變

每個電腦裝置都使用某種形式的軟體來執行其預定任務。在軟體開發的早期,對產品進行了嚴格的bug和其他缺陷測試。在過去的十多年裡,軟體

linux管理

time sql 命令行選項 清單 ger modified remove 興趣 弊端 一、操作linux發型版本的包管理器 此小結摘抄:https://www.cnblogs.com/linuxprobe/p/5883783.html   在 linu

linux軟體管理

大多數現代類 Unix 作業系統都提供了一個集中的軟體包管理機制,以幫助使用者搜尋、安裝和管理軟體。而軟體通常以包的形式儲存在倉庫(repository)中,對軟體包的使用和管理被稱為包管理。而 Linux 包的基本組成部分通常有:共享庫、應用程式、服務和文件。

Linux軟體管理及rpm命令總結

一、軟體包管理器 1、功能: (1)將軟體包打包成一個檔案,其中包括: ①二進位制程式 ②庫檔案 ③配置檔案 ④幫助檔案 (2)生成資料庫,追中所安裝的每一個檔案。 2、軟體包管理器的核

以rpm為後端及以yum為前端工具的程序管理Linux發行版系統centos中的使用

rpm yum 程序包管理: 應用程序的安裝,實際上是解壓縮並復制程序包中的文件到指定目錄的過程; 程序包管理器: 方便終端用戶進行程序的安裝、卸載、升級、安裝信息查詢及校驗等工作; 不同的Linux的發行版本中,有不同的程序包管理器: Debian:dpt;Redhat:rpm;S.u.S.

Linux系統紅帽軟件管理(RPM)

ont 軟件包管理器 win 歸檔壓縮 設計 器) 詳細 linux linux系統 1、源代碼管理 絕大多數開源軟件都是直接以源代碼形式發布的,一般會被打包為tar.gz 的歸檔壓縮文件。程序源代碼需要編譯為二進制可執行文件後才能夠運行使用。源代碼的基本編譯流程為 ./

Linux ubuntu 系統 dpkg 和apt-get 管理的區別

Ubuntu 屬於 Debian系列 常見的安裝包格式deb包,安裝deb包的命令是“dpkg -引數 deb檔案” 包管理工具:apt-get 安裝軟體包 dpkg -i package_name.deb //安裝本地軟體包,不解決

linux基本操作之yum程序管理

yum在Centos系統中,程序包管理器的核心是rpm: 其後端所使用rpm命令行工具; 前段使用yum命令行工具或dnf命令行工具;程序包管理的前段工具: RHEL/Centos系列發行版linux中,yum和dnf; yum命令行工具: Yellow

linux基本操作之rpm程序管理

rpm在linux中的應用程序結構形式分為三種: 1)源代碼形式 2)二進制形式 3)程序包形式其中源代碼是最權威的,二進制形式經過了一系列的編譯、匯編、連接等等其他操作得到可以執行的程序及其他相關的文件,而程序包形式則是二進制形式進一步進行操作,使之可以自動安裝程序包中的所有文件,當然在卸

2018-3-14Linux系統管理(12) Linux程序管理(2)yum前端管理工具

Linux 系統管理 我們在之前的章節中講到了Linux的程序包管理的基礎與實現,後面也講述了RPM包的管理命令實現了管理包的功能,主要用的是rpm命令,那麽rpm實現程序管理總結如下: rpm命令實現程序管理: 安裝:-ivh, --nodeps, --replacepkgs

linux rpm程序管理

man 功能 獲取 group eas 沒有 可行性 硬件 x86 在linux中的應用程序結構形式分為三種:1)源代碼形式2)二進制形式3)程序包形式其中源代碼是最權威的,二進制形式經過了一系列的編譯、匯編、連接等等其他操作得到可以執行的程序及其他相關的文件,而程序包形式

使用腳本在Linux服務上自動安裝Kubernetes的管理Helm

apt 分享 hive char ati user cat more 執行文件 Helm之於Kubernetes好比yum之於Red Hat Enterprise Linux,或者apt-get之於Ubuntu。 Helm是由helm CLI和Tiller組成,是典型的Cl

怎樣在 Ubuntu 16.04 強制 APT 管理使用 IPv4 | Linux 中國

man details 1.8 推出 png bcm 基於 styles 網絡 版權聲明:本文為博主原創文章,未經博主同意不得轉載。 https://blog.csdn.net/F8qG7f9YD02Pe/article/details

使用指令碼在Linux伺服器上自動安裝Kubernetes的管理Helm

Helm之於Kubernetes好比yum之於Red Hat Enterprise Linux,或者apt-get之於Ubuntu。 Helm是由helm CLI和Tiller組成,是典型的Client/Server應用。helm運行於客戶端,提供命令列介面;Tiller應用運行於Kubernetes內部。

Windows系統類似centos的管理Chocolatey

unix類系統都有很方便的軟體包管理系統,方便 快捷,而且能解決依賴。 windows下 的Chocolatey 也提供了一條類似的解決途徑。 英文版使用說明可以參考 https://chocolatey.org/install  一,安裝使用cmd.exe 執行以下命令

Linux安裝Yum管理

一般Fedora/RedHat/Centos是安裝了yum包管理器的,但是有些時候,比如RedHat或其他商業Linux的yum可能沒有Fedora的更新或更多,或者要首先服務費用,這時候,可以把yum源,換成Fedora的/Centos的   yum 是linux環境安裝軟體包的

Linux 管理

RPM: rpm(Red-Hat Package Manager) 為 Redhat 提出的包管理器, 用於在 Redhat 及其衍生版本中安裝 rpm 格式的軟體包 rpm 的優點: 1、簡化了原始碼編譯的難度, 使得安裝或者解除安裝軟體只需一條命令即可 缺點: 1、

如何在 Ubuntu 16.04 強制 APT 管理使用 IPv4 | Linux 中國

在搜尋了一番谷歌後,我意識到 Ubuntu 映象站點有時無法通過 IPv6 訪問。-- Sk有用

Linux系統VIM編輯管理(2)

Linux 是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多使用者、多工、支援多執行緒和多CPU的作業系統.它能執行主要的UNIX工具軟體、應用程式和網路協議.它支援32位和64位硬體.Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統. 系

Linux例項應用與軟體管理知識點

每12小時備份並壓縮/etc/目錄至/backup目錄中 [[email protected] ~]# crontab -e ——>開啟一個文字編輯器 0 */12 * * * tar -zcf /backup/etc-$(date +"%Y-%m-%d-%H-%M"