仅通过禁用回购和yum更新即可从实验回购降级rpm软件包

时间:2018-10-17 08:48:14

标签: repository rpm rpm-spec

我有软件包Foo-2.0.rpm和Foo-2.3.rpm。前者通常由Linux发行版分发,但较旧。 Foo-2.3是最新版本,也是我正在制作的rpm。我正在编写.spec文件,现在,将其保存在自己的存储库中。

我认为-甚至我确实做到了-通过执行以下操作,可以将Foo-2.3替换为Foo-2.0(降级为稳定版):

yum-config-manager --disable myrepo
yum --update Foo

假设已安装Foo-2.3,则预期结果是将Foo-2.0替换为Foo-2.3。

但是,现在,它仅给我以下消息:

# yum update Foo
No packages marked for update

“百胜降级Foo”似乎是有效的命令。

为什么“ yum更新”无法按预期工作?是因为我的规格文件吗?还是只是不起作用?

在Foo的.spec文件中,Foo“提供:Foo-2.3”和“冲突:Foo <= 2.1”。我丢失了一些开发中的规范文件。尽管我认为禁用存储库和“ yum更新”将Foo降级,但我的记忆可能是错误的。

1 个答案:

答案 0 :(得分:0)

yum upgrade总是上升。在仓库中的是更高版本时,请升级。如果年龄较大,则什么都不做。它总是这样运作的。甚至rpm本身也是如此。但是对于rpm,您可以通过rpm -Uvh --force Foo-2.0.rpm的升级来强制降级。对于百胜没有办法。您必须使用downgrade命令。

您的规格文件中的顺便说一句应该是:

Provides: Foo-2.3
Obsoletes: Foo <= 2.1

但是在重命名程序包时通常需要这样做。我相信不是你的情况。