yum 可以在安装新包之前强制卸载一个过时的包吗?

Can yum be forced to uninstall an obsolete package before installing the new package?

用例是这样的:

我已经安装了 PkgA。

现在我创建了 PkgB,它废弃了 PkgA。

在这种情况下:yum install PkgB 将执行以下操作:

  1. 安装 PkgB
  2. 卸载 PkgA

问题是 PkgA 有一个错误,它在卸载时删除了一个文件夹,其中包含 PkgB 安装的文件。我无法更改此文件的位置,因为它们是向后兼容性所必需的。

有没有办法强制 yum 先卸载 PkgA,然后再安装 PkgB?

我正在使用 CentOS Linux 7.2.1511 版(核心版)

Yum 和 RPM 版本:

# yum --version

3.4.3

已安装:rpm-4.11.3-17.el7.x86_64 于 2017 年 6 月 12 日 21:14

已安装:yum-3.4.3-132.el7.centos.0.1.noarch 于 2017 年 6 月 12 日 21:14

已安装:yum-plugin-fastestmirror-1.1.31-34。el7.noarch 于 2017 年 6 月 12 日 21:14

这应该有效。但是我没试过:

yum swap -- remove pkgA -- install pkgB

否则只是

rpm -e --nodeps pkgA && yum install pkgdB

如果有依赖pkgA的东西。否则你可以省略 --nodeps.