如何(暂时)阻止 yum / dnf 更新存储库?

如何(暂时)阻止 yum / dnf 更新存储库?

我有时会遇到一个问题,我只想搜索或安装一个小软件包,并且我的互联网连接非常有限(例如:国外偏远地区的移动数据)。由于更多的是紧急情况,我不介意使用缓存的存储库内容;上次更新是在一两周前。但dnf坚持下载几 MB 的元数据,这需要很长时间,而且我不想要,今天早些时候,我刚刚无法完成一个简单的任务搜索操作因此。我尝试离线运行该命令,但如果元数据不是最新的,它将拒绝运行。是否有一个选项强制命令使用旧数据,或者有一个配置条目来更改其被认为有效的时间段?

答案1

我知道这个问题有点老了(这个选项可能是新的)但这对我有用:

 -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可执行文件安装来破坏

答案2

如果您查看各种 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 为用户创建单独的缓存。

答案3

这不是暂时的,但它是可逆的。

sudo zypper modifyrepo --no-refresh --all

或者

sudo zypper modifyrepo --no-refresh --remote

当您有多余的数据时,您可以手动刷新

sudo zypper refresh

使用 GUI 时,这也会关闭存储库的刷新。

您还可以使用 YAST 中的“存储库”选项在 GUI 中控制它们,但这将进行刷新,除非在首次启动时已关闭。

相关内容