하나의 저장소에서 설치된 패키지를 제거하고 CentOS에서 다시 설치하시겠습니까?

하나의 저장소에서 설치된 패키지를 제거하고 CentOS에서 다시 설치하시겠습니까?

CentOS 업스트림 패키지를 재정의한 RPMfusion 패키지가 62개 있는데 이제 원래 CentOS 패키지로 돌아가고 싶습니다.

내가 생각할 수 있는 유일한 아이디어는

BAD_PACKAGES="name1 name2 ..."
echo $BAD_PACKAGES |xargs rpm -e --nodeps
echo $BAD_PACKAGES |xargs yum install

하지만 그렇게 하면 프로세스 중에 시스템이 손상된 상태가 됩니다.

질문

해당 패키지를 제거한 다음 CentOS 저장소에서 다시 설치하는 가장 안전한 방법은 무엇입니까?

답변1

당신은 할 수 있습니다업그레이드--oldpackage다음 옵션을 사용하여 이전 버전으로 rpm:

rpm -Uvh --oldpackage package-a.1.23.rpm

이것은 에 비해 훨씬 안전합니다 rpm -e --nodeps. 하나의 명령으로 여러 패키지를 업그레이드할 수 있으므로 종속성이 손상되지 않습니다.

답변2

다음은 효과가 있었지만 프로세스 중에 수많은 중요한 서비스가 중단되었기 때문에 무서웠습니다.

rpm -qa --queryformat "%{NAME}.%{ARCH} %-35{DISTRIBUTION}\n" | grep -i "rpm-fusion" | awk '{print $1}' > /root/list_arch
cat /root/list_arch | xargs rpm -e --nodeps 
cat /root/list_arch | xargs yum -y install

list_archrpm-fusion의 패키지 이름이 원래 CentOS 패키지 이름과 약간 다르기 때문에 약간 편집해야 했습니다.

yum나는 큰 보험이었던 rpm-fusion 패키지를 설치한 명령 의 출력을 받았습니다 .

관련 정보