dnf

新一代的RPM軟件包管理器

補充說明

DNF 是新一代的rpm軟件包管理器。他首先出現在 Fedora 18 這個發行版中。而最近,它取代了yum,正式成爲 Fedora 22 的包管理器。

DNF包管理器克服了YUM包管理器的一些瓶頸,提升了包括用戶體驗,內存佔用,依賴分析,運行速度等多方面的內容。DNF使用 RPM, libsolv 和 hawkey 庫進行包管理操作。儘管它沒有預裝在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同時使用 DNF 。

DNF 的最新穩定發行版版本號是 1.0,發行日期是2015年5月11日。 這一版本的 DNF 包管理器(包括在他之前的所有版本) 都大部分採用 Python 編寫,發行許可爲GPL v2.

安裝 DNF 包管理器

DNF 並未默認安裝在 RHEL 或 CentOS 7系統中,但是 Fedora 22 已經默認使用 DNF .

1、爲了安裝 DNF ,您必須先安裝並啓用 epel-release 依賴。

在系統中執行以下命令:

1yum install epel-release

或者

1yum install epel-release -y

其實這裏並沒有強制使用”-y”的理由,相反的,在不使用”-y”的情況下,用戶可以在安裝過程中查看到底有哪些東西被安裝進了系統。但對於沒有這個需求的用戶,您可以在 YUM 中使用”-y”參數來自動安裝所有東西。

2、使用 epel-release 依賴中的 YUM 命令來安裝 DNF 包。在系統中執行以下命令:

1yum install dnf

然後, DNF 包管理器就被成功的安裝到你的系統中了。接下來,是時候開始我們的教程了!在這個教程中,您將會學到27個用於 DNF 包管理器的命令。使用這些命令,你可以方便有效的管理您系統中的 RPM 軟件包。現在,讓我們開始學習 DNF 包管理器的27條常用命令吧!

查看 DNF 包管理器版本

用處:該命令用於查看安裝在您系統中的 DNF 包管理器的版本

1dnf –version

!Check-DNF-Version

查看系統中可用的 DNF 軟件庫

用處:該命令用於顯示系統中可用的 DNF 軟件庫

1dnf repolist

查看系統中可用和不可用的所有的 DNF 軟件庫

用處:該命令用於顯示系統中可用和不可用的所有的 DNF 軟件庫

1dnf repolist all

列出所有 RPM 包

用處:該命令用於列出用戶系統上的所有來自軟件庫的可用軟件包和所有已經安裝在系統上的軟件包

1dnf list

列出所有安裝了的 RPM 包

用處:該命令用於列出所有安裝了的 RPM 包

1dnf list installed

列出所有可供安裝的 RPM 包

用處:該命令用於列出來自所有可用軟件庫的可供安裝的軟件包

1dnf list available

搜索軟件庫中的 RPM 包

用處:當你不知道你想要安裝的軟件的準確名稱時,你可以用該命令來搜索軟件包。你需要在”search”參數後面鍵入軟件的部分名稱來搜索。(在本例中我們使用”nano”)

1dnf search nano

查找某一文件的提供者

用處:當你想要查看是哪個軟件包提供了系統中的某一文件時,你可以使用這條命令。(在本例中,我們將查找”/bin/bash”這個文件的提供者)

1dnf provides /bin/bash

查看軟件包詳情

用處:當你想在安裝某一個軟件包之前查看它的詳細信息時,這條命令可以幫到你。(在本例中,我們將查看”nano”這一軟件包的詳細信息)

1dnf info nano

安裝軟件包

用處:使用該命令,系統將會自動安裝對應的軟件及其所需的所有依賴(在本例中,我們將用該命令安裝nano軟件)

1dnf install nano

升級軟件包

用處:該命令用於升級制定軟件包(在本例中,我們將用命令升級”systemd”這一軟件包)

1dnf update systemd

檢查系統軟件包的更新

用處:該命令用於檢查系統中所有軟件包的更新

1dnf check-update

升級所有系統軟件包

