所以场景如下:我有一些系统,我从CI服务器下载构建并安装它们。这些构建是未发布的构建,但命名约定中有一个时间戳来确定较新的构建。所以我安装了其中一个版本,测试它,很棒。
好吧,在某些时候,我想回到我们当地的yum回购中我们实际发布的版本。但是,如果我做yum install -y somepackage
,安装会说它试图下载的版本已被我安装的这个未发布的版本淘汰。
我想知道的是,如果有一种方法可以强制yum安装构建,即使它已被当前安装的版本淘汰,或者我将被迫在yum安装已发布版本之前删除已安装的版本?
我不介意做后者,但前者是一个更好的解决方案,因为一些依赖于这个RPM的高可用性组件会在它丢失时抱怨,所以我想知道它是否可能。
提前谢谢!
yum update-to <package-name>
yum downgrade somepackage
此外,在类似情况下,yum history
下的命令可能对您有所帮助。
是的,您可以使用downgrade
子命令安装较旧的可用版本(已安装的软件包):
yum -y downgrade mypackage-1.2.3-4
请注意,您必须明确指定要降级到的程序包的版本/发行版。
yum后继者dnf
也可以使用此命令。
我一直在寻找解决方案。这是 - 遗憾的是 - 我能找到的唯一解决方法:
pkg=package-1.2.3-0
yum -y downgrade $pkg
yum -y install $pkg
这些命令将导致您安装确切的版本;降级或升级时。
使用RPM,您可以执行以下操作:
$ rpm -Uvh --oldpackage pkg1.rpm pkg2.rpm
摘自rpm手册页
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
This upgrades or installs the package currently installed to a newer
version. This is the same as install, except all other version(s) of the
package are removed after the new package is installed.
--oldpackage
Allow an upgrade to replace a newer package with an older one.
只需从rpm获取所有依赖项并安装即可。