如何在不清理快取的情況下讓 yum 查看本機儲存庫的更新?

如何在不清理快取的情況下讓 yum 查看本機儲存庫的更新?

我已經設定了一個本地 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 替換為您的儲存庫名稱

相關內容