手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 6 Yum EPEL リポジトリ

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.repoepel.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.repoenabled=0 に設定し、EPEL リポジトリが必要な場合、yum コマンドに --enablerepo=epel をつけて使用するケースが良く見受けられますが、これはデフォルトのリポジトリと EPEL リポジトリが提供するパッケージが競合しないようにするためです。

ただ、それが目的であれば、EPEL リポジトリからパッケージをインストールしている時点で既に競合する可能性があり、わざわざ enabled=0 にする必要はないと思っています。また、enabled=0 にすると EPEL リポジトリからインストールしたパッケージは自動更新されなくなるため、せっかくの自動更新のメリットがありません。

冒頭に記載した通り、EPEL リポジトリは Fedora Project が運用している信頼性の高いリポジトリであり、デフォルトのリポジトリと同様に扱って問題ないと思います。

CentOS 6 Yum EPEL リポジトリ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る