Bash

yum + 如何辨識 rpm 從 i686 到 X86 之間的依賴關係

  • August 26, 2020

刪除所有 rpm 類型的 i686 並排除刪除的X86_64方法如下

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

我們想要做的,而不是像下面這樣

驗證刪除 rpmi686X86_64

  1. 如果存在依賴關係,則 cli 將列印“不要刪除i686rpm”
  2. i686如果刪除rpm 到之間沒有依賴關係X86_65,那麼 cli 將列印“you can safe to remove the rpm – i686”然後我們可以執行命令 –yum remove '*.i686' -y

所以有什麼建議如何通過 yum 或其他方式檢查i686rpm 到 rpm之間的依賴關係X86_64嗎?如果沒有依賴,那麼我們可以安全地移除 i686 rpm

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.

另一個有趣的方法是

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

引用自:https://unix.stackexchange.com/questions/606444