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을 제거하는 것 사이에 종속성이 없으면 cli X86_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_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

관련 정보