CentOS6 で remi から php や mysql をインストールするための yum の設定
epel リポジトリを追加します(remi-release-6 が依存している)。
rpm --import http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/RPM-GPG-KEY-EPEL-6
rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-7.noarch.rpm
remi リポジトリを追加します。
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum リポジトリにプライオリティを指定するためのプラグインをインストールします(方法その1では不要)。
yum install yum-plugin-priorities
方法1 remi はデフォルト無効、インストール時だけ有効に
色々なサイトやブログで見かける方法ですが、remi リポジトリをデフォルトでは無効にしておいて、php と mysql のインストール時だけコマンドラインオプションで有効にします。
/etc/yum.repos.d/remi.repo
※デフォルトで無効だったと思います。
[remi]
:
enabled=0
:
コマンドラインで remi を有効にして php と mysql をインストール(あるいはアップデート)します。
yum --enablerepo=remi install php mysql-server
yum --enablerepo=remi update php mysql-server
この方法だと yum update
では php や mysql がアップデートされません。
かといって yum --enablerepo=remi update
すると関係無いパッケージまで remi のパッケージで上書きされてしまいます。
方法2 標準リポジトリの優先度を remi より高く
/etc/yum.repos.d/CentOS-Base.repo
標準リポジトリのプライオリティを 10 にします(未指定のデフォルトは 99)。そして、php と mysql 関連のパッケージを標準リポジトリから除外します。
[base]
priority=10
exclude=php* mysql*
:
[updates]
priority=10
exclude=php* mysql*
:
[extras]
priority=10
:
/etc/yum.repos.d/remi.repo
remi リポジトリを有効にします。有効にしても優先度が低いので重複するパッケージは標準リポジトリが使われます(php と mysql 関連を除く)。
[remi]
:
enabled=1
:
インストールなりアップデートなりします。
yum install php mysql-server
yum update
方法3 remi を最優先、ただし php と mysql に限る
標準リポジトリのプライオリティはデフォルトのままで、remi リポジトリのプライオリティを高くして最優先にします。
さらに、remi リポジトリからは php と mysql 関連だけのパッケージをインストールするように設定します。
/etc/yum.repos.d/remi.repo
enabled=1
priority=10
includepkgs=php* mysql*
インストールなりアップデートなりします。
yum install php mysql-server
yum update
この状態で remi から php と mysql 以外のパッケージをインストールする場合は、次のように includepkgs を無効化します。
yum --setopt remi.includepkgs= install hogehoge