yum・dnfにEPELリポジトリを追加する方法|CentOS7・RHEL8・AlmaLinux別の手順と注意点

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, パッケージ管理コマンド > yum・dnfにEPELリポジトリを追加する方法|CentOS7・RHEL8・AlmaLinux別の手順と注意点
「yumで入れたいパッケージがない」「EPELって何?どうやって追加するの?」
RHEL系Linuxを使っていると、標準リポジトリにはないパッケージを追加したい場面が必ずやってきます。

この記事では、EPELリポジトリの基本的な考え方から、CentOS 7・RHEL 8/9・AlmaLinux 9・Rocky Linux 9それぞれの追加手順、よく使うパッケージ、リスクと注意点までを実際のサーバー環境をベースに解説します。

この記事のポイント

・EPELはFedoraプロジェクトが管理する追加パッケージリポジトリ
・CentOS 7はyum install epel-release一発で追加できる
・RHEL 8/9はsubscription-managerでCodeReadyを有効にしてからが必須
・AlmaLinux/Rocky Linux 9もdnf install epel-releaseで追加可能


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

EPELとは何か|標準リポジトリとの違い

EPEL(Extra Packages for Enterprise Linux)は、Fedoraプロジェクトが管理・提供する追加パッケージリポジトリです。
RHEL系Linuxの標準リポジトリには含まれていないが、現場でよく使うツール——htop・jq・nmap・fail2banなど——が約8,000パッケージ以上収録されています。

重要なのは、EPELはFedoraコミュニティが独自に管理しているという点です。つまり、Redhat社の公式サポート対象外です。
本番サーバーへの導入は、この点を理解した上で判断する必要があります。

リポジトリ 管理元 サポート パッケージ数(目安)
BaseOS / AppStream Red Hat / OS開発元 公式サポートあり 約1,500
EPEL Fedoraプロジェクト コミュニティサポート 約8,000以上

CentOS 7でEPELを追加する方法

CentOS 7はすでに2024年6月にサポート終了(EOL)を迎えていますが、既存環境で使い続けているケースもあります。
CentOS 7ではepel-releaseパッケージがBaseOSリポジトリに含まれているため、コマンド1つで追加できます。

1. epel-releaseをインストールする

# CentOS 7:epel-releaseをインストール $ sudo yum install epel-release -y # インストール確認 $ yum repolist | grep epel epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,664

2. EPELが有効になっているか確認する

# リポジトリ一覧を確認 $ yum repolist all | grep epel epel/x86_64 Extra Packages for Enterprise Linux 7 enabled: 13,664 epel-debuginfo Extra Packages for Enterprise Linux 7 disabled epel-source Extra Packages for Enterprise Linux 7 disabled

enabled と表示されていれば正常にEPELが利用できる状態です。

RHEL 8 / RHEL 9でEPELを追加する方法

RHEL(Red Hat Enterprise Linux)の場合は、CentOSと手順が異なります。
RHEL 8/9では、EPELを利用する前に「CodeReady Linux Builder」(RHEL 9ではCRB: CodeReady Build)リポジトリを有効にする必要があります。このリポジトリを有効にしないとEPELのパッケージが依存するライブラリが不足してしまいます。

1. subscription-managerでリポジトリを確認する

# RHEL 8/9:サブスクリプションが有効か確認 $ sudo subscription-manager status +-------------------------------------------+ System Status Details +-------------------------------------------+ Overall Status: Current

2. CodeReady Linux Builderを有効にする

# RHEL 8の場合 $ sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms # RHEL 9の場合 $ sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms # 有効化を確認 $ sudo dnf repolist | grep codeready codeready-builder-for-rhel-9-x86_64-rpms Red Hat CodeReady Linux Builder 3,421

3. EPELをインストールする

# RHEL 8 $ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y # RHEL 9 $ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y # インストール確認 $ sudo dnf repolist | grep epel epel Extra Packages for Enterprise Linux 9 1,892

AlmaLinux 9 / Rocky Linux 9でEPELを追加する方法

AlmaLinux 9・Rocky Linux 9はどちらもepel-releaseパッケージがリポジトリから直接インストールできます。
ただし、CRBリポジトリ(CodeReady Build)を有効にしてからEPELを追加することを推奨します。

1. CRBリポジトリを有効にする

# AlmaLinux 9 / Rocky Linux 9 共通 $ sudo dnf config-manager --set-enabled crb # 有効になったか確認 $ sudo dnf repolist | grep crb crb AlmaLinux 9 - CRB 1,230

2. epel-releaseをインストールする

# AlmaLinux 9 / Rocky Linux 9 共通 $ sudo dnf install epel-release -y # インストール確認 $ sudo dnf repolist | grep epel epel Extra Packages for Enterprise Linux 9 1,892 epel-next Extra Packages for Enterprise Linux 9 - Next 69

AlmaLinux 9・Rocky Linux 9では epel-next リポジトリも同時に追加されます。これはFedoraパッケージの次バージョンを先行テストするためのものです。

yum-config-managerでEPELの優先度を設定する

EPELが有効になった後、BaseOSの標準パッケージとEPELパッケージでバージョン競合が起きることがあります。
そういった場合は yum-config-manager(dnf版はdnf config-manager)でEPELの優先度を下げておくと安全です。

1. EPELを一時的に無効化してパッケージをインストールする

