溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中apt、yum、dnf和pkg怎么用

發(fā)布時間:2021-10-28 17:34:32 來源:億速云 閱讀:222 作者:小新 欄目:系統(tǒng)運維

這篇文章主要介紹Linux中apt、yum、dnf和pkg怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

包管理系統(tǒng):簡要概述

大多數(shù)包系統(tǒng)都是圍繞包文件的集合構(gòu)建的。包文件通常是一個存檔文件,它包含已編譯的二進制文件和軟件的其他資源,以及安裝腳本。包文件同時也包含有價值的元數(shù)據(jù),包括它們的依賴項,以及安裝和運行它們所需的其他包的列表。

雖然這些包管理系統(tǒng)的功能和優(yōu)點大致相同,但打包格式和工具卻因平臺而異:

操作系統(tǒng)格式工具
Debian.debaptapt-cacheapt-getdpkg
Ubuntu.debaptapt-cacheapt-getdpkg
CentOS.rpmyum
Fedora.rpmdnf
FreeBSDPorts, .txzmakepkg

Debian 及其衍生版,如 Ubuntu、Linux Mint 和 Raspbian,它們的包格式是 .deb。APT  這款先進的包管理工具提供了大多數(shù)常見的操作命令:搜索存儲庫、安裝軟件包及其依賴項,并管理升級。在本地系統(tǒng)中,我們還可以使用 dpkg 程序來安裝單個的 deb  文件,APT 命令作為底層 dpkg 的前端,有時也會直接調(diào)用它。

最近發(fā)布的 debian 衍生版大多數(shù)都包含了 apt 命令,它提供了一個簡潔統(tǒng)一的接口,可用于通常由 apt-get 和 apt-cache  命令處理的常見操作。這個命令是可選的,但使用它可以簡化一些任務。

CentOS、Fedora 和其它 Red Hat 家族成員使用 RPM 文件。在 CentOS 中,通過 yum  來與單獨的包文件和存儲庫進行交互。

在最近的 Fedora 版本中,yum 已經(jīng)被 dnf 取代,dnf 是它的一個現(xiàn)代化的分支,它保留了大部分 yum 的接口。

FreeBSD 的二進制包系統(tǒng)由 pkg 命令管理。FreeBSD 還提供了 Ports  集合,這是一個存在于本地的目錄結(jié)構(gòu)和工具,它允許用戶獲取源碼后使用 Makefile 直接從源碼編譯和安裝包。

更新包列表

大多數(shù)系統(tǒng)在本地都會有一個和遠程存儲庫對應的包數(shù)據(jù)庫,在安裝或升級包之前***更新一下這個數(shù)據(jù)庫。另外,yum 和 dnf  在執(zhí)行一些操作之前也會自動檢查更新。當然你可以在任何時候?qū)ο到y(tǒng)進行更新。

系統(tǒng)命令
Debian / Ubuntusudo apt-get update
 sudo apt update
CentOSyum check-update
Fedoradnf check-update
FreeBSD Packagessudo pkg update
FreeBSD Portssudo portsnap fetch update

更新已安裝的包

在沒有包系統(tǒng)的情況下,想確保機器上所有已安裝的軟件都保持在***的狀態(tài)是一個很艱巨的任務。你將不得不跟蹤數(shù)百個不同包的上游更改和安全警報。雖然包管理器并不能解決升級軟件時遇到的所有問題,但它確實使你能夠使用一些命令來維護大多數(shù)系統(tǒng)組件。

在 FreeBSD 上,升級已安裝的 ports 可能會引入破壞性的改變,有些步驟還需要進行手動配置,所以在通過 portmaster 更新之前***閱讀下  /usr/ports/UPDATING 的內(nèi)容。

系統(tǒng)命令說明
Debian / Ubuntusudo apt-get upgrade只更新已安裝的包
 sudo apt-get dist-upgrade可能會增加或刪除包以滿足新的依賴項
 sudo apt upgradeapt-get upgrade 類似
 sudo apt full-upgradeapt-get dist-upgrade 類似
CentOSsudo yum update 
Fedorasudo dnf upgrade 
FreeBSD Packagessudo pkg upgrade 
FreeBSD Portsless /usr/ports/UPDATING使用 less 來查看 ports 的更新提示(使用上下光標鍵滾動,按 q 退出)。
 cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a安裝 portmaster 然后使用它更新已安裝的 ports

搜索某個包

大多數(shù)發(fā)行版都提供針對包集合的圖形化或菜單驅(qū)動的工具,我們可以分類瀏覽軟件,這也是一個發(fā)現(xiàn)新軟件的好方法。然而,查找包最快和最有效的方法是使用命令行工具進行搜索。

系統(tǒng)命令說明
Debian / Ubuntuapt-cache search search_string 
 apt search search_string 
CentOSyum search search_string 
 yum search all search_string搜索所有的字段,包括描述
Fedoradnf search search_string 
 dnf search all search_string搜索所有的字段,包括描述
FreeBSD Packagespkg search search_string通過名字進行搜索
 pkg search -f search_string通過名字進行搜索并返回完整的描述
 pkg search -D search_string搜索描述
FreeBSD Portscd /usr/ports && make search name=package通過名字進行搜索
 cd /usr/ports && make search key=search_string搜索評論、描述和依賴

查看某個軟件包的信息

