新Linux入門|YumからDNFへ:Linuxパッケージ管理の進化と違いを理解しよう

今回は、Linuxの世界で長年使われてきたパッケージ管理ツール「Yum(ヤム)」が、
 その後継である「DNF(ディーエヌエフ)」へと進化した経緯と違いについてわかりやすく解説します😊

 AlmaLinux 9.6などの最新のRed Hat系ディストリビューションでは、すでにYumからDNFへ完全に移行しており、
パッケージ管理の仕組み自体がより効率的でモダンになっています。

🚀 Yumとは?

 Yum (Yellowdog Updater, Modified) は、Red Hat Enterprise Linux(RHEL)やCentOS 7などで使われてきた定番のパッケージ管理ツールです。
RPMパッケージを自動で扱えるようにし、依存関係を解決してくれる頼もしい存在でした。

項目内容
主な機能パッケージの検索・インストール・更新・削除
特徴依存関係を自動で解決、リポジトリ管理が容易
欠点動作速度が遅く、複雑な依存関係でエラーが起きやすい
主な対応環境RHEL 7系 / CentOS 7など

💻 コマンド例

[root@AlmaLinux ~]# yum install httpd

このように簡単なコマンドでApache HTTP Serverをインストールできますが、
処理速度が遅い・キャッシュ管理が複雑といった課題がありました。

⚙️ DNFとは?

DNF (Dandified YUM) は、Yumの後継として開発された新しいパッケージ管理ツールです✨
RHEL 8・AlmaLinux 8以降では標準ツールとして採用されています。

特徴説明
🏃 高速化依存関係の処理速度がYumよりも向上
💾 メモリ効率Python 3対応により動作が軽量化
🔄 ロールバック機能失敗したトランザクションを安全に戻せる
🔍 互換性Yum互換のコマンド体系を維持(置き換えが容易)
🧩 拡張性プラグイン構造が改善され、新機能の追加が簡単に

💻 コマンド例

[root@AlmaLinux ~]# dnf install httpd
メタデータの期限切れの最終確認: 1:40:21 前の 2025年11月24日 00時17分30秒 に実施しました。
依存関係が解決しました。
=========================================================================
 パッケージ               Arch      バージョン        リポジトリー サイズ
=========================================================================
インストール:
 httpd                    x86_64    2.4.62-7.el9      appstream     44 k
依存関係のインストール:
 almalinux-logos-httpd    noarch    90.6-2.el9        appstream     18 k
 apr                      x86_64    1.7.0-12.el9_3    appstream    122 k
 apr-util                 x86_64    1.6.1-23.el9      appstream     94 k
 apr-util-bdb             x86_64    1.6.1-23.el9      appstream     12 k
 httpd-core               x86_64    2.4.62-7.el9      appstream    1.4 M
 httpd-filesystem         noarch    2.4.62-7.el9      appstream     11 k
 httpd-tools              x86_64    2.4.62-7.el9      appstream     78 k
弱い依存関係のインストール:
 apr-util-openssl         x86_64    1.6.1-23.el9      appstream     14 k
 mod_http2                x86_64    2.0.26-5.el9      appstream    163 k
 mod_lua                  x86_64    2.4.62-7.el9      appstream     58 k

トランザクションの概要
=========================================================================
インストール  11 パッケージ

ダウンロードサイズの合計: 2.0 M
インストール後のサイズ: 6.1 M
これでよろしいですか? [y/N]: y

まるでYumと同じように使えますが、内部処理はまったく新しく設計されているんです。

🔍 YumとDNFの違い

比較項目YumDNF
デフォルト環境RHEL/CentOS 7RHEL/AlmaLinux/Rocky 8以降
実行速度やや遅いより高速・効率的
依存関係の処理単純な自動解決より正確で高速な解決
PythonバージョンPython 2系Python 3系
ロールバック機能なしあり(トランザクション履歴対応)
コマンド互換性旧式Yumコマンドもそのまま利用可能
拡張性限定的プラグインで容易に機能追加

DNFはYumの後継ですが、「Yumの改良版」ではなく「再設計された新世代ツール」 です。
これにより、パッケージ管理の速度・安定性・信頼性が大きく向上しています。

🧠 AlmaLinux・Rocky Linuxでの位置づけ

AlmaLinux 9.6やRocky Linux 9では、DNFが完全に標準ツールとして搭載されています。
内部的には「yum」コマンドを入力しても、実際にはDNFが呼び出されています。

[suzuki@AlmaLinux ~]$ yum --version
4.14.0
  インストール済み: dnf-0:4.14.0-25.el9.alma.1.noarch (日時: 2025年10月27日 07時19分01秒)
  ビルド      : AlmaLinux Packaging Team <packager@almalinux.org>  (日時: 2025年03月12日 10時54分24秒)

  インストール済み: rpm-0:4.16.1.3-37.el9.x86_64 (日時: 2025年10月27日 07時17分42秒)
  ビルド      : AlmaLinux Packaging Team <packager@almalinux.org>  (日時: 2025年03月13日 03時17分20秒)

つまり、yumコマンド=dnfコマンド なんです😊
古いスクリプトの互換性を保ちつつ、新しい仕組みへ移行できるように設計されています。

📊 CentOS 7とCentOS 8(およびAlmaLinux 9.6)での比較

項目CentOS 7CentOS 8 / AlmaLinux 9.6
デフォルトツールYumDNF
DNFの有無オプションで利用可デフォルトで導入済み
Yumの利用可否利用可能コマンドはDNFにマッピング
推奨ツールYumDNF
主な特徴古い構造、Python 2新構造、Python 3、高速依存解決

この比較からも分かる通り、最新のディストリビューションではDNFが主役になっています🌟

🌟 まとめ

YumとDNFはどちらもLinuxのパッケージ管理を支える重要なツールですが、
DNFはYumの弱点を克服し、速度・安定性・柔軟性 の面で大きく進化しています。

  • 💨 DNFはYumより高速!
  • 🧩 依存関係処理がより正確!
  • 🔁 トランザクション履歴で安全なロールバック!

AlmaLinux 9.6では、DNFを使いこなすことがシステム管理の基本です。
これからLinuxを学ぶ方も、Yumの仕組みを理解しながらDNFへステップアップしていきましょう🐧