CentOS7上にて、yum updateを行った際に、「〜の複製です」とduplicateエラーにて更新出来ない状況に陥ったので、いろんな解決方法を試してみた。
# yum update
....
yum-utils-1.1.31-42.el7.noarch は yum-utils-1.1.31-40.el7.noarch の複製です
zsh-5.0.2-28.el7.x86_64 は zsh-5.0.2-25.el7_3.1.x86_64 の複製です
package-clenupで直す
package-cleanupで直らない場合
# LANG=C
# yum check duplicates | awk '/is a duplicate/ {print $6}' > /tmp/yum.dupes
# cat /tmp/yum.dupes
....
1:yelp-3.14.2-1.el7.x86_64
1:yelp-libs-3.14.2-1.el7.x86_64
yelp-xsl-3.14.0-1.el7.noarch
yum-plugin-fastestmirror-1.1.31-40.el7.noarch
yum-utils-1.1.31-40.el7.noarch
zsh-5.0.2-25.el7_3.1.x86_64
# yum remove `cat /tmp/DUPES`
別な方法
# yum-complete-transaction
# tar cjf /tmp/rpm_db.tar.bz2 /var/lib/{rpm,yum}
# yum check &> /tmp/yumcheck
# grep "duplicate" /tmp/yumcheck | awk '{ print $NF }' | egrep -v "\:" > /tmp/duplicaterpms
# grep "duplicate" /tmp/yumcheck | awk '{ print $NF }' | egrep ":" | awk -F':' '{ print $NF }' >> /tmp/duplicaterpms
# for i in $(cat /tmp/duplicaterpms)
do
rpm -e --justdb --nodeps $i
done
これで直った!