이름=packages-microsoft-com-prod인 여러 yum 저장소

이름=packages-microsoft-com-prod인 여러 yum 저장소

Amazon Linux 2 인스턴스 그룹에 다른 이름의 name=packages-microsoft-com-prod중복 인스턴스가 있습니다. yum repositories동일한 운영 체제에서 실행되는 다른 항목을 중단시키지 않고 동일한 패키지에 대한 중복 참조를 제거하는 안전한 방법은 무엇입니까?

grep으로 문제를 설명하는 방법은 다음과 같습니다.

[user-name@host-name ~]$ sudo grep name=packages-microsoft-com-prod /etc/yum.repos.d/*
/etc/yum.repos.d/microsoft-prod.repo:name=packages-microsoft-com-prod
/etc/yum.repos.d/msprod.repo:name=packages-microsoft-com-prod

패키지의 두 인스턴스로 인해 해당 인스턴스의 다른 프로그램에서 동일한 이름의 두 패키지 중 어느 패키지를 사용할지 알 수 없음을 나타내는 오류가 반환됩니다.

시도했지만 yum update문제가 지속됩니다. 중복 이름을 확인하고 중복이 없을 때까지 하나의 저장소를 삭제하기 위해 bash 스크립트를 작성할 수 있습니다. 그러나 저장소를 삭제하는 것이 시스템의 다른 곳에서 부수적인 손상을 일으킬 수 있는 해킹 접근 방식이 될 수 있다는 점이 걱정됩니다.


사용자 요청:

@JeffSchaller의 의견에 따라 상황을 자세히 설명하기 위해 다음 터미널 출력을 추가하고 있습니다.

[user-name@host-name ~]$ grep -c ^name= /etc/yum.repos.d/microsoft-prod.repo /etc/yum.repos.d/msprod.repo
/etc/yum.repos.d/microsoft-prod.repo:1
/etc/yum.repos.d/msprod.repo:1

[user-name@host-name ~]$ rpm -qf /etc/yum.repos.d/microsoft-prod.repo /etc/yum.repos.d/msprod.repo
packages-microsoft-prod-1.0-1.el7.noarch
file /etc/yum.repos.d/msprod.repo is not owned by any package

[user-name@host-name ~]$ sudo cat /etc/yum.repos.d/microsoft-prod.repo
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

[user-name@host-name ~]$ sudo cat /etc/yum.repos.d/msprod.repo
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

답변1

귀하가 시연한 상황을 고려하면 rm /etc/yum.repos.d/msprod.repo/etc/yum.repos.d/microsoft-prod.repo의 복제본이고 어떤 패키지에서도 소유하지 않기 때문에 그렇게 할 것입니다.

파일이 패키지 소유인지 여부를 프로그래밍 방식으로 확인하려면 다음의 반환 코드를 확인하세요 rpm.

if rpm -qf /the/file > /dev/null 2>&1
then
  : the file is owned by an RPM
else
  : the file is not owned by an RPM
fi

관련 정보