![](/img/trans.png)
[英]rpm yum install : how to put conflicts on an already installed package?
[英]yum downgrade does not remove new package
第 1 版包含以下软件包
Package A-1.0
Package B-1.0
第 2 版包含以下软件包
Package A-2.0
Package B-2.0
Package C-2.0
在第 2 版中, Package B-1.0
被拆分为两个包 - package B-2.0
和package C-2.0
。
现在安装第 2 版后,如何降级到第 1 版?
yum downgrade AB
尝试安装与package C-2.0
有文件冲突的package B-1.0
。
yum downgrade ABC
不起作用,因为Package C
没有旧版本。
是否有一个命令可以删除新包( package C-2.0
)并降级包 A 和 B?
如果升级了几个软件包,然后只想降级这两个软件包,则无法完成。 不只使用yum(除非使用--nodeps和临时中断deps)。 像RH Satellite这样的高级工具可以做到这一点。
如果仅升级独立事务中的事务,则可以运行:
yum history list
yum history undo <ID>
要么
yum history undo last
它将回滚该事务。 即在您的情况下,将那些软件包降级。 有关历史命令的详细信息,请参见yum的手册页。
可能已经为时已晚,因为您已经发布了A-2.0和B-2.0软件包,但是您应该做的事情(如果您可以删除A-2.0和B-2.0软件包,仍然可以这样做):
在规格文件A-2.0和B-2.0中添加: Requires: C
您搜索(还有更多)有多个优点:
然而:
我为项目使用了另一种选择 :我使用了meta-package :
(并且我使用的分支带有不稳定的meta-package,准备下一个版本:meta-package:需要A,B)
在单个事务中执行所有操作之前,可以使用yum shell编写多个操作。
您可以使用以下方法:
yum shell
yum downgrade A B
yum remove C
run
您只需要使用在执行之前的 yum 命令时引用的 repo。
yum 历史撤消 <yum_history_id> --enablerepo=<yum_repo>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.