現象
remi-php70 リポジトリを使っている CentOS 6 の環境で PHP関連のパッケージを更新しようと思い、以下のコマンドを実行しました。
$ sudo yum update --enablerepo=remi-php70
すると、以下のエラーが発生しました。
この中に、
Requires: php-common(x86-64) = 7.0.11-1.el6.remi
とあり、バージョン 7.0.11 の php-common パッケージを必要としていることが分かりますが、実は、このパッケージは remi-php70 リポジトリにあることが分かっています(php-common – Common files for PHP)。
しかし、Available のところを見ると base リポジトリと updates リポジトリの情報しか表示されていません。
この場合の解決方法を3つ説明します。
解決方法 その1
base リポジトリと updates リポジトリを無効にして、yum update します。
$ sudo yum update --enablerepo=remi-php70 --disablerepo=base,updates
解決方法 その2
/etc/yum.repos.d/remi-php70.repo
ファイル内の [remi-php70]
のところに 以下を追記して remi-php70 リポジトリの優先度を上げます。
priority=1
その後、yum update を実行します。
解決方法 その3
baseリポジトリと updatesリポジトリ内の php関連パッケージを使わないよう設定します。
/etc/yum.repos.d/CentOS-Base.repo
ファイル内の [base]
と [updates]
の両方に以下を追記します。
exclude=php*
その後、yum update を実行します。
まとめ
remi-php70 のようなリポジトリから PHPを導入して使うのであれば、最初から「解決方法 その3」をやっておくのがスマートなやり方だったように思いました。