Linux命令之 DNF -- 新一代的 RPM 软件包管理器
文章目錄
- 一、命令介紹
- 二、安裝 DNF
- 三、DNF 命令
- (一)主要命令
- 1. 安裝、升級(jí)和刪除軟件包
- 2. 查詢(xún)和檢查軟件包
- 3. 執(zhí)行其它功能
- (二)插件命令
- 四、選項(xiàng)參數(shù)
- 五、命令示例
- (一)安裝、升級(jí)和刪除軟件包
- 安裝軟件包
- 安裝一個(gè)軟件包組
- 升級(jí)一個(gè)軟件包組中的軟件包
- 刪除一個(gè)軟件包組
- 從特定的軟件包庫(kù)安裝特定的軟件
- 更新軟件包到最新的穩(wěn)定發(fā)行版
- 升級(jí)軟件包
- 重新安裝特定軟件包
- 升級(jí)所有系統(tǒng)軟件包
- 刪除軟件包
- 刪除無(wú)用孤立的軟件包
- 刪除緩存的無(wú)用軟件包
- (二)查詢(xún)和檢驗(yàn)軟件包
- 查看系統(tǒng)中可用的 DNF 軟件庫(kù)
- 查看所有的軟件包組
- 查看系統(tǒng)中可用和不可用的所有的 DNF 軟件庫(kù)
- 列出所有 RPM 包
- 列出所有安裝了的 RPM 包
- 列出所有可供安裝的 RPM 包
- 搜索軟件庫(kù)中的 RPM 包
- 查找某一文件的提供者
- 查看軟件包詳情
- 檢查系統(tǒng)軟件包的更新
- (三)執(zhí)行其它功能
- 查看安裝在您系統(tǒng)中的 DNF 包管理器的版本
- 獲取有關(guān)某條命令的使用幫助
- 查看所有的 DNF 命令及其用途
- 查看 DNF 命令的執(zhí)行歷史
- 回滾某個(gè)特定軟件的版本
一、命令介紹
DNF 是新一代的 rpm 軟件包管理器。他首先出現(xiàn)在 Fedora 18 這個(gè)發(fā)行版中。而最近,它取代了 YUM,正式成為 Fedora 22 的包管理器。
DNF 包管理器克服了 YUM 包管理器的一些瓶頸,提升了包括用戶(hù)體驗(yàn),內(nèi)存占用,依賴(lài)分析,運(yùn)行速度等多方面的內(nèi)容。DNF 使用 RPM, libsolv 和 hawkey 庫(kù)進(jìn)行包管理操作。盡管它沒(méi)有預(yù)裝在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同時(shí)使用 DNF 。你可以在這里獲得關(guān)于 DNF 的更多知識(shí):《DNF 代替 YUM ,你所不知道的緣由》
DNF 的最新穩(wěn)定發(fā)行版版本號(hào)是 1.0,發(fā)行日期是2015年5月11日。 這一版本的額 DNF 包管理器(包括在他之前的所有版本) 都大部分采用 Python 編寫(xiě),發(fā)行許可為GPL v2.
二、安裝 DNF
DNF 并未默認(rèn)安裝在 RHEL 或 CentOS 7 系統(tǒng)中,但是 CentOS 8、Fedora 22 等已經(jīng)默認(rèn)使用 DNF。
三、DNF 命令
(一)主要命令
1. 安裝、升級(jí)和刪除軟件包
| install | 向系統(tǒng)中安裝一個(gè)或多個(gè)軟件包 |
| reinstall | 重新安裝軟件包 |
| update | 更新指定的軟件包,若沒(méi)有指定軟件包,則會(huì)更新系統(tǒng)所有的軟件包 |
| updateinfo | 顯示軟件包的參考建議 |
| upgrade | 升級(jí)系統(tǒng)中的一個(gè)或多個(gè)軟件包 |
| remove | 從系統(tǒng)中移除一個(gè)或多個(gè)軟件包 |
| autoremove | 刪除所有原先因?yàn)橐蕾?lài)關(guān)系安裝的現(xiàn)在不需要的軟件包 |
| clean all | 刪除緩存的無(wú)用軟件包及其相關(guān)數(shù)據(jù) |
| groupinstall | 安裝一個(gè)軟件包組 |
| groupupdate | 升級(jí)一個(gè)軟件包組中的軟件包 |
| groupremove | 刪除一個(gè)軟件包組 |
| distro-sync | 更新軟件包到最新的穩(wěn)定發(fā)行版 |
2. 查詢(xún)和檢查軟件包
| repolist | 顯示系統(tǒng)中可用的 DNF 軟件庫(kù)(軟件倉(cāng)庫(kù)) |
| list | 列出用戶(hù)系統(tǒng)上的所有來(lái)自軟件庫(kù)的可用軟件包和所有已經(jīng)安裝在系統(tǒng)上的軟件包 |
| search | 在軟件包詳細(xì)信息中搜索指定字符串,即搜索與指定字符串有關(guān)的軟件包 |
| repoquery | Searches available DNF repositories for selected packages and displays the requested information about them. It is an equivalent of rpm -q for remote repositories. 搜索匹配關(guān)鍵字的軟件包 |
| provides | 查找提供指定內(nèi)容的軟件包 |
| info | 顯示關(guān)于軟件包或軟件包組的詳細(xì)信息 |
| check-update | 檢查是否有軟件包升級(jí) |
| grouplist | 查看所有的軟件包組 |
| check | 在包數(shù)據(jù)庫(kù)中尋找問(wèn)題 |
| deplist | 列出軟件包的依賴(lài)關(guān)系和提供這些軟件包的源 |
3. 執(zhí)行其它功能
| downgrade | 回滾軟件包的版本,降級(jí)到舊版本 |
| makecache | 創(chuàng)建元數(shù)據(jù)緩存 |
| mark | 在已安裝的軟件包中標(biāo)記或者取消標(biāo)記由用戶(hù)安裝的軟件包。 |
| help | 查看使用幫助,若后面跟著目錄,則查看該命令的使用幫助,例如:dnf help install |
(二)插件命令
| builddep | Install build dependencies for package or spec file |
| changelog | 查看軟件包的改變?nèi)罩緮?shù)據(jù) |
| config-manager | manage dnf configuration options and repositories |
| debug-dump | 轉(zhuǎn)儲(chǔ)已安裝的 RPM 軟件包信息至文件 |
| debug-restore | 恢復(fù)調(diào)試用轉(zhuǎn)儲(chǔ)文件中的軟件包記錄 |
| debuginfo-install | 安裝調(diào)試信息軟件包 |
| download | 下載軟件包至當(dāng)前目錄 |
| needs-restarting | 判斷所升級(jí)的二進(jìn)制文件是否需要重啟 |
| playground | 與 Playground 倉(cāng)庫(kù)交互。 |
| repoclosure | 顯示倉(cāng)庫(kù)中未被解決的依賴(lài)關(guān)系的列表 |
| repodiff | 列出兩組倉(cāng)庫(kù)中的不同 |
| repograph | 以點(diǎn)線(xiàn)圖方式輸出完整的軟件包依賴(lài)關(guān)系圖 |
| repomanage | 管理 RPM 軟件包目錄 |
| reposync | 下載遠(yuǎn)程倉(cāng)庫(kù)中的全部軟件包 |
四、選項(xiàng)參數(shù)
| -c [config file], --config [config file] | 配置文件位置 |
| -q, --quiet | 靜默執(zhí)行 |
| -v, --verbose | 詳盡執(zhí)行 |
| --version | 顯示 DNF 版本信息并退出 |
| --installroot [path] | 設(shè)置目標(biāo)根目錄 |
| --nodocs | 不要安裝文檔 |
| --noplugins | 禁用所有插件 |
| --enableplugin [plugin] | 啟用指定名稱(chēng)的插件 |
| --disableplugin [plugin] | 禁用指定名稱(chēng)的插件 |
| --releasever RELEASEVER | 覆蓋在配置文件和倉(cāng)庫(kù)文件中 $releasever 的值 |
| --setopt SETOPTS | 設(shè)置任意配置和倉(cāng)庫(kù)選項(xiàng) |
| --skip-broken | 通過(guò)跳過(guò)軟件包來(lái)解決依賴(lài)問(wèn)題 |
| --allowerasing | 允許解決依賴(lài)關(guān)系時(shí)刪除已安裝軟件包 |
| -b, --best | 在事務(wù)中嘗試最佳軟件包版本 |
| -C, --cacheonly | 完全從系統(tǒng)緩存運(yùn)行,不升級(jí)緩存 |
| -R [minutes], --randomwait [minutes] | 最大命令等待時(shí)間 |
| -d [debug level], --debuglevel [debug level] | 調(diào)試輸出級(jí)別 |
| --debugsolver | 轉(zhuǎn)儲(chǔ)詳細(xì)解決結(jié)果至文件 |
| --showduplicates | 在 list/search 命令下,顯示倉(cāng)庫(kù)里重復(fù)的條目 |
| -e ERRORLEVEL, --errorlevel ERRORLEVEL | 錯(cuò)誤輸出級(jí)別 |
| --obsoletes | 對(duì) upgrade 啟用 dnf 的過(guò)期處理邏輯,或?qū)?info、list 和 repoquery顯示軟件包過(guò)期的功能 |
| --rpmverbosity [debug level name] | rpm調(diào)試輸出等級(jí) |
| -y, --assumeyes | 全部問(wèn)題自動(dòng)應(yīng)答為是 |
| --assumeno | 全部問(wèn)題自動(dòng)應(yīng)答為否 |
| --enablerepo [repo] | Enable additional repositories. List option. Supports globs, can be specified multiple times. |
| --disablerepo [repo] | Disable repositories. List option. Supports globs, can be specified multiple times. |
| -x [package], --exclude [package], --excludepkgs [package] | 用全名或通配符排除軟件包 |
| --disableexcludes [repo], --disableexcludepkgs [repo] | 禁用 excludepkgs |
| --repofrompath [repo,path] | 指向附加倉(cāng)庫(kù)的標(biāo)記和路徑,可以指定多次 |
| --noautoremove | 禁用刪除不再被使用的依賴(lài)軟件包 |
| --nogpgcheck | disable gpg signature checking (if RPM policy allows) |
| --color COLOR | 配置是否使用顏色 |
| --refresh | 在運(yùn)行命令之前將元數(shù)據(jù)標(biāo)記為過(guò)期 |
| --destdir DESTDIR, --downloaddir DESTDIR | 設(shè)置軟件包要復(fù)制到的目錄 |
| --downloadonly | 僅下載軟件包 |
| --comment COMMENT | 為事務(wù)添加一個(gè)注釋 |
| --bugfix | 在更新中包括與 bug 修復(fù)有關(guān)的軟件包 |
| --enhancement | 在更新中包括與功能增強(qiáng)有關(guān)的軟件包。 |
| --newpackage | 在更新中包括與新軟件包有關(guān)的軟件包 |
| --security | 在更新中包括與安全有關(guān)的軟件包 |
| --advisory ADVISORY, --advisories ADVISORY | 在更新中包括修復(fù)指定公告所必須的軟件包 |
| --bzs BUGZILLA | 在更新中包括修復(fù)給定 BZ 所必須的軟件包 |
| --cves CVES | 在更新中包括修復(fù)給定 CVE 所必須的軟件包 |
| --sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low} | 在更新中包括匹配給定安全等級(jí)的安全相關(guān)的軟件包 |
| --forcearch ARCH | 強(qiáng)制使用一個(gè)架構(gòu)安裝包 |
| -h, --help,-?, --help | 顯示命令幫助,如果后面跟著命令名稱(chēng),則顯示該命令的幫助信息,例如:dnf --help install |
五、命令示例
(一)安裝、升級(jí)和刪除軟件包
安裝軟件包
使用該命令,系統(tǒng)將會(huì)自動(dòng)安裝對(duì)應(yīng)的軟件及其所需的所有依賴(lài)
[root@htlwk0001host ~]# dnf install nano安裝一個(gè)軟件包組
該命令用于安裝一個(gè)軟件包組。本例中,我們將用命令安裝”Educational Software”這個(gè)軟件包組。
dnf groupinstall ‘Educational Software’升級(jí)一個(gè)軟件包組中的軟件包
該命令用于升級(jí)一個(gè)軟件包組中的軟件包。本例中,我們將用命令升級(jí)”Educational Software”這個(gè)軟件包組中的軟件。
dnf groupupdate ‘Educational Software’刪除一個(gè)軟件包組
該命令用于刪除一個(gè)軟件包組。本例中,我們將用命令刪除”Educational Software”這個(gè)軟件包組。
dnf groupremove ‘Educational Software’從特定的軟件包庫(kù)安裝特定的軟件
該命令用于從特定的軟件包庫(kù)安裝特定的軟件。本例中我們將使用命令從軟件包庫(kù) epel 中安裝 phpmyadmin 軟件包。
dnf --enablerepo=epel install phpmyadmin更新軟件包到最新的穩(wěn)定發(fā)行版
該命令可以通過(guò)所有可用的軟件源將已經(jīng)安裝的所有軟件包更新到最新的穩(wěn)定發(fā)行版
dnf distro-sync升級(jí)軟件包
該命令用于升級(jí)指定的軟件包。
[root@htlwk0001host ~]# dnf update systemd重新安裝特定軟件包
dnf reinstall nano升級(jí)所有系統(tǒng)軟件包
該命令用于升級(jí)系統(tǒng)中所有有可用升級(jí)的軟件包。
[root@htlwk0001host ~]# dnf update [root@htlwk0001host ~]# dnf upgrade刪除軟件包
刪除系統(tǒng)中指定的軟件包。
[root@htlwk0001host ~]# dnf remove nano [root@htlwk0001host ~]# dnf erase nano刪除無(wú)用孤立的軟件包
當(dāng)沒(méi)有軟件再依賴(lài)它們時(shí),某一些用于解決特定軟件依賴(lài)的軟件包將會(huì)變得沒(méi)有存在的意義,該命令就是用來(lái)自動(dòng)移除這些沒(méi)用的孤立軟件包。
[root@htlwk0001host ~]# dnf autoremove刪除緩存的無(wú)用軟件包
在使用 DNF 的過(guò)程中,會(huì)因?yàn)楦鞣N原因在系統(tǒng)中殘留各種過(guò)時(shí)的文件和未完成的編譯工程。我們可以使用該命令來(lái)刪除這些沒(méi)用的垃圾文件。
[root@htlwk0001host ~]# dnf clean all 42 文件已刪除(二)查詢(xún)和檢驗(yàn)軟件包
查看系統(tǒng)中可用的 DNF 軟件庫(kù)
[root@htlwk0001host ~]# dnf repolist 倉(cāng)庫(kù)標(biāo)識(shí) 倉(cāng)庫(kù)名稱(chēng) AppStream CentOS-8 - AppStream BaseOS CentOS-8 - Base epel Extra Packages for Enterprise Linux 8 - x86_64 extras CentOS-8 - Extras mysql-connectors-community MySQL Connectors Community mysql-tools-community MySQL Tools Community mysql57-community MySQL 5.7 Community Server查看所有的軟件包組
dnf grouplist查看系統(tǒng)中可用和不可用的所有的 DNF 軟件庫(kù)
root@htlwk0001host ~]# dnf repolist all 倉(cāng)庫(kù)標(biāo)識(shí) 倉(cāng)庫(kù)名稱(chēng) 狀態(tài) AppStream CentOS-8 - AppStream 啟用 AppStream-source CentOS-8 - AppStream Sources 禁用 BaseOS CentOS-8 - Base 啟用 BaseOS-source CentOS-8 - BaseOS Sources 禁用 PowerTools CentOS-8 - PowerTools 禁用 base-debuginfo CentOS-8 - Debuginfo 禁用 c8-media-AppStream CentOS-AppStream-8 - Media 禁用 c8-media-BaseOS CentOS-BaseOS-8 - Media 禁用 centosplus CentOS-8 - Plus 禁用 centosplus-source CentOS-8 - Plus Sources 禁用 cr CentOS-8 - cr 禁用 epel Extra Packages for Enterprise Linux 8 - x86_64 啟用 extras CentOS-8 - Extras 啟用 extras-source CentOS-8 - Extras Sources 禁用 fasttrack CentOS-8 - fasttrack 禁用 mysql-cluster-7.5-community MySQL Cluster 7.5 Community 禁用 mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - Source 禁用 mysql-connectors-community MySQL Connectors Community 啟用 mysql-connectors-community-source MySQL Connectors Community - Source 禁用 mysql-tools-community MySQL Tools Community 啟用 mysql-tools-community-source MySQL Tools Community - Source 禁用 mysql-tools-preview MySQL Tools Preview 禁用 mysql-tools-preview-source MySQL Tools Preview - Source 禁用 mysql55-community MySQL 5.5 Community Server 禁用 mysql55-community-source MySQL 5.5 Community Server - Source 禁用 mysql56-community MySQL 5.6 Community Server 禁用 mysql56-community-source MySQL 5.6 Community Server - Source 禁用 mysql57-community MySQL 5.7 Community Server 啟用 mysql57-community-source MySQL 5.7 Community Server - Source 禁用 mysql80-community MySQL 8.0 Community Server 禁用 mysql80-community-source MySQL 8.0 Community Server - Source 禁用列出所有 RPM 包
該命令用于列出用戶(hù)系統(tǒng)上的所有來(lái)自軟件庫(kù)的可用軟件包和所有已經(jīng)安裝在系統(tǒng)上的軟件包
[root@htlwk0001host ~]# dnf list列出所有安裝了的 RPM 包
[root@htlwk0001host ~]# dnf list installed列出所有可供安裝的 RPM 包
該命令用于列出來(lái)自所有可用軟件庫(kù)的可供安裝的軟件包。
[root@htlwk0001host ~]# dnf list available搜索軟件庫(kù)中的 RPM 包
當(dāng)你不知道你想要安裝的軟件的準(zhǔn)確名稱(chēng)時(shí),你可以用該命令來(lái)搜索軟件包。你需要在”search”參數(shù)后面鍵入軟件的部分名稱(chēng)來(lái)搜索。
[root@htlwk0001host ~]# dnf search fastest 上次元數(shù)據(jù)過(guò)期檢查:2:07:02 前,執(zhí)行于 2021年07月20日 星期二 14時(shí)43分02秒。 =========================================================================================== 概況 匹配:fastest =========================================================================================== perl-Sort-Key.x86_64 : Fastest way to sort anything in Perl查找某一文件的提供者
當(dāng)你想要查看是哪個(gè)軟件包提供了系統(tǒng)中的某一文件時(shí),你可以使用這條命令。在本例中,我們將查找 /bin/bash 這個(gè)文件的提供者:
[root@htlwk0001host ~]# dnf provides /bin/bash 上次元數(shù)據(jù)過(guò)期檢查:2:11:14 前,執(zhí)行于 2021年07月20日 星期二 14時(shí)43分02秒。 bash-4.4.19-10.el8.x86_64 : The GNU Bourne Again shell 倉(cāng)庫(kù) :@System 匹配來(lái)源: 提供 : /bin/bashbash-4.4.19-14.el8.x86_64 : The GNU Bourne Again shell 倉(cāng)庫(kù) :BaseOS 匹配來(lái)源: 提供 : /bin/bashbash-4.4.20-1.el8_4.x86_64 : The GNU Bourne Again shell 倉(cāng)庫(kù) :BaseOS 匹配來(lái)源: 提供 : /bin/bash查看軟件包詳情
當(dāng)你想在安裝某一個(gè)軟件包之前查看它的詳細(xì)信息時(shí),這條命令可以幫到你。
[root@htlwk0001host ~]# dnf info nano檢查系統(tǒng)軟件包的更新
該命令用于檢查系統(tǒng)中所有軟件包的更新
[root@htlwk0001host ~]# dnf check-update(三)執(zhí)行其它功能
查看安裝在您系統(tǒng)中的 DNF 包管理器的版本
[root@htlwk0001host ~]# dnf --version 4.2.17已安裝: dnf-0:4.2.17-6.el8.noarch 在 2020年07月17日 星期五 01時(shí)54分04秒構(gòu)建 :CentOS Buildsys <bugs@centos.org> 在 2020年04月24日 星期五 19時(shí)58分19秒已安裝: rpm-0:4.14.2-37.el8.x86_64 在 2020年07月17日 星期五 01時(shí)53分33秒構(gòu)建 :CentOS Buildsys <bugs@centos.org> 在 2020年04月24日 星期五 03時(shí)17分18秒獲取有關(guān)某條命令的使用幫助
該命令用于獲取有關(guān)某條命令的使用幫助(包括可用于該命令的參數(shù)和該命令的用途說(shuō)明),本例中我們將使用命令獲取有關(guān)命令”clean”的使用幫助。
dnf help clean查看所有的 DNF 命令及其用途
dnf help查看 DNF 命令的執(zhí)行歷史
您可以使用該命令來(lái)查看您系統(tǒng)上 DNF 命令的執(zhí)行歷史。通過(guò)這個(gè)手段您可以知道在自您使用 DNF 開(kāi)始有什么軟件被安裝和卸載。
dnf history回滾某個(gè)特定軟件的版本
該命令用于降低特定軟件包的版本(如果可能的話(huà)),本例中,我們將使用命令降低”acpid”這個(gè)軟件包的版本。
dnf downgrade acpid 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Linux命令之 DNF -- 新一代的 RPM 软件包管理器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 鲈鱼蒸多久最佳时间 鲈鱼需要蒸多久
- 下一篇: 雌孔雀会开屏吗 雌孔雀会不会开屏