教程

DNF的命令使用教學

DNF新一代的RPM軟體包管理器。他首先出現在 Fedora 18 這個發行版中。而最近,他取代了YUM,正式成為 Fedora 22 的包管理器。

DNF包管理器克服了YUM包管理器的一些瓶頸,提升了包括用戶體驗,內存佔用,依賴分析,運行速度等多方面的內容。

DNF使用 RPM, libsolv 和 hawkey 庫進行包管理操作。儘管它沒有預裝在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同時使用 DNF 。

你可以在這裡獲得關於 DNF 的更多知識:《 DNF 代替 YUM ,你所不知道的緣由》

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

- 安裝 DNF 包管理器

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

1.為了安裝 DNF ,您必須先安裝並啟用 epel-release 依賴。

在系統中執行以下命令:

# yum install epel-release

或者

# yum install epel-release -y

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

2.使用 epel-release 依賴中的 YUM 命令來安裝 DNF 包。

在系統中執行以下命令:# yum install dnf

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

- 查看 DNF 包管理器版本

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

命令:# dnf --version

Check-DNF-Version

- 查看系統中可用的 DNF 軟體庫

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

命令:# dnf repolist

Check-All-Enabled-Repositories

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

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

命令:# dnf repolist all

3

- 列出所有 RPM 包

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

命令:# dnf list

4

- 列出所有安裝了的 RPM 包

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

命令:# dnf list installed

5

- 列出所有可供安裝的 RPM 包

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

命令:# dnf list available

6

- 搜索軟體庫中的 RPM 包

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

命令:# dnf search nano

7

- 查找某一文件的提供者

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

命令:# dnf provides /bin/bash

8

- 查看軟體包詳情

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

命令:# dnf info nano

9

- 安裝軟體包

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

命令:# dnf install nano

10

- 升級軟體包

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

命令:# dnf update systemd

11

- 檢查系統軟體包的更新

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

命令:# dnf check-update

12

- 升級所有系統軟體包

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

命令:# dnf update 或 # dnf upgrade

13

- 刪除軟體包

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

命令:# dnf remove nano 或 # dnf erase nano

14

- 刪除無用孤立的軟體包

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

命令:# dnf autoremove

15

- 刪除緩存的無用軟體包

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

命令:# dnf clean all

16

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

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

命令:# dnf help clean

17

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

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

命令:# dnf help

18

- 查看 DNF 命令的執行歷史

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

命令:# dnf history

19

- 查看所有的軟體包組

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

命令:# dnf grouplist

20

- 安裝一個軟體包組

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

命令:# dnf groupinstall 'Educational Software'

21

- 升級一個軟體包組中的軟體包

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

命令:# dnf groupupdate 'Educational Software'

22

- 刪除一個軟體包組

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

命令:# dnf groupremove 'Educational Software'

23

- 從特定的軟體包庫安裝特定的軟體

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

命令:# dnf --enablerepo=epel install phpmyadmin

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

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

命令:# dnf distro-sync

- 重新安裝特定軟體包

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

命令:# dnf reinstall nano

26

- 回滾某個特定軟體的版本

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

命令:# dnf downgrade acpid

樣例輸出:

Using metadata from Wed May 20 12:44:59 2015

No match for available package: acpid-2.0.19-5.el7.x86_64

Error: Nothing to do.

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

總結

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

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

我相信幾乎所有的 Linux 用戶都會很高興看到 Linux 生態圈不斷地發展壯大。先是 systemd 代替了源於 System V 的 init ,而如今, DNF 包管理器已經在 Fedora 22 上替代了 YUM 包管理器,並且很快它也將登陸 RHEL 和 CentOS 。

此時此刻的你將作何感想?難道這整一個 Linux 生態圈已經變得不重視它的用戶們,並且往與用戶期望完全相反的方向發展了么?現在,沒有任何問題的 System V 和 YUM 被迫淡出歷史舞台,這讓我不禁想起 IT 從業者的一句老話「為何要修復沒有損壞的東西?(Why fix, If not broken?)」。

現在,這篇文章結束了。我們真誠的期盼您能在下面的評論區留下您的寶貴意見和想法。如果你覺得這篇文章不錯的話,那就點個贊吧~

原文鏈接:http://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/

Linux Story 翻譯鏈接: http://www.linuxstory.org/dnf-commands-for-fedora-rpm-package-management

 

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0

You may also like

9 Comments

  1. […] YUM 和 DNF 的關聯之親近。用慣了 YUM 的朋友們一定不會抗拒換到 DNF,它們的 用法非常相似 ,而且 DNF […]

  2. 很不錯的一遍文章,我也深愛linux。

    1. 感謝認可,歡迎常來 Linux Story 逛逛~~

  3. 不錯,正在找這個呢,mark了!

  4. DNF….

  5. Pathon > Python

    1. 多謝指正,已經改過來啦:)

Leave a reply

您的郵箱地址不會被公開。 必填項已用 * 標註

此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

More in:教程

教程

在 Ubuntu 像22.04 LTS Linux 安裝 JUnit 5

JUnit 不僅簡單而且是一種有效的方法來編寫和執行 Java 應用程序的單元測試,因此它是開源類別中使用最廣泛的測試框架。 JUnit的最新版本5發布時帶來了許多改進。 所以,如果你使用Ubuntu […]
教程

同時運行多個 Linux 命令

了解如何在 Linux 中同時執行多個命令可以顯著提高您的效率和生產力。本文將指導您通過各種方式在單行中運行多個 Linux 命令,甚至如何自動化重複的任務。 理解基礎知識 在深入了解高級技巧之前,您 […]