Um grupo de instâncias do Amazon Linux 2 possui instâncias duplicadas
name=packages-microsoft-com-prod
redundantesyum repositories
com nomes diferentes. Qual é uma maneira segura de remover as referências duplicadas ao mesmo pacote sem causar a quebra de outras coisas executadas no mesmo sistema operacional?
Aqui está como o problema é ilustrado por um 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
As duas instâncias do pacote estão fazendo com que outros programas nas instâncias retornem erros indicando que não sabem qual dos dois pacotes com nomes idênticos usar.
Tentei yum update
, mas o problema persiste. Eu poderia escrever algum script bash para verificar nomes duplicados e excluir um repositório até que não haja duplicatas. Mas estou preocupado que a exclusão de repositórios possa ser uma abordagem de hack que possa causar danos colaterais em outras partes das máquinas.
Solicitações do usuário:
De acordo com o comentário de @JeffSchaller, estou adicionando a seguinte saída de terminal para elaborar a situação:
[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
Responder1
Dada a situação que você demonstrou, eu o faria rm /etc/yum.repos.d/msprod.repo
, pois é uma duplicata de /etc/yum.repos.d/microsoft-prod.repo e também não pertence a nenhum pacote.
Para determinar programaticamente se um arquivo pertence a um pacote, verifique o código de retorno de 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