ウェブサイト検索

Linux での RPM パッケージ管理のための 27 の「DNF」(Yum のフォーク) コマンド


DNF 別名 Dandified YUM は、RPM ベースのディストリビューション用の次世代パッケージ マネージャーです。これは Fedora 18 で初めて導入され、Fedora 22 の最近のリリースでは YUM ユーティリティに置き換わりました。

DNF は、YUM のボトルネック、つまりパフォーマンス、メモリ使用量、依存関係の解決、速度、その他多くの要素を改善することを目的としています。 DNF は、RPM、libsolv、および hawkey ライブラリを使用してパッケージ管理を行います。 CentOS および RHEL 7 にはインストールごとに提供されていませんが、yum、dnf を実行し、yum と一緒に使用できます。

DNF について詳しくは、こちらをご覧ください。

  1. Yum を DNF に置き換える理由

DNF の最新の安定リリースは 1.0 で (投稿の執筆時点)、2015 年 5 月 11 日にリリースされました。これ (および DNF の以前のすべてのバージョン) は、ほとんどが Python で書かれており、GPL v2 ライセンスの下でリリースされています。

DNFのインストール

DNF は、RHEL/CentOS 7 のデフォルト リポジトリでは利用できません。ただし、Fedora 22 は DNF が正式に実装された状態で出荷されます。

RHEL/CentOS システムに DNF をインストールするには、まずepel-release リポジトリをインストールして有効にする必要があります。

yum install epel-release
OR
yum install epel-release -y

ただし、システムに何がインストールされているかを確認することが推奨されているため、yum で「-y」を使用することは倫理的ではありません。ただし、これがあまり重要でない場合は、yum で「-y」を使用すると、ユーザーの介入なしにすべてを自動的にインストールできます。

次に、yum コマンドを使用してepel-release リポジトリから DNF パッケージをインストールします。

yum install dnf

dnf が正常にインストールされたら、RPM ベースのディストリビューションでパッケージを管理するのに役立つ例を示した dnf コマンド 27 の実践的な使用法を示します。簡単かつ効果的に。

1. DNF バージョンの確認

システムにインストールされている DNF のバージョンを確認してください。

dnf --version

2. 有効な DNF リポジトリの一覧表示

dnf コマンドでオプション「repolist」を使用すると、システムで有効になっているすべてのリポジトリが表示されます。

dnf repolist

3. 有効および無効な DNF リポジトリをすべてリストします。

オプション「すべて再ポリスト」を使用すると、システム内で有効または無効になっているすべてのリポジトリが出力されます。

dnf repolist all

4. DNF を使用して、使用可能なパッケージとインストールされているパッケージをすべてリストします。

コマンド「dnf list」は、すべてのリポジトリから利用可能なすべてのパッケージと、Linux システムにインストールされているパッケージを一覧表示します。

dnf list

5. DNF を使用して、インストールされているすべてのパッケージを一覧表示します。

一方、「dnf list」コマンドは、すべてのリポジトリから利用可能なすべてのパッケージまたはインストールされているパッケージを表示します。ただし、以下に示すように、「インストールされているリストを表示」オプションを使用して、インストールされているパッケージのみをリストするオプションがあります。

dnf list installed

6. DNF を使用して、利用可能なすべてのパッケージをリストします。

同様に、「利用可能なリスト」オプションでは、有効なすべてのリポジトリからインストールできるすべてのパッケージがリストされます。

dnf list available

7. DNF を使用してパッケージを検索する

インストールしたいパッケージがわからない場合は、dnf コマンドで '検索' オプションを使用して、単語または文字列に一致するパッケージを検索できます (nano など)。 )。

dnf search nano

8. ファイル/サブパッケージを提供するものを確認してください。

dnf オプション「provides」は、特定のファイル/サブパッケージを提供するパッケージの名前を検索します。たとえば、システム上で「/bin/bash」を提供するものを見つけたい場合は?

dnf provides /bin/bash

9. DNF を使用してパッケージの詳細を取得する

システムにパッケージをインストールする前にパッケージの情報を知りたいと仮定します。以下のように「情報」スイッチを使用してパッケージ (たとえば nano) に関する詳細情報を取得できます。

dnf info nano

10. DNF を使用してパッケージをインストールする

nano というパッケージをインストールするには、以下のコマンドを実行するだけで、パッケージ nano に必要な依存関係がすべて自動的に解決され、インストールされます。

dnf install nano

11. DNF を使用したパッケージの更新

特定のパッケージ (systemd など) のみを更新し、システム上のすべてのパッケージはそのままにしておくことができます。

dnf update systemd

12. DNF を使用してシステム アップデートを確認する

システムにインストールされているすべてのシステム パッケージの更新を確認するだけです。