# EPELを除外した状態でインストール(競合時の回避) $ sudo dnf install --disablerepo=epel パッケージ名 # 逆にEPELのみを使う場合 $ sudo dnf install --enablerepo=epel パッケージ名

2. EPELの優先度を下げる(priority設定)

# /etc/yum.repos.d/epel.repo を編集して priority を追加 $ sudo vi /etc/yum.repos.d/epel.repo # [epel]セクションに以下を追加 priority=10 # ※数値が小さいほど優先度が高い。BaseOSのデフォルトは1 # dnf-plugin-prioritiesが必要な場合 $ sudo dnf install dnf-plugin-priorities -y

EPELでよく使うパッケージ一覧

EPELを追加する主な目的は、標準リポジトリに含まれていないツールを使うためです。
現場でよく利用するパッケージをまとめます。

パッケージ名 用途 インストールコマンド
htop インタラクティブなプロセス監視ツール dnf install htop
jq JSONパーサー・フィルタツール dnf install jq
nmap ポートスキャン・ネットワーク診断 dnf install nmap
fail2ban ブルートフォース攻撃の自動ブロック dnf install fail2ban
sysstat CPU/メモリ/I/O統計(sar/iostat) dnf install sysstat
nc(ncat) ネットワーク接続テスト dnf install ncat
atop 過去のシステムリソース履歴確認 dnf install atop
glances システム監視の統合ダッシュボード dnf install glances
パッケージがEPELにあるかどうかを確認するには以下のコマンドを使います。

# パッケージがどのリポジトリから提供されるか確認 $ dnf info htop Repository : epel

なお、rpm コマンドの使い方を使えば、インストール済みパッケージの詳細情報をさらに細かく確認できます。

EPELの有効化リスクと注意点

EPELは便利なリポジトリですが、本番環境で無計画に使うといくつかのリスクがあります。

1. 標準パッケージとのバージョン競合
EPELには標準リポジトリとバージョンが異なるパッケージが含まれることがあります。意図せず依存関係が変更され、既存のサービスが停止するリスクがあります。

2. Redhatの公式サポート対象外
EPELのパッケージはコミュニティ管理です。本番環境でサポート契約を締結している場合、EPELパッケージ起因の問題はサポート対象外になる可能性があります。

3. セキュリティパッチの遅延
標準リポジトリと比べて、EPELのセキュリティアップデートは反映が遅れることがあります。定期的に dnf update を実行し、最新状態を維持することが重要です。

本番環境でEPELを使う場合は、ステージング環境での動作確認をしてから適用することを強くお勧めします。

「Cannot retrieve metalink for repository: epel」エラーの対処法

EPELを追加した後、以下のようなエラーが出ることがあります。

Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again

このエラーの原因は多くの場合、DNS解決の失敗またはネットワーク接続の問題です。

1. DNSの動作を確認する

# DNSで名前解決できるか確認 $ dig dl.fedoraproject.org ;; ANSWER SECTION: dl.fedoraproject.org. 300 IN A 8.43.85.60

名前解決ができない場合は、Linux DNS 設定の基本を参照して /etc/resolv.conf やNetworkManagerの設定を確認してください。

2. HTTPS接続(443ポート)を確認する

# dl.fedoraproject.orgへのHTTPS接続テスト $ curl -I https://dl.fedoraproject.org/pub/epel/ HTTP/2 200 server: Apache/2.4.62 (Fedora Linux)

3. CentOS 7でEOL後にリポジトリにアクセスできない場合

CentOS 7のEOL(2024年6月)以降、mirrorリポジトリのアクセス先が変わっています。

# /etc/yum.repos.d/epel.repo のbaseURLを修正 $ sudo sed -i 's|^metalink|#metalink|g' /etc/yum.repos.d/epel.repo $ sudo sed -i 's|^#baseurl=https://download.fedoraproject.org|baseurl=https://dl.fedoraproject.org|g' /etc/yum.repos.d/epel.repo # キャッシュをクリアして再試行 $ sudo yum clean all && sudo yum makecache

本記事のまとめ

EPELリポジトリの追加手順をOS別にまとめます。

OS 追加手順
CentOS 7 sudo yum install epel-release -y
RHEL 8 subscription-manager でCRB有効化 → epel-release-latest-8.noarch.rpmをインストール
RHEL 9 subscription-manager でCRB有効化 → epel-release-latest-9.noarch.rpmをインストール
AlmaLinux 9 sudo dnf config-manager --set-enabled crb && sudo dnf install epel-release -y
Rocky Linux 9 sudo dnf config-manager --set-enabled crb && sudo dnf install epel-release -y
EPELを安全に使うためのポイントは3つです。
・CRBリポジトリを先に有効化してから追加する(RHEL 8/9・AlmaLinux・Rocky)
・本番環境ではステージング環境での動作確認を先に実施する
・定期的に dnf update を実行してセキュリティパッチを適用する

rpmパッケージの基本的な使い方については、rpm コマンドの使い方で詳しく解説しています。
Linux基本コマンドの体系的な学習にはLinux 基本コマンドの解説も参考にしてください。

EPELの使い方を含めた、安定したサーバー運用の基礎を固めませんか?

EPELリポジトリの活用はサーバー運用の一歩ですが、パッケージ管理・ファイアウォール・ユーザー管理と合わせて体系的に身につけることで、現場で頼られる存在になれます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。