![yum + 如何识别从 i686 到 X86 的 rpm 之间的依赖关系](https://linux22.com/image/179153/yum%20%2B%20%E5%A6%82%E4%BD%95%E8%AF%86%E5%88%AB%E4%BB%8E%20i686%20%E5%88%B0%20X86%20%E7%9A%84%20rpm%20%E4%B9%8B%E9%97%B4%E7%9A%84%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB.png)
删除i686所有rpm类型并排除删除的方法X86_64
如下
yum remove '*.i686' -x '*.x86_64'
我们想做的是像下面这样
验证删除 rpmi686
与X86_64
如果存在依赖关系,那么 cli 将打印“不要删除
i686
rpm”如果删除
i686
rpm 与 之间没有依赖关系X86_65
,则 cli 将打印“您可以安全地删除 rpm –i686
”,然后我们可以运行命令 -yum remove '*.i686' -y
那么有什么建议如何通过 yum 或其他方式检查i686
rpm之间的依赖关系X86_64
吗?如果没有依赖性,那么我们可以安全地删除 i686 rpm
答案1
i686
Fedora 和 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,您可以替换dnf
为yum
.
答案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