Overview
私が個人的に運用している CentOS 6 では、Cacti, Asterisk, OpenVPN, PoPToP 等、デフォルトのリポジトリには含まれないパッケージを一部使用しています。デフォルトの状態でこれらのパッケージをインストールするには、ソースコードからコンパイルしてインストールする必要がありますが、EPEL リポジトリを追加することで、Yum からインストールして管理できるようになります。
EPEL リポジトリについて、Fedora Project の wiki に以下の説明があります。
エンタープライズLinux用の拡張パッケージ(EPEL)は、Red Hat Enterprise Linux(RHEL)向けの高品質なアドオンパッケージであり、CentOSやScientific Linux(SL)のようなRHELからスピンオフしたディストリビューションと互換性のある、Fedoraプロジェクトで有志によって作成されたパッケージになります。FedoraはRHELのアップストリームであり、EPELのアドオンパッケージは主にRHEL向けにビルドされたFedoraリポジトリをソースとしています。
Fedora Project
個人的な印象としては、EPEL リポジトリは他の個人的に提供されているリポジトリとは異なり、Red Hat に近い Fedora Project で提供されていることから、信頼性の高いサードパーティのリポジトリだと思います。
Yum でパッケージを管理するメリットとデメリット
Yum のリポジトリに登録されるパッケージは、①ソースコードを入手、②ソースコードをコンパイルして RPM 化、③テストの段階を経てリポジトリに登録されますが、仮に Apache に脆弱性が見つかり、早急にアップデートしなければ危険だという場合、Yum のリポジトリに登録されることを待つより、ソースコードから直接インストールしたほうが、より早く脆弱性に対処できる可能性があります。ただ、現実的には Apache のサイトを一日中眺めているわけにもいかず、個人的なサイト運営では限界があります。また、ソースコードからのインストールやアップデートは、各ソフトウェアに対する深い知識が必要となります。
上記の理由から、特に個人的に運営しているサイトやサーバーでは、可能な限りデフォルト以外のパッケージの管理も全て Yum で行うことを推奨します。脆弱性対応のスピード感は劣る可能性もありますが、yum-cron を使用すれば、毎日確実に漏れなくアップデートされます。
EPEL リポジトリの追加
EPEL リポジトリを追加する前のリポジトリの設定ファイルは以下の通りです。
[root@centos-6 ~] # ls -l /etc/yum.repos.d
合計 24
-rw-r--r--. 1 root root 1991 8月 4 01:13 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 647 8月 4 01:13 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 630 8月 4 01:13 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 6259 8月 4 01:13 2015 CentOS-Vault.repo
-rw-r--r--. 1 root root 289 8月 4 01:13 2015 CentOS-fasttrack.repo
以下の例では、Yum で Cacti を検索しています。出力結果の通り、EPEL リポジトリを追加する Cacti が存在しません。
[root@centos-6 ~] # yum search cacti
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
警告: 一致するものが見つかりません: cacti
見つかりませんでした
EPEL リポジトリをインストールします。EPEL リポジトリ自体がデフォルトのリポジトリに含まれており、そのまま Yum でインストール可能です。
[root@centos ~] # yum install epel-release
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package epel-release.noarch 0:6-8 will be インストール
--> 依存性解決を終了しました。
依存性を解決しました
===============================================================================================================================================================================================================================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
===============================================================================================================================================================================================================================================================================
インストールしています:
epel-release noarch 6-8 extras 14 k
トランザクションの要約
===============================================================================================================================================================================================================================================================================
インストール 1 パッケージ
総ダウンロード容量: 14 k
インストール済み容量: 22 k
これでいいですか? [y/N]y
パッケージをダウンロードしています:
epel-release-6-8.noarch.rpm | 14 kB 00:00
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
インストールしています : epel-release-6-8.noarch 1/1
Verifying : epel-release-6-8.noarch 1/1
インストール:
epel-release.noarch 0:6-8
完了しました!
EPEL リポジトリを追加した後のリポジトリの設定ファイルは以下の通りです。epel-testing.repo
と epel.repo
が追加されています。
[root@centos-6 ~] # ls -l /etc/yum.repos.d
合計 32
-rw-r--r--. 1 root root 1991 8月 4 01:13 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 647 8月 4 01:13 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 630 8月 4 01:13 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 6259 8月 4 01:13 2015 CentOS-Vault.repo
-rw-r--r--. 1 root root 289 8月 4 01:13 2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 1056 11月 5 12:52 2012 epel-testing.repo
-rw-r--r--. 1 root root 957 11月 5 12:52 2012 epel.repo
再度、Yum で Cacti を検索します。以下の通り、EPEL リポジトリを追加した後は Cacti が存在することを確認できます。
[root@centos-6 ~] # yum search cacti
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* epel: mirrors.hustunique.com
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
============================================================================================================================= N/S Matched: cacti ==============================================================================================================================
cacti.noarch : An rrd based graphing tool
Name and summary matches only, use "search all" for everything.
EPEL リポジトリをデフォルトで使用するかどうか
インターネット上に存在する設定例では、/etc/yum.repos.d/epel.repo
を enabled=0
に設定し、EPEL リポジトリが必要な場合、yum コマンドに --enablerepo=epel
をつけて使用するケースが良く見受けられますが、これはデフォルトのリポジトリと EPEL リポジトリが提供するパッケージが競合しないようにするためです。
ただ、それが目的であれば、EPEL リポジトリからパッケージをインストールしている時点で既に競合する可能性があり、わざわざ enabled=0
にする必要はないと思っています。また、enabled=0
にすると EPEL リポジトリからインストールしたパッケージは自動更新されなくなるため、せっかくの自動更新のメリットがありません。
冒頭に記載した通り、EPEL リポジトリは Fedora Project が運用している信頼性の高いリポジトリであり、デフォルトのリポジトリと同様に扱って問題ないと思います。