用處:該命令用於升級系統中所有有可用升級的軟件包

1dnf update 或 dnf upgrade

刪除軟件包

用處:刪除系統中指定的軟件包(在本例中我們將使用命令刪除”nano”這一軟件包)

1dnf remove nano 或 dnf erase nano

刪除無用孤立的軟件包

用處:當沒有軟件再依賴它們時,某一些用於解決特定軟件依賴的軟件包將會變得沒有存在的意義,該命令就是用來自動移除這些沒用的孤立軟件包。

1dnf autoremove

刪除緩存的無用軟件包

用處:在使用 DNF 的過程中,會因爲各種原因在系統中殘留各種過時的文件和未完成的編譯工程。我們可以使用該命令來刪除這些沒用的垃圾文件。

1dnf clean all

獲取有關某條命令的使用幫助

用處:該命令用於獲取有關某條命令的使用幫助(包括可用於該命令的參數和該命令的用途說明)(本例中我們將使用命令獲取有關命令”clean”的使用幫助)

1dnf help clean

查看所有的 DNF 命令及其用途

用處:該命令用於列出所有的 DNF 命令及其用途

1dnf help

查看 DNF 命令的執行歷史

用處:您可以使用該命令來查看您系統上 DNF 命令的執行歷史。通過這個手段您可以知道在自您使用 DNF 開始有什麼軟件被安裝和卸載。

1dnf history

查看所有的軟件包組

用處:該命令用於列出所有的軟件包組

1dnf grouplist

安裝一個軟件包組

用處:該命令用於安裝一個軟件包組(本例中,我們將用命令安裝”Educational Software”這個軟件包組)

1dnf groupinstall ‘Educational Software’

升級一個軟件包組中的軟件包

用處:該命令用於升級一個軟件包組中的軟件包(本例中,我們將用命令升級”Educational Software”這個軟件包組中的軟件)

1dnf groupupdate ‘Educational Software’

刪除一個軟件包組

用處:該命令用於刪除一個軟件包組(本例中,我們將用命令刪除”Educational Software”這個軟件包組)

1dnf groupremove ‘Educational Software’

從特定的軟件包庫安裝特定的軟件

用處:該命令用於從特定的軟件包庫安裝特定的軟件(本例中我們將使用命令從軟件包庫 epel 中安裝 phpmyadmin 軟件包)

1dnf –enablerepo=epel install phpmyadmin

更新軟件包到最新的穩定發行版

用處:該命令可以通過所有可用的軟件源將已經安裝的所有軟件包更新到最新的穩定發行版

1dnf distro-sync

重新安裝特定軟件包

用處:該命令用於重新安裝特定軟件包(本例中,我們將使用命令重新安裝”nano”這個軟件包)

1dnf reinstall nano

回滾某個特定軟件的版本

用處:該命令用於降低特定軟件包的版本(如果可能的話)(本例中,我們將使用命令降低”acpid”這個軟件包的版本)

1dnf downgrade acpid

樣例輸出:

1Using metadata from Wed May 20 12:44:59 2015
2No match for available package: acpid-2.0.19-5.el7.x86_64
3Error: Nothing to do.

原作者注:在執行這條命令的時候, DNF 並沒有按照我期望的那樣降級指定的軟件(“acpid”)。該問題已經上報。

總結

DNF 包管理器作爲 YUM 包管理器的升級替代品,它能自動完成更多的操作。但在我看來,正因如此,所以 DNF 包管理器不會太受那些經驗老道的 Linux 系統管理者的歡迎。舉例如下:

  1. 在 DNF 中沒有 –skip-broken 命令,並且沒有替代命令供選擇。
  2. 在 DNF 中沒有判斷哪個包提供了指定依賴的 resolvedep 命令。
  3. 在 DNF 中沒有用來列出某個軟件依賴包的 deplist 命令。
  4. 當你在 DNF 中排除了某個軟件庫,那麼該操作將會影響到你之後所有的操作,不像在 YUM 下那樣,你的排除操作只會咋升級和安裝軟件時才起作用。

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: