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

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

我有 62 个来自 RPMfusion 的软件包已经覆盖了 CentOS 上游软件包,现在我想恢复到原始的 CentOS 软件包。

我唯一能想到的就是

BAD_PACKAGES="name1 name2 ..."
echo $BAD_PACKAGES |xargs rpm -e --nodeps
echo $BAD_PACKAGES |xargs yum install

但这会导致系统在此过程中处于崩溃状态。

问题

从 CentOS 的 repo 中删除这些软件包然后重新安装的最安全方法是什么?

答案1

你可以升级使用--oldpackage以下选项升级到旧版本rpm

rpm -Uvh --oldpackage package-a.1.23.rpm

这比 安全得多rpm -e --nodeps。您可以在一个命令中升级多个软件包,这样就不会破坏依赖关系。

答案2

这种方法虽然有效,但很可怕,因为它在此过程中破坏了大量关键服务。

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 软件包名称略有不同。

yum我获得了安装 rpm-fusion 包的命令的输出,这是一个很大的保险。

相关内容