我有 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 包的命令的输出,这是一个很大的保险。