dnf為新一代的RPM軟件包管理器省艳。
補(bǔ)充說(shuō)明
DNF 是新一代的rpm軟件包管理器亲茅。他首先出現(xiàn)在 Fedora 18 這個(gè)發(fā)行版中回铛。而最近金矛,它取代了yum,正式成為 Fedora 22 的包管理器勺届。
DNF包管理器克服了YUM包管理器的一些瓶頸驶俊,提升了包括用戶體驗(yàn),內(nèi)存占用免姿,依賴分析饼酿,運(yùn)行速度等多方面的內(nèi)容。DNF使用 RPM, libsolv 和 hawkey 庫(kù)進(jìn)行包管理操作胚膊。盡管它沒有預(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 編寫喻犁,發(fā)行許可為GPL v2.
安裝 DNF 包管理器
DNF 并未默認(rèn)安裝在 RHEL 或 CentOS 7系統(tǒng)中槽片,但是 Fedora 22 已經(jīng)默認(rèn)使用 DNF 。
- 為了安裝 DNF 肢础,您必須先安裝并啟用yum源依賴(推薦使用epel-release)还栓。
在系統(tǒng)中執(zhí)行以下命令:
# yum install epel-release
- 使用 epel-release 依賴中的 YUM 命令來(lái)安裝 DNF 包。在系統(tǒng)中執(zhí)行以下命令:
# yum install dnf
然后传轰, DNF 包管理器就被成功的安裝到你的系統(tǒng)中了剩盒。接下來(lái),是時(shí)候開始我們的教程了慨蛙!在這個(gè)教程中辽聊,您將會(huì)學(xué)到27個(gè)用于 DNF 包管理器的命令。使用這些命令期贫,你可以方便有效的管理您系統(tǒng)中的 RPM 軟件包「遥現(xiàn)在,讓我們開始學(xué)習(xí) DNF 包管理器的27條常用命令吧唯灵!
-
查看 DNF 包管理器版本
用處:該命令用于顯示系統(tǒng)中可用的 DNF 軟件庫(kù)
# dnf --version
-
查看系統(tǒng)中可用的 DNF 軟件庫(kù)
用處:該命令用于顯示系統(tǒng)中可用的 DNF 軟件庫(kù)
# dnf repolist
-
查看系統(tǒng)中可用和不可用的所有的 DNF 軟件庫(kù)
用處:該命令用于顯示系統(tǒng)中可用和不可用的所有的 DNF 軟件庫(kù)
# dnf repolist all
-
列出所有 RPM 包
用處:該命令用于列出用戶系統(tǒng)上的所有來(lái)自軟件庫(kù)的可用軟件包和所有已經(jīng)安裝在系統(tǒng)上的軟件包
# dnf list
-
列出所有安裝了的 RPM 包
用處:該命令用于列出所有安裝了的 RPM 包
# dnf list installed|more
-
列出所有可供安裝的 RPM 包
用處:該命令用于列出來(lái)自所有可用軟件庫(kù)的可供安裝的軟件包
# dnf list available|more
-
搜索軟件庫(kù)中的 RPM 包
用處:當(dāng)你不知道你想要安裝的軟件的準(zhǔn)確名稱時(shí)贾铝,你可以用該命令來(lái)搜索軟件包。你需要在”search”參數(shù)后面鍵入軟件的部分名稱來(lái)搜索埠帕。(在本例中我們使用”nano”)
# dnf search nano
-
查找某一文件的提供者
用處:當(dāng)你想要查看是哪個(gè)軟件包提供了系統(tǒng)中的某一文件時(shí)垢揩,你可以使用這條命令。(在本例中敛瓷,我們將查找”/bin/bash”這個(gè)文件的提供者)
# dnf provides /bin/bash
-
查看軟件包詳情
用處:當(dāng)你想在安裝某一個(gè)軟件包之前查看它的詳細(xì)信息時(shí)叁巨,這條命令可以幫到你。(在本例中呐籽,我們將查看”nano”這一軟件包的詳細(xì)信息)
# dnf info nano
-
安裝軟件包
用處:使用該命令锋勺,系統(tǒng)將會(huì)自動(dòng)安裝對(duì)應(yīng)的軟件及其所需的所有依賴(在本例中蚀瘸,我們將用該命令安裝nano軟件)
# dnf install nano
-
升級(jí)軟件包
用處:該命令用于升級(jí)制定軟件包(在本例中,我們將用命令升級(jí)”systemd”這一軟件包)
# dnf update systemd
-
檢查系統(tǒng)軟件包的更新
用處:該命令用于檢查系統(tǒng)中所有軟件包的更新
# dnf check-update
-
升級(jí)所有系統(tǒng)軟件包
用處:該命令用于升級(jí)系統(tǒng)中所有有可用升級(jí)的軟件包
# dnf update
-
刪除軟件包
用處:刪除系統(tǒng)中指定的軟件包(在本例中我們將使用命令刪除”nano”這一軟件包)
# dnf remove nano
-
刪除無(wú)用孤立的軟件包
用處:當(dāng)沒有軟件再依賴它們時(shí)庶橱,某一些用于解決特定軟件依賴的軟件包將會(huì)變得沒有存在的意義贮勃,該命令就是用來(lái)自動(dòng)移除這些沒用的孤立軟件包。
# dnf autoremove
-
刪除緩存的無(wú)用軟件包
用處:在使用 DNF 的過(guò)程中苏章,會(huì)因?yàn)楦鞣N原因在系統(tǒng)中殘留各種過(guò)時(shí)的文件和未完成的編譯工程寂嘉。我們可以使用該命令來(lái)刪除這些沒用的垃圾文件。
# dnf clean all
-
獲取有關(guān)某條命令的使用幫助
用處:該命令用于獲取有關(guān)某條命令的使用幫助(包括可用于該命令的參數(shù)和該命令的用途說(shuō)明)(本例中我們將使用命令獲取有關(guān)命令”clean”的使用幫助)
# dnf help dnf
-
查看所有的 DNF 命令及其用途
用處:該命令用于列出所有的 DNF 命令及其用途
# dnf help
-
查看 DNF 命令的執(zhí)行歷史
用處:您可以使用該命令來(lái)查看您系統(tǒng)上 DNF 命令的執(zhí)行歷史枫绅。通過(guò)這個(gè)手段您可以知道在自您使用 DNF 開始有什么軟件被安裝和卸載泉孩。
# dnf history
Repository epel is listed more than once in the configuration
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
3 | remove nano | 2021-04-23 17:09 | Removed | 1 <
2 | update | 2021-04-23 17:00 | I, U | 60 >#
1 | update systemd | 2021-04-23 16:57 | Upgrade | 5
-
查看所有的軟件包組
用處:該命令用于列出所有的軟件包組
# dnf grouplist
-
安裝一個(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ā)行版
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)
# dnf distro-sync --allowerasing --skip-broken
-
重新安裝特定軟件包
用處:該命令用于重新安裝特定軟件包(本例中,我們將使用命令重新安裝”dnf”這個(gè)軟件包)
# dnf reinstall dnf
-
回滾某個(gè)特定軟件的版本
用處:該命令用于降低特定軟件包的版本(如果可能的話)(本例中县耽,我們將使用命令降低”acpid”這個(gè)軟件包的版本)
# dnf downgrade dnf
總結(jié)
DNF 包管理器作為 YUM 包管理器的升級(jí)替代品句喷,它能自動(dòng)完成更多的操作。但在我看來(lái)酬诀,正因如此脏嚷,所以 DNF 包管理器不會(huì)太受那些經(jīng)驗(yàn)老道的 Linux 系統(tǒng)管理者的歡迎。舉例如下:瞒御。
- 在 DNF 中沒有判斷哪個(gè)包提供了指定依賴的 resolvedep 命令。
- 在 DNF 中沒有用來(lái)列出某個(gè)軟件依賴包的 deplist 命令神郊。
- 當(dāng)你在 DNF 中排除了某個(gè)軟件庫(kù)肴裙,那么該操作將會(huì)影響到你之后所有的操作,不像在 YUM 下那樣涌乳,你的排除操作只會(huì)在升級(jí)和安裝軟件時(shí)才起作用蜻懦。