繁体   English   中英

yum 降级不删除新包

[英]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.0package 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

您搜索(还有更多)有多个优点:

  • 当更新A和/或B时; C将被自动安装。
  • 卸载CA和B时将降级。

然而:

  • 降级A和B时; C将不会被卸载。

我为项目使用了一种选择 :我使用了meta-package

  • meta-package-1.0:要求A-1.0,B-1.0,冲突C
  • meta-package-2.0:需要A-2.0,B-2.0,C-2.0

(并且我使用的分支带有不稳定的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM