
我有一個非常奇怪的問題。我已經設定了我的私人 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
) 標誌。這是我為了讓它工作/顯示我的包所做的事情。
- 轉到您的 YUM 儲存庫資料夾,例如:
cd /opt/myrepo
rm -rf repodata
,把它擦乾淨- 重新建立儲存庫,但使用資料庫,,
createrepo -v -d .
(其中.
是/opt/myrepo
)
然後,您可以在遠端電腦上運行yum update --refresh
以獲取新的變更。
如果沒有該-d
標誌,它無法列出/顯示我建造的所有包,我不知道為什麼。環境位於 RHEL 8 系統中,因此這可能(也可能不是)特定於createrepo
.
createrepo --version
Version: 0.17.7 (Features: DeltaRPM LegacyWeakdeps )