CentOS6でRPMforge、Remi、EPELをyumレポジトリに追加する方法


なお、本記事はx86_64(64bit)環境を前提にしています。

レポジトリファイルをダウンロード

まずはレポジトリファイルをダウンロードしましょう。

実はここが鬼門で、レポジトリのURLやファイル名はころころ変わります。(404 not foundなどのエラーが出たりします)
ダウンロードできない場合はあわてずにレポジトリファイルを自力で探せばすぐ見つかりますので、じっくり見てみてください。
epel
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
※上記ファイルが存在しない場合は、下記URLからepel-releaseで始まるファイルを探してダウンロードしてください。 http://dl.fedoraproject.org/pub/epel/6/x86_64/
remi
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
※上記ファイルが存在しない場合は、下記サイトからそれらしいリンクを探して、そのURLを使ってダウンロードしてください。
http://rpms.famillecollet.com/

"CentOS"とか"repository auto-configuration package:remi-release-6.rpm"とか書いてるリンクがそれです。
rpmforge
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
※上記ファイルが存在しない場合は、下記サイトからrpmforge-release-*.x86_64.rpm という名前の一番新しいファイルを探してダウンロードしてください。
http://pkgs.repoforge.org/rpmforge-release/

レポジトリをインストール

ダウンロードできたらインストールします。
rpm --upgrade --verbose --hash epel-release-6-8.noarch.rpm  remi-release-6.rpm rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
インストールできたか確認します。
# rpm -qa | grep epel-release
epel-release-6-8.noarch
# rpm -qa | grep remi-release
remi-release-6-1.el6.remi.noarch
#  rpm -qa | grep rpmforge-release
rpmforge-release-0.5.2-2.el6.rf.x86_64
おk!

デフォルト無効(enabled=0)にする

次に、それぞれの設定ファイルを開いて、enabled=1となっている箇所をenabled=0に書き換えます。
これはサードパーティレポジトリをデフォルト無効するためです。(使うときだけ有効にします。詳しくは後述。)
nano /etc/yum.repos.d/remi.repo
nano /etc/yum.repos.d/epel.repo
nano /etc/yum.repos.d/rpmforge.repo
※remiは最初からenabled=0になっているはずなので編集の必要はありません。
※私はnano派ですがもちろんviで編集してもかまいません。

レポジトリごとの提供パッケージの違いを見てみる実験

さあ準備OK!
各レポジトリがどんなパッケージを提供しているのか見てみましょう。 題材としてphpパッケージを取り上げます。
CentOSのデフォルト
普通にyumコマンドを使った場合、上記設定により外部レポジトリは無効化されているのでCentOSデフォルトレポジトリのみが使用されます。
[root@localhost ~]# yum info php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Available Packages
Name        : php
Arch        : x86_64
Version     : 5.3.3
Release     : 14.el6_3
Size        : 1.1 M
Repo        : updates
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated webpages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            :
            : The php package contains the module which adds support for the PHP
            : language to Apache HTTP Server.
予想通りPHP5.3.3が現れました。古いですね。
epel
[root@localhost ~]# yum --enablerepo=epel info php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Available Packages
Name        : php
Arch        : x86_64
Version     : 5.3.3
Release     : 14.el6_3
Size        : 1.1 M
Repo        : updates
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated webpages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            :
            : The php package contains the module which adds support for the PHP
            : language to Apache HTTP Server.
あれ?さっきと同じです。
"Repo"の項目を見ると"updates"となっているので、これはepelではなくデフォルトレポジトリのことを指しているようです。
おそらく、epelはPHPパッケージを提供していないのでしょう。
rpmforge
[root@localhost ~]# yum --enablerepo=rpmforge info php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * rpmforge: ftp.riken.jp
 * updates: ftp.iij.ad.jp
Available Packages
Name        : php
Arch        : x86_64
Version     : 5.3.3
Release     : 14.el6_3
Size        : 1.1 M
Repo        : updates
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated webpages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            :
            : The php package contains the module which adds support for the PHP
            : language to Apache HTTP Server.
これも同じ結果でした。
remi
[root@localhost ~]# yum --enablerepo=remi info php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi: rpms.famillecollet.com
 * updates: ftp.iij.ad.jp
Available Packages
Name        : php
Arch        : x86_64
Version     : 5.4.11
Release     : 1.el6.remi
Size        : 2.7 M
Repo        : remi
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated web pages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            :
            : The php package contains the module which adds support for the PHP
            : language to Apache HTTP Server.
キターーーーーー!!
PHP 5.4.11です!!
ワクワク!!
epel,remi,rpmforgeを全部有効にする
--enablerepo=epel,remi,rpmforgeで全部有効にしてみましょう。
[root@localhost ~]# yum --enablerepo=epel,remi,rpmforge info php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi: rpms.famillecollet.com
 * rpmforge: ftp.riken.jp
 * updates: ftp.iij.ad.jp
Available Packages
Name        : php
Arch        : x86_64
Version     : 5.4.11
Release     : 1.el6.remi
Size        : 2.7 M
Repo        : remi
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated web pages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            :
            : The php package contains the module which adds support for the PHP
            : language to Apache HTTP Server.
remiのphp5.4.11が表示されました。
つまり、各種レポジトリの中から一番最新のやつを提示してくれるようです。

インストール

では最後にPHPをインストールしてみましょう。
[root@localhost ~]# yum --enablerepo=epel,remi,rpmforge install php
(中略)
Installed:
  php.x86_64 0:5.4.11-1.el6.remi

Dependency Installed:
  apr.x86_64 0:1.3.9-5.el6_2            apr-util.x86_64 0:1.3.9-3.el6_0.1
  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1    httpd.x86_64 0:2.2.15-15.el6.centos.1
  httpd-tools.x86_64 0:2.2.15-15.el6.centos.1
  php-cli.x86_64 0:5.4.11-1.el6.remi    php-common.x86_64 0:5.4.11-1.el6.remi

Complete!
途中 y/nを聞かれてyを選択。
インストール完了しました!
[root@localhost ~]# php -v
PHP 5.4.11 (cli) (built: Jan 16 2013 16:51:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
やったー!!

(rpm --import、GPG Keyについての話題は今回割愛します。またどこかの機会で。)

参考

カテゴリ: