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

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


咨詢(xún)
建站咨詢(xún)
