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

name=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

相關內容