Rhel

名稱=packages-microsoft-com-prod 的多個 yum 儲存庫

  • May 31, 2019

一組 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 腳本來檢查重複名稱並刪除一個 repo,直到沒有重複。但我擔心刪除回購可能是一種黑客方法,可能會在機器的其他地方造成附帶損害。


使用者要求:


根據@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

鑑於您展示的情況,我會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

引用自:https://unix.stackexchange.com/questions/522190