8種常用包管理有:1、DPKG,Debian系的包管理系統(tǒng);2、apt,Debian、Ubuntu上的包管理系統(tǒng);3、apt-cache,一個apt軟件包管理工具;4、RPM,紅帽系的包管理系統(tǒng);5、yum,一個解決包依賴關(guān)系而存在的軟件包管理器;6、DNF,新一代的rpm軟件包管理器;7、pkg,F(xiàn)reeBSD默認(rèn)使用的包管理器;8、Pacman,Arch系的包管理系統(tǒng)。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
大多數(shù)現(xiàn)代的類 Unix 操作系統(tǒng)都提供了一種中心化的機制用來搜索和安裝軟件。軟件通常都是存放在存儲庫中,并通過包的形式進行分發(fā)。處理包的工作被稱為包管理。包提供了操作系統(tǒng)的基本組件,以及共享的庫、應(yīng)用程序、服務(wù)和文檔。
包管理系統(tǒng)除了安裝軟件外,它還提供了工具來更新已經(jīng)安裝的包。包存儲庫有助于確保你的系統(tǒng)中使用的代碼是經(jīng)過審查的,并且軟件的安裝版本已經(jīng)得到了開發(fā)人員和包維護人員的認(rèn)可。
大多數(shù)包系統(tǒng)都是圍繞包文件的集合構(gòu)建的。包文件通常是一個存檔文件,它包含已編譯的二進制文件和軟件的其他資源,以及安裝腳本。包文件同時也包含有價值的元數(shù)據(jù),包括它們的依賴項,以及安裝和運行它們所需的其他包的列表。
雖然這些包管理系統(tǒng)的功能和優(yōu)點大致相同,但打包格式和工具卻因平臺而異:
操作系統(tǒng) | 格式 | 工具 |
---|---|---|
Debian | .deb |
apt , apt-cache ,, dpkg |
Ubuntu | .deb |
apt , apt-cache ,, dpkg |
CentOS | .rpm |
yum |
Fedora | .rpm |
dnf |
FreeBSD | Ports, .txz |
pkg |
1、DPKG
dpkg是Debian系的包管理系統(tǒng),包后綴名是.deb。
dpkg 是 linux 系統(tǒng)下用來安裝、創(chuàng)建和管理軟件包的工具。 其安裝的軟件包一般是下載到本地的軟件包,拓展名是deb。
格式 : dpkg 參數(shù) package.deb
(初學(xué)者容易忘記打空格,在命令和參數(shù)以及參數(shù)和軟件包中間要打空格,否則linux會無法識別)
dpkg -i
dpkg -i 是 linux 系統(tǒng)下用來安裝軟件包的命令。
格式 : /home/用戶名/桌面(desktop)/ # dpkg -i package.deb (此時,安裝包被放在桌面上,也可以放到其他文件夾中,在所在文件夾中打開終端或者# dpkg -i /絕對路徑/package.deb )
dpkg -r
dpkg -r 是 linux 系統(tǒng)下用來卸載軟件包的命令。 我推薦和dpkg -l 命令結(jié)合使用,因為卸載軟件的名字不一定和安裝時安裝包的名字一樣。
格式 : # dpkg -r package (卸載時可以在任意路徑)
使用 dpkg -l 命令找到需要卸載的軟件,將軟件名復(fù)制(不要將軟件版本一起復(fù)制),復(fù)制的軟件名替換格式里的package
dpkg -P
dpkg -P 是 linux 系統(tǒng)下用來卸載軟件包的同時刪除其配置文件的命令。 如果想要完全將軟件包卸載干凈最好使用這個命令。我就碰到過沒卸載干凈導(dǎo)致安裝后一版本的軟件時無法安裝成功的問題。
格式 : # dpkg -P package (使用方式可以參考dpkg -r)
dpkg -l
dpkg -l 是 linux 系統(tǒng)下用查看列出當(dāng)前已安裝的軟件包的命令。
格式 : # dpkg -l 就可以看到所有已安裝的軟件包
如果要看某個特定的軟件,比如我在公司里安裝的軟件帶有g(shù)ongsi的關(guān)鍵字
可以使用 # dpkg -l grep | gongsi 就可以看到帶gongsi關(guān)鍵詞的安裝包,其中 | 是豎杠不是字母l。
2、apt
apt是Advanced Package Tool的簡寫,是工作于Debian, Ubuntu等相關(guān)linux發(fā)行版上的軟件包管理系統(tǒng)。apt在類Unix操作系統(tǒng)上提供如自動檢索、配置和安裝軟件包等功能來簡化軟件的管理。
apt, apt-get, apt-cache這幾個命令使用library來處理軟件包。apt實際上可以看作dpkg的前端,并且比以往的dselect對用戶更加友好。
apt整合了apt-get和apt-cache——這兩個命令功能很多但一般往往用不到,因此apt保留了常用和重要的功能。
常用命令:
# 從軟件源同步最新的軟件信息并緩存到本地 apt update # 安裝指定的包,并同時安裝其依賴的其他包。 apt install [package] # 更新軟件版本 apt upgrade # 查找軟件,沒有添加參數(shù)就是展示所有的軟件包,加關(guān)鍵字就是搜索指定的包 apt list zlib* # 列出已經(jīng)安裝的軟件版本 apt list --installed # 關(guān)鍵字搜索軟件的名稱和描述 apt search zlib* # 卸載包,但是配置文件還是會保存著 apt remove [package] # 卸載包,并刪除配置文件 apt purge [package] # 卸載因安裝軟件自動安裝的依賴 apt autoremove # 刪除所有已下載的軟件包 apt clean # 類似clean,但刪除的是過期的包(即已不能下載或者是無用的包) apt autoclean
3、apt-cache
apt-cache是linux下的一個apt軟件包管理工具,它可查詢apt的二進制軟件包緩存文件。APT包管理的大多數(shù)信息查詢功能都可以由apt-cache命令實現(xiàn),通過apt-cache命令配合不同的子命令和參數(shù)的使用,可以實現(xiàn)查找,顯示軟件包信息及包依賴關(guān)系等功能.
常用命令:
apt-cache show package_name #顯示指定軟件包的信息,包括版本號,安裝狀態(tài)和包依賴關(guān)系等. apt-cache search package_name #搜索軟件包,可以按關(guān)鍵字查找軟件包,通常用于查詢的關(guān)鍵字會使用軟件包的名字或軟件包的一部分. apt-cache showpkg package_name #顯示軟件包的依賴關(guān)系信息. apt-cache stats #顯示當(dāng)前系統(tǒng)所使用的數(shù)據(jù)源的統(tǒng)計信息,用戶可以使用該命令查看數(shù)據(jù)源的相關(guān)統(tǒng)計信息. apt-cache policy package_name #顯示軟件包的安裝狀態(tài)和版本信息. apt-cache depends package_name #顯示指定軟件包所依賴的軟件包。當(dāng)用戶需要了解某個軟件包依賴于其他哪些包時,可以使用apt-cache depends來查詢包依賴關(guān)系. apt-cache rdepends package_name #查詢指定軟件包的反向依賴關(guān)系,即那些其他的軟件包需要依賴你所指定的軟件包做為安裝和運行的必須條件. apt-cache dump #顯示緩存中的每個軟件包的簡要描述信息. apt-cache unmet #顯示不符合一致性的依賴關(guān)系.
4、RPM
RPM是紅帽系的包管理系統(tǒng),包后綴名是.rpm。
RPM是Red-Hat Package Manager(RPM軟件包管理器)的縮寫,這一文件格式名稱雖然打上了RedHat的標(biāo)志,但是其原始設(shè)計理念是開放式的,現(xiàn)在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分發(fā)版本都有采用,可以算是公認(rèn)的行業(yè)標(biāo)準(zhǔn)了。一種用于互聯(lián)網(wǎng)下載包的打包及安裝工具,它包含在某些Linux分發(fā)版中。它生成具有.RPM擴展名的文件。與Dpkg類似。
簡而言之,就是linux中的軟件包。
rpm包構(gòu)成
-
【1】軟件名
-
【2】版本
-
【3】適用系統(tǒng)
-
【4】系統(tǒng)架構(gòu)
-
【5】適用rpm體系軟件
rpm相關(guān)命令及參數(shù)
可以使用rpm命令對rpm包軟件進行相關(guān)處理
5、yum
yum,全稱“Yellow dog Updater, Modified”,是一個專門為了解決包的依賴關(guān)系而存在的軟件包管理器。就好像 Windows 系統(tǒng)上可以通過 360 軟件管家實現(xiàn)軟件的一鍵安裝、升級和卸載,Linux 系統(tǒng)也提供有這樣的工具,就是 yum。
可以這么說,yum 是改進型的 RPM 軟件管理器,它很好的解決了 RPM 所面臨的軟件包依賴問題。yum 在服務(wù)器端存有所有的 RPM 包,并將各個包之間的依賴關(guān)系記錄在文件中,當(dāng)管理員使用 yum 安裝 RPM 包時,yum 會先從服務(wù)器端下載包的依賴性文件,通過分析此文件從服務(wù)器端一次性下載所有相關(guān)的 RPM 包并進行安裝。
yum 軟件可以用 rpm 命令安裝,安裝之前可以通過如下命令查看 yum 是否已安裝:
# rpm -qa | grep yum yum-metadata-parser-1.1.2-16.el6.i686 yum-3.2.29-30.el6.centos.noarch yum-utils-1.1.30-14.el6.noarch yum-plugin-fastestmirror-1.1.30-14.el6.noarch yum-plugin-security-1.1.30-14.el6.noarch
可以看到,系統(tǒng)上已經(jīng)安裝了 yum。
yum基于 RPM 包管理,能夠從指定的服務(wù)器自動下載 RPM 包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
yum 提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。
yum 語法
yum [options] [command] [package ...]
-
options:可選,選項包括-h(幫助),-y(當(dāng)安裝過程提示選擇全部為 "yes"),-q(不顯示安裝的過程)等等。
-
command:要進行的操作。
-
package:安裝的包名。
yum常用命令
1. 列出所有可更新的軟件清單命令:yum check-update
2. 更新所有軟件命令:yum update
3. 僅安裝指定的軟件命令:yum install <package_name>
4. 僅更新指定的軟件命令:yum update <package_name>
5. 列出所有可安裝的軟件清單命令:yum list
6. 刪除軟件包命令:yum remove <package_name>
7. 查找軟件包命令:yum search <keyword>
8. 清除緩存命令:
-
yum clean packages: 清除緩存目錄下的軟件包
-
yum clean headers: 清除緩存目錄下的 headers
-
yum clean oldheaders: 清除緩存目錄下舊的 headers
-
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟件包及舊的 headers
6、DNF
DNF 是新一代的rpm軟件包管理器。他首先出現(xiàn)在 Fedora 18 這個發(fā)行版中。而最近,它取代了yum,正式成為 Fedora 22 的包管理器。
DNF包管理器克服了YUM包管理器的一些瓶頸,提升了包括用戶體驗,內(nèi)存占用,依賴分析,運行速度等多方面的內(nèi)容。DNF使用 RPM, libsolv 和 hawkey 庫進行包管理操作。盡管它沒有預(yù)裝在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同時使用 DNF 。
安裝 DNF 包管理器
DNF 并未默認(rèn)安裝在 RHEL 或 CentOS 7系統(tǒng)中,但是 Fedora 22 已經(jīng)默認(rèn)使用 DNF .
1、為了安裝 DNF ,您必須先安裝并啟用 epel-release 依賴。
在系統(tǒng)中執(zhí)行以下命令:
# yum install epel-release
或者
# yum install epel-release -y
其實這里并沒有強制使用”-y”的理由,相反的,在不使用”-y”的情況下,用戶可以在安裝過程中查看到底有哪些東西被安裝進了系統(tǒng)。但對于沒有這個需求的用戶,您可以在 YUM 中使用”-y”參數(shù)來自動安裝所有東西。
2、使用 epel-release 依賴中的 YUM 命令來安裝 DNF 包。在系統(tǒng)中執(zhí)行以下命令:
# yum install dnf
然后, DNF 包管理器就被成功的安裝到你的系統(tǒng)中了。接下來,是時候開始我們的教程了!在這個教程中,您將會學(xué)到27個用于 DNF 包管理器的命令。使用這些命令,你可以方便有效的管理您系統(tǒng)中的 RPM 軟件包?,F(xiàn)在,讓我們開始學(xué)習(xí) DNF 包管理器的27條常用命令吧!
7、pkg
FreeBSD默認(rèn)使用的包管理器。
8、Pacman
Pacman是Arch系的包管理系統(tǒng),新版本包后綴名是.pkg.tar.zst,之前的版本是.pkg.tar.xz。