トップページに戻る


CentOS 外部レポジトリの追加(Remi)
最終更新日:2013.3.30

注意:
外部レポジトリを導入すると上位ベンダーやCentOSとの互換性が失われる他、標準パッケージの構成では起こりえない問題が発生することがあります。個人の責に基づき導入するようにしてください。

比較的新しいphpパッケージをCentOS 5.5までのバージョンで使うには外部レポジトリを使うしかない。ここではRemiパッケージを導入して、標準レポジトリではインストールできないphpパッケージやMySQLなどをyumでインストールできるようにする。
なお、同時にパッケージの優先度を設定して、標準パッケージが外部レポジトリからダウンロードしたパッケージで上書きされないように設定する。

ポイント:
priorityは数字が小さいほど優先度が高くなり、priority=*とつけない場合、priority=99が内部的に設定される。

パッケージの優先度を設定

優先度を設定するyum-prioritiesを導入する。

# yum -y install yum-priorities
標準レポジトリを開いて、base/updatesに"priority=1"、それ以外には"prinrity=2"を追加する。

# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1
:
[updates]
priority=1
:
[addons]
priority=2
:
[extra]
priority=2
:
[centosplus]
enabled=1
priority=2
:
[contrib]
enabled=1
priority=2
:

remiの導入

■remiをwgetしてインストール(64ビット版CentOS 5の場合)

# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# rpm -ivh remi-release-5-9.el5.remi.noarch.rpm
■remiをwgetしてインストール(32ビット版CentOS 6の場合)
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -ivh remi-release-5-9.el5.remi.noarch.rpm

remiの初期設定

レポジトリを編集する(priority=1の追記/enable=0への変更)。

# vim /etc/yum.repos.d/remi.repo
[remi]
name=Les RPM de remi pour Enterprise Linux 5 - $basearch
baseurl=http://rpms.famillecollet.com/el5.$basearch/
http://iut-info.univ-reims.fr/remirpms/el5.$basearch/
enabled=0
priority=1
:
:

remiを使ったパッケージの導入

remiレポジトリを使ってパッケージをインストール(PHPのインストール例)

# yum --enablerepo=remi install php php-cli php-common php-mbstring

外部レポジトリパッケージの定期アップデート

cronを利用して外部レポジトリを使ってインストールしたパッケージを定期アップデートする。

実行するシェルを作成

# vim /root/update.sh
date;
yum --enablerepo=remi -y update php php-cli php-common php-mbstring;

# chmod +x /root/update.sh

crontabで実行する予定を入力する

# crontab -e
00 6 * * * sh /root/update.sh > /root/result.txt
※毎日6:00に/root/update.shに書いた内容が実行され、結果は/root/result.txtに書かれる。