yum + i686からX86までのrpm間の依存関係を識別する方法

yum + i686からX86までのrpm間の依存関係を識別する方法

i686のすべてのrpmタイプを削除して削除を除外する方法X86_64は次のとおりです。

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

私たちがやりたいことはこうです。

i686以下を使用してrpmの取り外しを確認します。X86_64

  1. 依存関係がある場合、cliは「i686rpmを削除しないでください」を印刷します。

  2. i686rpmを削除する間に依存関係がない場合、cliX86_65は「rpmを安全に削除できます - i686」を印刷してから - コマンドを実行できます。yum remove '*.i686' -y

i686それでは、yumまたは他の手段を介してrpm間の依存関係を確認する方法について提案がありますか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を実行しているdnf場合yum

答え2

他の興味深い方法は次のとおりです。

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

これは、i686のrpmに基づいてx86_64rpmの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

関連情報