yum 無法在私人倉庫中找到特定的包

yum 無法在私人倉庫中找到特定的包

我有一個非常奇怪的問題。我已經設定了我的私人 yum 儲存庫,它提供的 rpm 很好,除了 1 rpm。

假設我已經建立並複製了所有 rpm 到我的自訂儲存庫目錄,大致如下:

postgresql-myStuff11-11.7-2.el8.x86_64.rpm
postgresql-myStuff11-libs-11.7-2.el8.x86_64.rpm
postgresql-myStuff11-devel.7-2.el8.x86_64.rpm
postgresql-myStuff11-docs-11.7-2.el8.x86_64.rpm
...

所有這些都在那裡,我已經清除了我的 yum 緩存,使用重建我的 yum 存儲庫,createrepo --update甚至刪除整個repodata資料夾並重新創建它等yum search myStuff

它只會傳回除主包之外的所有其他內容。

Searching Packages:
==========================================================================================
Name Matched: myStuff11
==========================================================================================
postgresql-myStuff11-libs.x86_64 : The shared libraries required for any PostgreSQL clients
Repo        : @System
Matched from:
Provide    : postgresql-myStuff11-libs = 11.7-2.el8
...

起初,我認為這可能是因為Name:我的規範文件內部使用了定義的變量,但即使在我將其更改為字串之後,它仍然是完全相同的東西...

問題:

  • 你如何才能yum看到包裹postgresql-myStuff11-11.7-2.el8.x86_64.rpm

答案1

無論出於何種原因,我必須createrepo使用資料庫 ( -d) 標誌。這是我為了讓它工作/顯示我的包所做的事情。

  1. 轉到您的 YUM 儲存庫資料夾,例如:cd /opt/myrepo
  2. rm -rf repodata,把它擦乾淨
  3. 重新建立儲存庫,但使用資料庫,,createrepo -v -d .(其中./opt/myrepo

然後,您可以在遠端電腦上運行yum update --refresh以獲取新的變更。

如果沒有該-d標誌,它無法列出/顯示我建造的所有包,我不知道為什麼。環境位於 RHEL 8 系統中,因此這可能(也可能不是)特定於createrepo.

createrepo --version
Version: 0.17.7 (Features: DeltaRPM LegacyWeakdeps )

相關內容