Oba-Q's Free Space >  サーバーネットワーク > yumにやられました。。。

yumにやられました。。。

今回使用した予備機はにCentOS7をインストールし
ある程度の設定をしておいたのは2年前なので
何をどこまでやったかも忘れていましたが、
yum(パーッケージ管理)コマンドでupdateしようとしたら、
何故か重複だの衝突だのとエラーで騒がしく、まったく
更新できません。。。
何百ものバージョン違いの同名パッケージが重複しています。
衝突は依存性のあるパッケージのバージョン違いです。
yum clean でパッケージやキャッシュのデータを
クリアしデータベースをリビルドしてみてもダメ。
リポジトリをBASEだけにしてみてもダメ・・・

rpm -q パッケージ名

または

yum list | grep パッケージ名

で調べると

パッケージ名+新しいバージョン
パッケージ名+一つ前のバージョン

の2つが出てきてしまいます。

rpm -e --nodeps --allmatches --justdb パッケージ名

で古い方を削除できますが、何百は大変なので

rpm -e --nodeps --allmatches --justdb *

と危険をかえりみずワイルドカードも使ってみましたが
複合的な不具合なのでそこに至るまでの途中でエラー
となり止まってしまいました。
ダメなやつをスキップしてくれるオプション
--skip-broken もご利益がありませんでした。

こいつは同じBASEのリポジトリのbaseとupdaterの衝突なので、
片方をenabled=0で無効にしてみましたがダメですねぇ。
スキルのある方なら一発で解消する奥の手を持っている
かもしれませんが、拙生には手前に付いている粗末な手しか
ありませんので、なんとか手動で解決させるしかありません。

衝突はこんな感じです。

avahi-gobject conflicts with avahi-0.6.31-17.el7.x86_64

rpm -q などでインストールされているavahi-gobjectとavahiの
バージョンを調べて、古い方を一旦 yum remove か rpm -e
コマンドで削除してインストールし直します。
依存性が重要または多数のパッケージに渡るのでなければ
両方をを削除して再インストールするほうが無難でしょう。

衝突は15個くらいだったので手動で解決させてその後
ワイルドカードで古いのを全部ぶち消してアップデート
してみたら無事出来ちゃいました。(疲;;
他のリポジトリもソォっと戻してみましたが大丈夫なようです。

う〜ん、こんなところに時間を喰うとは思いも
しませんでした。。。

ついでに以前友人がハマったというやつも
書いておきます。
と言うのもmysqlも重複していたので古いバージョンを
ぶち消したら、ブログツールのWordpressが
データベース接続エラーになってしまいました。^^;;
で、新しいバージョンと関連付けする作業を
行いましたが、Wordpressはバックアップしてある
mysqlのデータベースから復旧させるのですが、
ちょっとしたコツというか順番があります。
ここにハマるのも珍しいと思いますが。(笑

不正解のやりかた
pubulic_html等のweb公開スペースにバックアップ
してあるファイルを上げ直した場合、
wp-config.phpには以前のデータベース名や
ユーザー・パスワードが書き込まれているので、
mysqlで同じパスワードで同名のユーザーを作成し、
更にそのユーザーで同名のデータベースを作って
そこにバックアップしてあるファイルを流しこめば
OK・・・とはいかないんですねぇ。

正しいやり方
mysqlで使用するデータベースを新たに作成した後、
wp-config.phpをリネームするなり葬るなどして
http(s)://hosutoname/wp-admin/install.php
にアクセスして新たに登録しなくてはいけません。
登録した後からデータベースにバックアップファイルを
流し込んでmysqldをリロードするのが正しい順番です。

 勿論SQL文でバックアップをとっている場合などは
 そこからリストアできますが、mysqlのバージョンが
 異なると失敗することもあります。

yumのお陰ですでに稼働していたものも上記のように
古いバージョンで稼働していたことも考えられるので
再検証しなくてはいけないようです。(泣

This entry was posted in サーバーネットワーク. Bookmark the permalink.

Comments are closed.