目次
概要
サーバー構築の第一歩は、システムを最新の状態に保つことです。Rocky Linux 9 で採用されているパッケージ管理システム DNF (Dandified YUM) について、その本質を理解しましょう。
1. 仕組みの理解:yum と dnf の正体
Rocky Linux 9 において、yum コマンドと dnf コマンドに違いはありません。
■ コマンドの実体を確認する
以下のコマンドを打つと、その関係性が一目で分かります。
$ ls -l /usr/bin/yum
lrwxrwxrwx. 1 root root 5 12月 29 14:11 /usr/bin/yum -> dnf-3
# 結果: /usr/bin/yum -> dnf (yumはdnfを指している)
$ ls -l /usr/bin/dnf
lrwxrwxrwx. 1 root root 5 12月 29 14:11 /usr/bin/dnf -> dnf-3
# 結果: /usr/bin/dnf -> dnf-3 (dnfはdnf-3を指している)
■ なぜ2つの名前があるのか?
- 歴史的背景:以前の主流は yum でしたが、性能向上のために新世代の dnf へ進化しました。
- 互換性の維持:世界中の古いマニュアルやスクリプトが yum という名前を使っているため、Rocky Linux 9 でも「中身は最新の dnf だけど、名前は yum でも反応する」ようになっています。
結論:学習・運用においては、モダンな名称である dnf を使うのが推奨されます。
参考:dnf history の見え方
$ sudo dnf history
ID | コマンドライン | 日時 | 動作 | 変更さ
------------------------------------------------------------------------
3 | install -y vim wget curl net-to | 2026-03-15 11:15 | Install | 72
2 | update -y | 2026-03-15 11:09 | I, U | 90 <
1 | | 2026-03-15 10:59 | Install | 434 >E
このように「いつ、何を、どう変更したか」がすべて記録されます。
2. 実践:システムを最新化する
■ システム全体のアップグレード
インストール直後や定期メンテナンスで実行します。
sudo dnf upgrade
-y オプション
sudo dnf -y upgrade とすると、途中の確認(y/n?)をすべて「yes」で自動回答します。
■ 「update」と「upgrade」の違い
RHEL系(Rocky含む)においては、現在この2つに機能差はありません。以前のLinuxでは「update は更新、upgrade は削除を伴う更新」という違いがありましたが、現在のDNFではどちらを打っても同じ安全な更新処理が行われます。
3. 実務で必須!知っておくべき3つの重要知識
① カーネル更新と再起動
システムアップデート(upgrade)の中に「kernel」という項目が含まれていた場合、OSの再起動が必要です。
理由
カーネルはOSの心臓部であり、動いている最中に中身を入れ替えることができないためです。再起動して初めて新しい心臓部で動き出します。
sudo reboot
② アップデート履歴の管理(タイムマシン機能)
DNFは「いつ、何のパッケージを更新したか」をすべて記録しています。
sudo dnf history
sudo dnf history info 5
sudo dnf history undo 5
③ キャッシュのクリア
「メタデータの同期に失敗しました」などのエラーが出た際、古い情報を一度掃除することで解決することがあります。
sudo dnf clean all
4. 応用編:効率的なパッケージ操作
| 目的 | コマンド | 解説 |
|---|---|---|
| 検索 | dnf search キーワード | 欲しいソフトがあるか探す |
| 情報確認 | dnf info パッケージ名 | そのソフトの説明やバージョンを見る |
| インストール | dnf install パッケージ名 | 新しくソフトを入れる |
| 削除 | dnf remove パッケージ名 | 不要なソフトを消す |
| グループ管理 | dnf group list | 「開発ツール一式」などのセットを確認 |
5. 設定ファイル:dnf.confの役割
DNFの動作設定は以下のファイルで行います。
場所:/etc/dnf/dnf.conf
(学習ポイント)便利な設定例
このファイルに max_parallel_downloads=10 と追記すると、ダウンロードを複数同時に行うようになり、アップデートが高速化します。
6. よく使うdnfコマンド早見表
| 操作 | コマンド |
|---|---|
| システム全体を更新 | sudo dnf upgrade |
| パッケージを検索 | dnf search キーワード |
| インストール済みパッケージの一覧 | dnf list installed |
| 特定パッケージがインストール済みか確認 | rpm -q パッケージ名 |
| パッケージがどのファイルを持つか確認 | rpm -ql パッケージ名 |
| 依存関係を含めて削除 | sudo dnf remove パッケージ名 |
| 使われなくなった依存パッケージを一括削除 | sudo dnf autoremove |
| 有効なリポジトリの一覧を確認 | dnf repolist |
| 更新履歴を見る | sudo dnf history |
| 失敗した更新を取り消す | sudo dnf history undo ID番号 |
7. 拡張リポジトリの追加(EPEL / ELRepo / Remi)
Rocky Linux 9 標準のリポジトリ(BaseOS / AppStream / CRB)だけでは提供されないソフトウェアも多くあります。代表的な拡張リポジトリを紹介します。
| リポジトリ | 主な用途 |
|---|---|
| EPEL | htop、7-zip など、コミュニティ提供の定番ツールを追加 |
| ELRepo | 最新のハードウェアドライバ・カーネル関連パッケージ |
| Remi | PHP など、より新しいバージョンのWeb系ソフトウェア |
sudo dnf install epel-release
sudo dnf makecache
dnf repolist
repo id repo の名前
appstream Rocky Linux 9 - AppStream
baseos Rocky Linux 9 - BaseOS
crb Rocky Linux 9 - CRB
elrepo ELRepo.org Community Enterprise Linux Repository - el9
epel Extra Packages for Enterprise Linux 9 - x86_64
extras Rocky Linux 9 - Extras
remi-modular Remi's Modular repository for Enterprise Linux 9 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 9 - x86_64
本サイトのRocky Linux 9サーバーでも実際にEPEL・ELRepo・Remiが導入済みであることを確認しています。
拡張リポジトリ利用時の注意
拡張リポジトリを増やすほど、パッケージの選択肢が広がる一方で、パッケージ間の依存関係の競合(特にPHPなどのバージョン違い)が起こりやすくなります。dnf.confのgpgcheck=1(署名検証)を無効化しないこと、そして信頼できるリポジトリのみを追加することが重要です。
📌 まとめ:このガイドのポイント
- yum は dnf へのショートカット。今後は dnf を使うのがスマート。
- sudo dnf upgrade はサーバー構築の「儀式」。最初に行う。
- カーネルが更新されたら reboot を忘れずに。
- 困ったら dnf history。過去の操作をいつでも確認・取消できる。
- 足りない機能はEPEL等の拡張リポジトリで補える。ただし信頼できるものだけを追加する。