#1.概要
CentOS6.5でyum updateをすると、エラーが「複製です」(日本語表示の場合)旨のエラーが発生。
その対策方法を記載します。
いくつかのまとめ記事はありますが、今回はAWKコマンドを使ってまとめて行えることがポイントです。
#2.エラーの発生
# yum update
読み込んだプラグイン:fastestmirror, langpacks, presto, refresh-packagekit
Loading mirror speeds from cached hostfile
(略)
問題を回避するために --skip-broken を用いることができません
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
glibc-2.14.90-24.fc16.4.x86_64 は glibc-2.14.90-21.x86_64 の複製です
glibc-2.14.90-24.fc16.4.x86_64 は次の要求が不足ています: glibc-common = ('0', '2.14.90', '24.fc16.4')
liberation-fonts-common-1.07.1-3.fc16.noarch は liberation-fonts-common-1.07.1-2.fc16.noarch の複製です
#
RPMデータベースに複数のバージョンのパッケージが存在し、それがアップデート障害の原因になっています。実害はないので、ダブったデータを削除します。
#3.削除する
LANG=Cで実行しないと"is a duplicate"の文字列がAWKで拾えません
# LANG=C yum check duplicates | awk '/is a duplicate/ {print $6}' > /tmp/DUPES
# cat /tmp/DUPES
glibc-2.14.90-21.x86_64
liberation-fonts-common-1.07.1-2.fc16.noarch
# yum remove `cat /tmp/DUPES`
読み込んだプラグイン:fastestmirror, langpacks, presto, refresh-packagekit
削除処理の設定をしています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package glibc.x86_64 0:2.14.90-21 will be 削除
---> Package liberation-fonts-common.noarch 0:1.07.1-2.fc16 will be 削除
--> 依存性解決を終了しました。
依存性を解決しました
==========================================================================================
パッケージ アーキテクチャ
バージョン リポジトリー 容量
==========================================================================================
削除:
glibc x86_64 2.14.90-21 @updates 13 M
liberation-fonts-common noarch 1.07.1-2.fc16 @fedora 54 k
トランザクションの要約
==========================================================================================
Remove 2 Packages
インストール済み容量: 13 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
トランザクションのチェックを実行してします。
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
削除中 : liberation-fonts-common-1.07.1-2.fc16.noarch 1/2
削除中 : glibc-2.14.90-21.x86_64 2/2
削除しました:
glibc.x86_64 0:2.14.90-21 liberation-fonts-common.noarch 0:1.07.1-2.fc16
完了しました!
#