Dnf

如何(暫時)防止 yum / dnf 更新儲存庫?

  • September 16, 2019

我有時會遇到一個問題,我只想搜尋或安裝一個小包,而且我的網際網路連接非常有限(比如:國外偏遠地區的移動數據)。作為緊急情況,我不介意使用記憶體的儲存庫內容;最後一次更新應該是一兩個星期前。然而,dnf我堅持要下載幾 MB 的元數據,這需要很長時間,而且我不想要,而今天早些時候,我剛好因此而無法完成簡單的搜尋操作。我嘗試離線執行命令,但如果元數據不是最新的,它會拒絕執行。是否有強制命令使用舊數據的選項,或配置條目來更改被認為有效的期限?

如果您查看各種 dnf 和 yum repo 配置文件,您應該會發現幾個明確的元數據到期時間,例如:

/etc/yum.repos.d/fedora-updates.repo
 metadata_expire=6h

/etc/dnf/dnf.conf
 metadata_expire=86400

dnf您可以在命令行上使用覆蓋這些--setopt=,但您必須為每個啟用的儲存庫以及 dnf 主配置顯式執行此操作。所以你最終會得到類似的東西

sudo dnf --setopt=metadata_expire=-1 \
--setopt=fedora.metadata_expire=-1 \
--setopt=fedora-update.metadata_expire=-1 \
--setopt=rpmfusion-free.metadata_expire=-1 \
search abcdef

請注意使用 sudo 以避免 dnf 為使用者創建單獨的記憶體。

我知道這個問題有點老了(而且這個選項可能是新的)但這對我有用:

-C, --cacheonly
             Run entirely from system cache, don't update the cache and use it even in case it is expired.

所以dnf -C install ...為我工作

ps 在我的情況下,我正在安裝我在其他地方下載並通過sneakernet 傳輸的RPM,因為我的網路被破壞了,我不想dnf通過直接安裝rpm執行檔來破壞

引用自:https://unix.stackexchange.com/questions/338123