yum 安装包而不更新其他包或失败...?

Cli*_*est 11 yum

有没有办法告诉yum安装一个包,选择当前安装的依赖项会满足的那个包的版本?

例如,如果我正在安装 pecl 软件包并且我目前已经安装了php-5.4.11但有更新php-5.4.14的可用。而不是安装新包(并将所有 php 包更新到 5.4.14),我只是希望它选择我要求安装的旧版本包而不更新所有其他包(如果无法完成,则失败)。

这是一个特定情况,我知道我可以排除或修复 php 包,但我正在寻找适用于任何安装的通用选项。

就像是:

yum install php-pecl-xxxx --no-updates
Run Code Online (Sandbox Code Playgroud)

Shu*_*ary 11

临时解决方案:

使用-C标志:

sudo yum install foobar -C
Run Code Online (Sandbox Code Playgroud)

永久解决方案:

使用yum.conf 中metadata_expire标志来控制它。

编辑/etc/yum.conf和设置

metadata_expire=15d
Run Code Online (Sandbox Code Playgroud)

您可以使用d、h 或 m天、小时或分钟为单位配置时间。

奖励:这里是文档:

metadata_expire 是元数据过期的时间(以秒为单位)。因此,如果当前下载的元数据小于这么多秒,那么 yum 将不会针对存储库更新元数据。如果您发现 yum 下载更新信息的频率不高,请降低此选项的值。您还可以通过分别附加 ad、h 或 m,从默认使用秒更改为使用天、小时或分钟。默认为 6 小时,以配合每小时运行一次的 yum-updatesd。也可以使用“从不”一词,这意味着元数据永远不会过期。请注意,使用 metalink 文件时,metalink 必须始终比存储库的元数据更新,由于验证,因此此超时也适用于 metalink 文件。另请注意,“从不”不会覆盖“yum clean expire-cache”