在安裝軟件包之前,我們可以通過仔細閱讀包的描述來獲得很多有用的信息。除了人類可讀的文本之外,這些內(nèi)容通常包括像版本號這樣的元數(shù)據(jù)和包的依賴項列表。

系統(tǒng)命令說明
Debian / Ubuntuapt-cache show package顯示有關(guān)包的本地緩存信息
 apt show package 
 dpkg -s package顯示包的當前安裝狀態(tài)
CentOSyum info package 
 yum deplist package列出包的依賴
Fedoradnf info package 
 dnf repoquery --requires package列出包的依賴
FreeBSD Packagespkg info package顯示已安裝的包的信息
FreeBSD Portscd /usr/ports/category/port && cat pkg-descr 

從存儲庫安裝包

知道包名后,通??梢杂靡粋€命令來安裝它及其依賴。你也可以一次性安裝多個包,只需將它們?nèi)苛谐鰜砑纯伞?/p>

系統(tǒng)命令說明
Debian / Ubuntusudo apt-get install package 
 sudo apt-get install package1 package2 ...安裝所有列出來的包
 sudo apt-get install -y packageapt 提示是否繼續(xù)的地方直接默認 yes
 sudo apt install package顯示一個彩色的進度條
CentOSsudo yum install package 
 sudo yum install package1 package2 ...安裝所有列出來的包
 sudo yum install -y packageyum 提示是否繼續(xù)的地方直接默認 yes
Fedorasudo dnf install package 
 sudo dnf install package1 package2 ...安裝所有列出來的包
 sudo dnf install -y packagednf 提示是否繼續(xù)的地方直接默認 yes
FreeBSD Packagessudo pkg install package 
 sudo pkg install package1 package2 ...安裝所有列出來的包
FreeBSD Portscd /usr/ports/category/port && sudo make install從源碼構(gòu)建安裝一個 port

從本地文件系統(tǒng)安裝一個包

對于一個給定的操作系統(tǒng),有時有些軟件官方并沒有提供相應的包,那么開發(fā)人員或供應商將需要提供包文件的下載。你通常可以通過 web  瀏覽器檢索這些包,或者通過命令行 curl 來檢索這些信息。將包下載到目標系統(tǒng)后,我們通??梢酝ㄟ^單個命令來安裝它。

在 Debian 派生的系統(tǒng)上,dpkg 用來處理單個的包文件。如果一個包有未滿足的依賴項,那么我們可以使用 gdebi 從官方存儲庫中檢索它們。

在 CentOS 和 Fedora 系統(tǒng)上,yum 和 dnf 用于安裝單個的文件,并且會處理需要的依賴。

系統(tǒng)命令說明
Debian / Ubuntusudo dpkg -i package.deb 
 sudo apt-get install -y gdebi && sudo gdebi package.deb安裝 gdebi,然后使用 gdebi 安裝 package.deb 并處理缺失的依賴
CentOSsudo yum install package.rpm 
Fedorasudo dnf install package.rpm 
FreeBSD Packagessudo pkg add package.txz 
 sudo pkg add -f package.txz即使已經(jīng)安裝的包也會重新安裝

刪除一個或多個已安裝的包

由于包管理器知道給定的軟件包提供了哪些文件,因此如果某個軟件不再需要了,它通??梢愿蓛衾涞貜南到y(tǒng)中清除這些文件。

系統(tǒng)命令說明
Debian / Ubuntusudo apt-get remove package 
 sudo apt remove package 
 sudo apt-get autoremove刪除不需要的包
CentOSsudo yum remove package 
Fedorasudo dnf erase package 
FreeBSD Packagessudo pkg delete package 
 sudo pkg autoremove刪除不需要的包
FreeBSD Portssudo pkg delete package 
 cd /usr/ports/path_to_port && make deinstall卸載 port

apt 命令

Debian 家族發(fā)行版的管理員通常熟悉 apt-get 和 apt-cache。較少為人所知的是簡化的 apt  接口,它是專為交互式使用而設(shè)計的。

傳統(tǒng)命令等價的 apt 命令
apt-get updateapt update
apt-get dist-upgradeapt full-upgrade
apt-cache search stringapt search string
apt-get install packageapt install package
apt-get remove packageapt remove package
apt-get purge packageapt purge package

雖然 apt 通常是一個特定操作的快捷方式,但它并不能完全替代傳統(tǒng)的工具,它的接口可能會隨著版本的不同而發(fā)生變化,以提高可用性。如果你在腳本或 shell  管道中使用包管理命令,那么***還是堅持使用 apt-get 和 apt-cache。

獲取幫助

除了基于 web 的文檔,請記住我們可以通過 shell 從 Unix 手冊頁(通常稱為 man 頁面)中獲得大多數(shù)的命令。比如要閱讀某頁,可以使用  man:

man page

在 man 中,你可以用箭頭鍵導航。按 / 搜索頁面內(nèi)的文本,使用 q 退出。

系統(tǒng)命令說明
Debian / Ubuntuman apt-get更新本地包數(shù)據(jù)庫以及與包一起工作
 man apt-cache在本地的包數(shù)據(jù)庫中搜索
 man dpkg和單獨的包文件一起工作以及能查詢已安裝的包
 man apt通過更簡潔,用戶友好的接口進行最基本的操作
CentOSman yum 
Fedoraman dnf 
FreeBSD Packagesman pkg和預先編譯的二進制包一起工作
FreeBSD Portsman ports和 Ports 集合一起工作

以上是“Linux中apt、yum、dnf和pkg怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI