从一个回购中删除已安装的软件包并从CentOS重新安装?

我有来自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软件包,这是一个很大的保险。