Yum

如何刪除不存在的/Phantom Yum 儲存庫?

  • March 20, 2015

TL;DR …我正在用內部的公共 yum 儲存庫替換公共 yum 儲存庫,我無法弄清楚為什麼兩個公共儲存庫yum repolist在正常配置文件中沒有出現時繼續顯示在“”中。

我已經安裝了 Oracle Linux 7.1(與 RHEL 7.1 密切相關),並且正在將系統的 yum 儲存庫從公共儲存庫切換到我們內部的私有儲存庫。

Oracle Linux 7.1 附帶一個/etc/yum.repos.d/public-yum-ol7.repo包含多個 repos 的預設值,唯一啟用的兩個ol7_latestol7_UEKR3來自public-yum.oracle.com.

我刪除此文件並複制我自己的 .repo 文件…uswulnrepo01_ol7_latest.repouswulnrepo01_ol7_uekr3.repo​​. (uswulnrepo01是我們內部的 yum 儲存庫)。

完成此操作後,我使用“ yum clean all && yum repolist”進行驗證,以驗證僅顯示我的兩個儲存庫,它們確實如此。

問題是我最終得到了 4 個儲存庫……

[root@oel7template yum.repos.d]# yum repolist
Loaded plugins: langpacks, rhnplugin
This system is receiving updates from ULN.
repo id                           repo name                                                                               status
ol7_x86_64_UEKR3                  Unbreakable Enterprise Kernel Release 3 for Oracle Linux 7 (x86_64) - Latest              158
ol7_x86_64_latest                 Oracle Linux 7 Latest (x86_64)                                                          9,212
uswulnrepo01_ol7_UEKR3/x86_64     Unbreakable Enterprise Kernel Release 3 for Oracle Linux 7 (x86_64) - Latest              123
uswulnrepo01_ol7_latest/x86_64    Oracle Linux 7 Latest (x86_64)                                                          6,784
repolist: 16,277

我不知道從哪裡來ol7_x86_64_UEKR3ol7_x86_64_latest從哪裡來。當我嘗試獲取有關儲存庫的擴展資訊時(我已刪除不相關的數據)…

[root@oel7template yum.repos.d]# yum repolist -v
Looking for repo options for [main]
Looking for repo options for [ol7_x86_64_UEKR3]
Repo 'ol7_x86_64_UEKR3' setting option 'enabled' = '1'
Repo 'ol7_x86_64_UEKR3' setting option 'gpgcheck' = '1'
Repo 'ol7_x86_64_UEKR3' setting option 'timeout' = '120'
Looking for repo options for [ol7_x86_64_latest]
Repo 'ol7_x86_64_latest' setting option 'enabled' = '1'
Repo 'ol7_x86_64_latest' setting option 'gpgcheck' = '1'
Repo 'ol7_x86_64_latest' setting option 'timeout' = '120'

Repo-id      : ol7_x86_64_UEKR3
Repo-name    : Unbreakable Enterprise Kernel Release 3 for Oracle Linux 7 (x86_64) - Latest
Repo-baseurl : https://linux-update.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_UEKR3

Repo-id      : ol7_x86_64_latest
Repo-name    : Oracle Linux 7 Latest (x86_64)
Repo-baseurl : https://linux-update.oracle.com/XMLRPC/GET-REQ/ol7_x86_64_latest

Repo-id      : uswulnrepo01_ol7_UEKR3/x86_64
Repo-name    : Unbreakable Enterprise Kernel Release 3 for Oracle Linux 7 (x86_64) - Latest
Repo-baseurl : http://uswulnrepo01.[REDACTED]/yum/OracleLinux/OL7/UEKR3/x86_64/
Repo-filename: /etc/yum.repos.d/uswulnrepo01_ol7_uekr3.repo

Repo-id      : uswulnrepo01_ol7_latest/x86_64
Repo-name    : Oracle Linux 7 Latest (x86_64)
Repo-baseurl : http://uswulnrepo01.[REDACTED]/yum/OracleLinux/OL7/latest/x86_64/
Repo-filename: /etc/yum.repos.d/uswulnrepo01_ol7_latest.repo

repolist: 13,799

注意前兩個不需要的linux-update.oracle.com條目沒有Repo-filename值,也不匹配public-yum.oracle.com預設值public-yum-ol6.repo

我已經嘗試了一切來刪除這些條目,但我不知道如何。我查看了其他 yum 配置文件,對/etc/目錄進行了一些內容搜尋,但找不到任何相關內容。我什至刪除了/var/cache/yum/. 之後當我執行“ yum repolist”時,公共 yum 文件夾會重新出現。

我懷疑 yum 本身是由 Oracle 修改的,所以這些 repos 必須在某個配置文件中……我怎樣才能弄清楚在哪裡?有沒有列出 yum 讀取的所有配置文件的命令?

編輯

我創建了一個新的配置文件“ /etc/yum.repos.d/ol7_x86_64_UEKR3.repo”作為永久禁用 repo 的嘗試:

[ol7_x86_64_UEKR3]
name=Unbreakable Enterprise Kernel Release 3 for Oracle Linux 7 (x86_64) - Latest
enabled=0

我收到一個新錯誤(再次刪除了不必要的資訊):

[root@oel7template yum.repos.d]# yum repolist -v
Looking for repo options for [main]
Looking for repo options for [ol7_x86_64_UEKR3]
Repo 'ol7_x86_64_UEKR3' setting option 'enabled' = '1'
Repo 'ol7_x86_64_UEKR3' setting option 'gpgcheck' = '1'
Repo 'ol7_x86_64_UEKR3' setting option 'timeout' = '120'
Repository ol7_x86_64_UEKR3 is listed more than once in the configuration

對我來說,這強化了這個設置在某個配置文件中的想法……但是我如何找到它呢?

編輯/etc/yum/pluginconf.d/rhnplugin.conf

並設置:

[ol7_x86_64_UEKR3]
enabled=0

[ol7_x86_64_latest]
enabled=0

引用自:https://serverfault.com/questions/677114