我已經設定了一個本地 yum 儲存庫,用於安裝測試版本。出於測試目的,我的軟體包由<svn version number>.<date>.<time>
(例如12345.20110908.150404
問題是,一旦我創建了一個新的 RPM,將其複製到儲存庫目錄並運行createrepo $REPO_DIR
,yum 就看不到新的 RPM 可用。
$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm
$ createrepo .
# ...snip...
$ rpm -q package
package-12345.20110908.150404-1.x86_64
$ yum list --showduplicates package
Installed Packages
package.x86_64 12345.20110908.150404-1 @repo
Available Packages
package.x86_64 12345.20110908.150404-1 repo
如果我運行然後重新獲取元數據,我可以看到更新並獲取它們yum clean all
,但我認為這只是意味著我需要從存儲庫中執行其他操作,因為我不必為其他 yum 存儲庫執行此操作。
我需要如何設定我的本機儲存庫,以便我只需yum update
要從客戶端運行而無需清理我的 yum 快取?
答案1
您可以執行“yum clean expire-cache”,這是告訴 yum 檢查儲存庫的更有效方法。 ……另一件事要做的是更改本地儲存庫的metadata_expire 值。 (參見 man yum.conf)。
答案2
嘗試在 Yum 用戶端上的 /etc/yum.conf 中新增以下行:
元資料過期=1m
以下命令顯示更多資訊:
人 yum.conf
供參考。 CentOS 5 已將該參數註解掉。 CentOS 6.2 的值為 90m。
答案3
yum clean metadata
僅清理快取的名稱等,之後 yum 重新載入可用內容的想法。
答案4
yum 的 --enablerepo=localrpmrepo 是您想要的選項。所以
yum --enablerepo=localrpmrepo clean metadata
將 localrpmrepo 替換為您的儲存庫名稱