新聞中心
在 linux 中,包管理器非常重要,了解如何使用多種包管理器可以讓你像一個高手一樣活得很舒適,從在倉庫下載軟件、安裝軟件,到更新軟件、處理依賴和刪除軟件是非常重要的,這也是Linux 系統(tǒng)管理的一個重要部分。

創(chuàng)新互聯(lián)公司專注于寧洱企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開發(fā)。寧洱網(wǎng)站建設(shè)公司,為寧洱等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
什么是包管理器?
簡單來說,“ 包管理器(package manager)”(或“軟件包管理器”)是一種工具,它允許用戶在操作系統(tǒng)上安裝、刪除、升級、配置和管理軟件包。軟件包管理器可以是像“軟件中心”這樣的圖形化應(yīng)用,也可以是像 apt-get 或 pacman 這樣的命令行工具。
你會發(fā)現(xiàn)我經(jīng)常在教程和文章中使用“包”這個詞。要了解包管理器,你必須了解什么是包。
什么是包?
一個“ 包(package)”(或“軟件包”)通常指的是一個應(yīng)用程序,它可以是一個 GUI 應(yīng)用程序、命令行工具或(其他軟件程序需要的)軟件庫。包本質(zhì)上是一個存檔文件,包含二進(jìn)制可執(zhí)行文件、配置文件,有時還包含依賴關(guān)系的信息。
在舊時代, 軟件曾經(jīng)是從它的源代碼安裝的 。你會參考一個文件(通常命名為 README),看看它需要什么軟件組件、二進(jìn)制文件的位置。它通常包括一個配置腳本或 Makefile。你必須自己編譯該軟件或自己處理所有的依賴關(guān)系(有些軟件需要安裝其他軟件)。
為了擺脫這種復(fù)雜性,Linux 發(fā)行版創(chuàng)建了自己的打包格式,為終端用戶提供隨時可用的二進(jìn)制文件(預(yù)編譯軟件),以便安裝軟件,同時提供一些 元數(shù)據(jù) (版本號、描述)和依賴關(guān)系。
這就像烤蛋糕與買蛋糕一樣。
什么是Linux包管理器,它是如何工作的?什么是Linux包管理器,它是如何工作的?
大約在上世紀(jì) 90 年代中期,Debian 創(chuàng)建了 DEB 打包格式(.deb),Red Hat Linux 創(chuàng)建了 RPM(Red Hat Package Manager 的縮寫)打包系統(tǒng)(.rpm)。編譯源代碼的方式仍然存在,但現(xiàn)在是可選的。
要與打包系統(tǒng)交互或使用打包系統(tǒng),你需要一個包管理器。
包管理器是如何工作的?
請記住,包管理器是一個通用的概念,它并不是 Linux 獨(dú)有的。你會經(jīng)常發(fā)現(xiàn)各種軟件或編程語言的包管理器。有 只是針對 Python 包的 PIP 包管理器 。甚至 Atom 編輯器也有自己的包管理器 。
由于本文的重點(diǎn)是 Linux,所以我會從 Linux 的角度出發(fā)。不過,這里的大部分解釋也可以應(yīng)用于一般的包管理器。
我創(chuàng)建了這個圖(基于 SUSE Wiki),這樣你就可以很容易理解包管理器是如何工作的。
幾乎所有的 Linux 發(fā)行版都有“ 軟件倉庫(software repository)”,它基本上是軟件包的集合。是的,可以有不止一個軟件庫。軟件庫包含不同種類的軟件包。
軟件倉庫也有元數(shù)據(jù)文件,其中包含了軟件包的信息,如軟件包的名稱、版本號、軟件包的描述和軟件倉庫名稱等。這就是你在 Ubuntu/Debian 中使用 apt show 命令 所看到的。
你的系統(tǒng)上的包管理器首先會與元數(shù)據(jù)進(jìn)行交互。包管理器在你的系統(tǒng)上創(chuàng)建了一個元數(shù)據(jù)的本地緩存。當(dāng)你運(yùn)行包管理器的更新選項(例如 apt update)時,它會通過引用倉庫中的元數(shù)據(jù)來更新本地元數(shù)據(jù)緩存。
當(dāng)你運(yùn)行軟件包管理器的安裝命令(例如 apt install package_name)時,軟件包管理器會引用這個緩存。如果它在緩存中找到了包的信息,它就會使用互聯(lián)網(wǎng)連接到相應(yīng)的倉庫,并在你的系統(tǒng)上安裝之前先下載包。
一個包可能有依賴關(guān)系。意思是說,它可能需要安裝其他軟件包。軟件包管理器通常會處理這些依賴關(guān)系,并將其與你正在安裝的軟件包一起自動安裝。
Linux 中包管理器會處理依賴關(guān)系
同樣,當(dāng)你使用包管理器刪除一個包時,它要么自動刪除,要么通知你系統(tǒng)有未使用的包可以清理。
除了安裝、刪除這些顯而易見的任務(wù)外,你還可以使用包管理器對包進(jìn)行配置,并根據(jù)自己的需要進(jìn)行管理。例如,你可以在常規(guī)的系統(tǒng)更新中 防止升級某個包的版本 。你的包管理器可能還能做很多事情。
不同種類的包管理器
包管理器因打包系統(tǒng)而異,但同一打包系統(tǒng)卻可能有多個包管理器。
例如,RPM 有 Yum 和 DNF 包管理器。對于 DEB,你有 apt-get、 aptitude 等基于命令行的包管理器。
Synaptic 包管理器
軟件包管理器不一定是基于命令行的,也有圖形化的軟件包管理工具,比如 Synaptic 。你的發(fā)行版的“軟件中心”也是一個軟件包管理器,即使它在底層運(yùn)行的是 apt-get 或 DNF。
標(biāo)題名稱:講解一下linux中包管理器
當(dāng)前路徑:http://m.fisionsoft.com.cn/article/dhhccdh.html


咨詢
建站咨詢
