dotdebのmysql-clientでwheezyへアップグレードでのトラブル
5月4日にリリースされたWheezyですが、アップグレード絡みでトラブルにあったのでその話を。
まず最初にこの話は dotdebのmysql-clientを入れている場合に発生するようです。他での場合に参考になるかもしれませんが、それ以外の責はご容赦ください。
ちなみに vagrant box 作成のエントリも修正したので、vagrant
絡みはそちらを参照ください。
エラーの内容
source.list
をsqueeze
からwheezy
へ書き換えapt-get update
を行ったあと、apt-get upgrade
を実行すると以下のログが表示されて強制終了する。
Preparing to replace mysql-client-5.5 5.5.30-1~dotdeb.0 (using .../mysql-client-5.5_5.5.30+dfsg-1.1_amd64.deb) ...
Unpacking replacement mysql-client-5.5 ...
dpkg: error processing /var/cache/apt/archives/mysql-client-5.5_5.5.30+dfsg-1.1_amd64.deb (--unpack):
trying to overwrite '/usr/share/man/man1/mysqlcheck.1.gz', which is also in package mysql-client-core-5.5 5.5.30-1~dotdeb.0
configured to not write apport reports
dpkg-deb: subprocess paste killed by signal (Broken pipe)
~snip~
Errors were encountered while processing:
/var/cache/apt/archives/mysql-client-5.5_5.5.30+dfsg-1.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
詳細なログはここに。
解決方法
上記の状態になってしまった場合には以下のコマンドで強制上書きでインストールを終了する。 この情報はdotdebの中の人に教えてもらった
apt-get -f install -o Dpkg::Options::=”–force-overwrite”
そして競合となったパッケージ mysql-client-core-5.5
を削除する。これを削除すると何故か自動でwheezy
のmysql-client-5.5
が上書きでインストールされる。
apt-get remove mysql-client-core-5.5
その後は apt-get dist-upgrade
でアップグレードを続行すればOKだが、念のために apt-get upgrade
を再度実行したほうがいいかもしれない。