dnf check-update

13. DNF を使用してすべてのシステム パッケージを更新する

次のコマンドを使用して、インストールされているすべてのパッケージを含むシステム全体を更新できます。

dnf update
OR
dnf upgrade

14. DNF を使用したパッケージの削除/消去

不要なパッケージ (nano など) を削除または消去するには、dnf コマンドで「remove」または「erase」スイッチを使用して削除します。 。

dnf remove nano
OR
dnf erase nano

15. DNF を使用して孤立したパッケージを削除する

依存関係を満たすためにインストールされたパッケージは、他のアプリケーションで使用されなければ役に立たない可能性があります。これらの孤立したパッケージを削除するには、以下のコマンドを実行します。

dnf autoremove

16. DNF を使用してキャッシュされたパッケージを削除する

多くの場合、dnf の実行中に、期限切れのヘッダーや未完了のトランザクションが発生してエラーが発生します。実行するだけで、キャッシュされたパッケージとリモート パッケージ情報を含むヘッダーをすべて削除できます。

dnf clean all

17. 特定の DNF コマンドに関するヘルプを表示する

以下のコマンドを実行するだけで、特定の dnf コマンド (clean など) のヘルプが表示される場合があります。

dnf help clean

18. すべての DNF コマンドとオプションをリストします。

使用可能なすべての dnf コマンドとオプションのヘルプを一覧表示するには、単に次のように入力します。

dnf help

19. DNF の履歴を表示する

dnf History を呼び出して、すでに実行された dnf コマンドのリストを確認できます。こうすることで、何がインストール/削除されたかをタイムスタンプで知ることができます。

dnf history

20. すべてのグループパッケージをリストする

コマンド「dnf grouplist」は、利用可能なパッケージまたはインストールされているパッケージをすべて出力します。何も指定しない場合は、既知のグループをすべてリストします。

dnf grouplist

21. DNF を使用してグループ パッケージをインストールする

グループ パッケージとしてバンドルされたパッケージのグループ (教育用ソフトウェアなど) を単に次のようにインストールします。

dnf groupinstall 'Educational Software'

22. グループパッケージを更新する

以下のコマンドを実行して、グループ パッケージ (たとえば教育用ソフトウェア) を更新しましょう。

dnf groupupdate 'Educational Software'

23. グループパッケージの削除

グループ パッケージ (たとえば教育用ソフトウェア) を削除できます。

dnf groupremove 'Educational Software'

24. 特定のリポジトリからパッケージをインストールする

DNF を使用すると、次のように簡単に、リポジトリ (epel) から特定のパッケージ (phpmyadmin など) をインストールできます。

dnf --enablerepo=epel install phpmyadmin

25. インストールされたパッケージを安定版リリースに同期する

コマンド「dnf distro-sync」は、インストールされているすべてのパッケージを、有効なリポジトリから入手可能な最新の安定したバージョンに同期するために必要なオプションを提供します。パッケージが選択されていない場合は、インストールされているすべてのパッケージが同期されます。

dnf distro-sync

26. パッケージを再インストールする

コマンド「dnf reinstall nano」は、すでにインストールされているパッケージ (nano など) を再インストールします。

dnf reinstall nano

27. パッケージのダウングレード

「ダウングレード」オプションは、可能であれば、指定されたパッケージ (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 は、想定されているようにパッケージをダウングレードしませんでした。バグとしても報告されています。

結論

DNF は、最先端のパッケージ マネージャー YUM です。これは多くの処理を自動的に実行する傾向があり、多くの経験豊富な Linux システム管理者からは賞賛されないと私は考えています。一例として:

  1. --skip-broken は DNF によって認識されないため、代替手段はありません。
  2. resolvedep」 コマンドのようなものはありませんが、dnf が提供するコマンドを実行することはできます。
  3. パッケージの依存関係を検索するための「deplist」コマンドはありません。
  4. リポジトリを除外すると、インストール時や更新時などにのみリポジトリを除外する yum とは異なり、除外がすべての操作に適用されることを意味します。

一部の Linux ユーザーは、Linux エコシステムの進み方に満足していません。最初に Systemd が init system v を削除しましたが、Fedora 22 ではすぐに DNF が YUM を置き換え、その後 RHEL と CentOS では DNF が置き換えられる予定です。

どう思いますか?はディストリビューションであり、Linux エコシステム全体がユーザーを評価せず、ユーザーの意志に反して動いています。また、IT 業界ではよく言われます - 「壊れていないのに、 なぜ直すのですか?」 ということですが、init System V も YUM も壊れていません。

それは今のところすべてです。以下のコメント欄であなたの貴重なご意見をお聞かせください。 「いいね!」とシェアして拡散にご協力ください。