CentOSにEPELパッケージをインストールする

マシンアーキテクチャとメジャーバージョンの確認

2016-11-04時点でEPELはバージョン5、6、7の3つが公開されている。マシンのアーキテクチャCentOSのメジャーバージョンに応じたEPELパッケージをインストールする必要があるので、はじめにその2点を確認する。

$ uname -r
2.6.32-642.1.1.el6.x86_64
$ cat /etc/centos-release 
CentOS release 6.8 (Final)

アーキテクチャx86_64、メジャーバージョンは6であることが分かった。この場合、対応するEPELパッケージは次のURLで取得できる。
http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

パッケージ情報の確認

インストールする前にパッケージの情報を確認する。この作業は必須ではないが、仕組みを理解するために読んでおいたほうがよい。

$ rpm -qip http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
警告: http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Name        : epel-release                 Relocations: (not relocatable)
Version     : 6                                 Vendor: Fedora Project
Release     : 8                             Build Date: 2012年11月04日 19時54分41秒
Install Date: (not installed)               Build Host: buildvm-05.phx2.fedoraproject.org
Group       : System Environment/Base       Source RPM: epel-release-6-8.src.rpm
Size        : 22169                            License: GPLv2
Signature   : RSA/8, 2012年11月05日 07時29分49秒, Key ID 3b49df2a0608b895
Packager    : Fedora Project
URL         : http://dl.fedoraproject.org/pub/epel/
Summary     : Extra Packages for Enterprise Linux repository configuration
Description :
This package contains the Extra Packages for Enterprise Linux (EPEL) repository
GPG key as well as configuration for yum and up2date.

Descriptionを直訳するとこうだ。

このパッケージにはEPELリポジトリのGPGキーと
yum及びup2dateの設定が含まれる。

続いて、パッケージに含まれるファイルを確認してみる。

$ rpm -q --filesbypkg -p http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
警告: http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
epel-release              /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
epel-release              /etc/rpm/macros.ghc-srpm
epel-release              /etc/yum.repos.d/epel-testing.repo
epel-release              /etc/yum.repos.d/epel.repo
epel-release              /usr/share/doc/epel-release-6
epel-release              /usr/share/doc/epel-release-6/GPL

yumからEPELリポジトリを参照するための.repoファイルが含まれていることが分かる。

パッケージのインストール

ここまで理解したところで、いよいよパッケージをインストールする。なお、sudoコマンドが使えない場合は先に Linuxでsudoを使えるようにする - honeotech を実施する(su -でもいいけど)。

$ sudo rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.QuYubc: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

yum repolist [enabled]コマンドで、yumが有効と認識しているリポジトリを表示し、EPELが有効となっていることを確認する(enabledは省略可)。

$ yum repolist
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
epel/metalink                | 5.5 kB     00:00
 * base: ftp.iij.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
epel                         | 4.3 kB     00:00
epel/primary_db              | 5.9 MB     00:00
リポジトリー ID    リポジトリー名                                    状態
base               CentOS-6 - Base                                    6,696
epel               Extra Packages for Enterprise Linux 6 - x86_64    12,214
extras             CentOS-6 - Extras                                     62
updates            CentOS-6 - Updates                                   581
repolist: 19,553

GPGキーのインポート

GPGキーをインポートする。これでパッケージの署名確認ができるようなり、rpmコマンドを打つ度に出ていた警告メッセージが出なくなる。

$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
# 何も出力されない

epelリボジトリの無効化(任意)

このままだとyumしたらデフォルトでepelレポジトリが参照されてしまうので、yum-config-manager --disableコマンドでepelリポジトリを無効化する。このあたりの設定はお好みで。
コマンドを実行すると、以下のように指定したリポジトリの設定が表示される。enabled=0(無効)となっていればOKだ。

$ sudo yum-config-manager --disable epel
読み込んだプラグイン:fastestmirror, refresh-packagekit
====================================== repo: epel =======================================
[epel]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/6
baseurl = 
cache = 0
cachedir = /var/cache/yum/x86_64/6/epel
cost = 1000
enabled = 0
# 以下省略

再度yum repolistコマンドを実行して、epelレポジトリが無効化された(表示されない)ことを確認する。

$ yum repolist
読み込んだプラグイン:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
リポジトリー ID                         リポジトリー名                              状態
base                                    CentOS-6 - Base                             6,696
extras                                  CentOS-6 - Extras                              62
updates                                 CentOS-6 - Updates                            581
repolist: 7,339

無効化したリポジトリを参照するには、--enablerepoオプションを使う。

$ yum --enablerepo=epel info R.x86_64