目次
1. 基本知識:なぜ外部リポジトリが必要か?
Rocky Linux 9 の標準リポジトリ(BaseOS, AppStream)は、「安定性」を最優先しているため、パッケージの種類が限定的だったり、バージョンが少し古かったりします。
| リポジトリ | 補うもの |
|---|---|
| EPEL | 標準にない便利なツール(htop, 7-zip, VPN関連など) |
| ELRepo | 最新のカーネルやハードウェアドライバ |
| Remi | 最新の PHP や Redis など、Web開発に必要な最新版 |
2. 運用を安定させる「リポジトリ優先度(Priority)」
複数のリポジトリを混ぜると、同じソフトの別バージョンが衝突してシステムが不安定になることがあります。これを防ぐのが priority 設定です。
■ 設定の考え方
/etc/yum.repos.d/*.repoファイル内にpriority=数字を追記します。- 数字が小さいほど優先される(1が最強、99が最弱)。
- 標準リポジトリ:指定なし(デフォルト99)。
- 外部リポジトリ:10前後に設定するのが実務上のベストプラクティスです。
3. Rocky Linux 9 の「隠れた標準」:CRBリポジトリ
Rocky Linux 9 では、以前の PowerTools に相当する CRB (Code Ready Builder) リポジトリが無効状態で用意されています。EPELを使う際、これが必要になることが多いため、最初に有効化します。
sudo dnf config-manager --set-enabled crb
4. 三大リポジトリの導入手順
最も一般的で、ほぼ必須のリポジトリです。
sudo dnf -y install epel-release
sudo vi /etc/yum.repos.d/epel.repo
# [epel] セクションに priority=10 を追記
最新のカーネルや、NIC・GPUなどのドライバが必要な場合に導入します。
sudo dnf -y install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
sudo vi /etc/yum.repos.d/elrepo.repo
# [elrepo] セクションに priority=10 を追記
最新の PHP 環境などを構築する場合に必須です。
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo vi /etc/yum.repos.d/remi-safe.repo
# [remi-safe] セクションに priority=10 を追記
5. 優先度(priority=10)の具体的な書き方
結論から言うと、各リポジトリの「設定のブロック([epel] などで始まる塊)」の中に、priority=10 という行を書き加えるだけでOKです。
EPELリポジトリの設定例(/etc/yum.repos.d/epel.repo)
一番上の [epel] というブロックの最後に追記します。修正後のイメージ:
[epel]
name=Extra Packages for Enterprise Linux 9 - $basearch
# (中略)
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-9&arch=$basearch&infra=$infra&content=$contentdir
enabled=1
gpgcheck=1
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
priority=10 <-- ここに追加!
具体的な操作手順(viエディタの場合)
- ファイルを開く:
sudo vi /etc/yum.repos.d/epel.repo - 書き込みモードにする:キーボードの
iを押します(画面下に-- INSERT --と出ます)。 - カーソルを移動して追記する:一番上の
[epel]セクションにあるgpgkey=...の下の行に移動し、priority=10と入力します。 - 保存して閉じる:
Escキーを押した後、:wqと入力してEnterを押します。
他のリポジトリも同様です
① ELRepo(/etc/yum.repos.d/elrepo.repo) / [elrepo] セクションの中に追記します。
[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el9
# (中略)
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
priority=10 # 追加
② Remi(/etc/yum.repos.d/remi-safe.repo) / [remi-safe] セクションの中に追記します。
[remi-safe]
name=Safe Remi's RPM repository for Enterprise Linux 9 - $basearch
# (中略)
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el9
priority=10 # 追加
💡 なぜこのように入れるのか?
[epel] や [elrepo] というカッコで囲まれた部分は、そのリポジトリの設定の「始まり」を意味します。次のカッコ(例:[epel-debuginfo])が出てくるまでの間が、そのリポジトリの設定範囲です。
ですので、enabled=1(有効)になっているブロックの中であれば、どこに書いても動作しますが、一番下に書くのが見やすくて一般的です。
設定が終わったら、以下のコマンドで優先度が反映されているか確認できます。
dnf repolist -v epel
表示された結果の中に Repo-priority: 10 という行があれば、設定は完全に有効です。
6. 実務で使うリポジトリ操作コマンド
■ 有効なリポジトリを一覧表示する
「今、どこからソフトを入れられる状態か」を確認します。
dnf repolist
■ 特定のリポジトリを「一時的に」使ってインストールする
普段は無効(enabled=0)にしているリポジトリから、その時だけソフトを入れる安全な方法です。
sudo dnf --enablerepo=epel install <パッケージ名>
■ リポジトリを一時的に「除外して」インストールする
標準リポジトリのものを使いたいのに、外部リポジトリが邪魔をする場合に使います。
sudo dnf --disablerepo=remi* install <パッケージ名>
7. 管理者向け:リポジトリ設定チートシート
| リポジトリ名 | 特徴 | 導入コマンド |
|---|---|---|
| CRB | 開発者用(標準) | dnf config-manager --set-enabled crb |
| EPEL | 汎用ツール多数 | dnf install epel-release |
| ELRepo | ハード・カーネル | dnf install https://www.elrepo.org/... |
| Remi | 最新Webスタック | dnf install https://rpms.remirepo.net/... |
8. 学習のポイントと注意点
- 混ぜすぎ厳禁:リポジトリを増やしすぎると、依存関係が複雑になり「dnf upgrade」が失敗しやすくなります。必要なものだけを入れるのが鉄則です。
- 設定ファイルの場所:すべてのリポジトリ設定は
/etc/yum.repos.d/配下に.repoという拡張子で保存されています。 - 優先度の確認:新しいソフトを入れる前に
dnf repolistを打つ習慣をつけましょう。
実機で確認した設定状況
2026年8月4日時点で、本サイトのRocky Linux 9サーバーの実際の設定を確認しました。
$ grep priority /etc/yum.repos.d/epel.repo
priority=10
$ dnf repolist --all | grep crb
crb Rocky Linux 9 - CRB 有効化
- CRBリポジトリの有効化 証跡あり(有効化済み)
- EPELリポジトリの priority=10 設定 証跡あり(設定済み)
- ELRepoリポジトリの priority=10 設定 未設定(elrepo.repoにpriority行なし)
- Remiリポジトリの priority=10 設定 未設定(remi-safe.repo/remi-modular.repoにpriority行なし)
精査メモ
元の資料の末尾には「EPELの設定が完了したので、残りのELRepoとRemiについても同じようにpriority=10を追記すれば完了」という記載がありましたが、実機を確認したところ、ELRepoとRemiへの追記は実施されないままになっていました。EPELだけ優先度が保護され、ELRepo・Remiは標準優先度(99)のまま外部パッケージが優先されうる状態です。
次のステップへのアドバイス
外部リポジトリが使えるようになったら、次は「dnf-automatic」を使ったセキュリティアップデートの自動化や、「versionlock」を使った特定のソフト(カーネルなど)のバージョン固定について学ぶと、よりプロフェッショナルな運用ができるようになります。