yum + 如何识别从 i686 到 X86 的 rpm 之间的依赖关系

yum + 如何识别从 i686 到 X86 的 rpm 之间的依赖关系

删除i686所有rpm类型并排除删除的方法X86_64如下

yum remove '*.i686' -x '*.x86_64'

我们想做的是像下面这样

验证删除 rpmi686X86_64

  1. 如果存在依赖关系,那么 cli 将打印“不要删除i686rpm”

  2. 如果删除i686rpm 与 之间没有依赖关系X86_65,则 cli 将打印“您可以安全地删除 rpm – i686”,然后我们可以运行命令 -yum remove '*.i686' -y

那么有什么建议如何通过 yum 或其他方式检查i686rpm之间的依赖关系X86_64吗?如果没有依赖性,那么我们可以安全地删除 i686 rpm

答案1

i686Fedora 和 RHEL/CentOS 中的软件包之间是零依赖关系x86_64- 但对于所有其他 Linux 发行版来说,情况并非如此。

您可以安全地删除所有i686包 -x86_64包不会受到影响。

在 Fedora 32 上:

# dnf remove --assumeno --setopt=clean_requirements_on_remove=0 \
    $(rpm -qa | grep i686) | grep x86_64 | wc -l
Operation aborted.
0
# rpm -qa | grep i686 | wc -l 
163

如果您运行的是 CentOS,您可以替换dnfyum.

答案2

其他有趣的方法是

yum --assumeno --disablerepo='*'  remove *i686 | grep  x86_64 | wc -l

这将捕获与 i686 的 rpm 相关的 x86_64 rpm 的 rpm 数

或者

yum --assumeno --disablerepo='*'  remove *i686 | grep -iq x86_64
if [[ $? -eq 0 ]]
then
echo "rpm of x86_64 rpm's are in dependencies with rpm of i686"
fi

相关内容