matthew as a q.

競技プログラミングメイン

外部リポジトリのパッケージとの競合問題とその解決策

  • そもそも外につながってない時

Loading mirror speeds from cached hostfileの次の行あたりに、つながりません、みたいな表示が出る。

Processing Dependencyみたいに表示されて、外部リポジトリ名がいくつか見えて、インストールが完了しない。
私のところで起こっていたこととしては、remiレポジトリから入れたphpなどがデフォルトのレポジトリphpよりも新しく、yum install mysql-serverをしたときに、入れられるmysqlのバージョンや、その依存関係のあるパッケージがすでに入れているphpなどのパッケージとは一緒にはうまく動かない、ということをyum側が判断してくれて、installするのを止めていたみたい。

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氏に感謝。