이름이 다른
name=packages-microsoft-com-prod
중복 인스턴스가 있는 Amazon Linux 2 인스턴스 세트입니다.yum repositories
동일한 OS에서 실행 중인 다른 항목을 중단하지 않고 동일한 패키지에 대한 중복 참조를 제거하는 안전한 방법이 있습니까?
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