外部リポジトリのパッケージとの競合問題とその解決策
- そもそも外につながってない時
Loading mirror speeds from cached hostfileの次の行あたりに、つながりません、みたいな表示が出る。
- 外部リポジトリとのコンフリクト
Processing Dependencyみたいに表示されて、外部リポジトリ名がいくつか見えて、インストールが完了しない。
私のところで起こっていたこととしては、remiレポジトリから入れたphpなどがデフォルトのレポジトリのphpよりも新しく、yum install mysql-serverをしたときに、入れられるmysqlのバージョンや、その依存関係のあるパッケージがすでに入れているphpなどのパッケージとは一緒にはうまく動かない、ということをyum側が判断してくれて、installするのを止めていたみたい。
-
- 対策1:不必要な外部リポジトリを削除
rpm -e remi-release
rpm -e rpmforge-release
-
- 対策2:コンフリクトしているパッケージの削除
rpm -qa | grep remi
*remiは適時、コンフリクトしている外部レポジトリ名に変えてください。
を実行すると、remiという単語が入った、rpmのパッケージが見つかる。
コンフリクトしてるパッケージを1つ1つ除去していく。
sudo yum remove compat-mysql51
*compat-mysql51は適時、さきほど表示されたrpmパッケージ名に変えてください。
-
- 予防
このような事態を避けるために、基本的にyum install するときには-yオプションをつけずに、どのパッケージがインストールされようとしているかをチェックする。
- 謝辞
某nmfproducer氏に感謝。