我有来自RPMfusion的62个软件包已经覆盖了CentOS上游软件包,现在我想回到最初的CentOS软件包。
我能想到的唯一的想法是
BAD_PACKAGES="name1 name2 ..." echo $BAD_PACKAGES |xargs rpm -e --nodeps echo $BAD_PACKAGES |xargs yum install
但是这会在整个过程中使系统处于故障状态。
题
什么是最安全的方式去除这些包,然后从CentOS的回购重新安装?
您可以使用rpm --oldpackage选项升级到较旧的版本:
rpm -Uvh --oldpackage package-a.1.23.rpm
这比rpm -e --nodeps更安全。 你可以在一个命令中升级几个软件包,这样就不会有错误的依赖关系。
以下的工作,但它是可怕的,因为它在这个过程中打破了吨的关键服务。
rpm -qa --queryformat "%{NAME}.%{ARCH} %-35{DISTRIBUTION}\n" | grep -i "rpm-fusion" | awk '{print $1}' > /root/list_arch cat /root/list_arch | xargs rpm -e --nodeps cat /root/list_arch | xargs yum -y install
list_arch rpm-fusion的软件包名称与原始的CentOS软件包名称稍有不同,因此list_arch必须稍微编辑一下。
我从yum命令的输出安装了rpm-fusion软件包,这是一个很大的保险。