如何忽略rpm安装中的冲突

时间:2013-07-10 23:41:07

标签: linux unix rpm aix

我在一个文件夹中有一堆rpm文件。我正在尝试使用以下方法安装它们: rpm -ivh *.rpm所以rpm可以处理正确的安装顺序。

在其中一些rpms中,我在我的系统中安装了更新的版本,所以我得到了例子:

package info-5.0-1 (which is newer than info-4.13a-2) is already installed

/opt/freeware/man/man1/infokey.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1

有没有办法忽略旧的.rpm文件并使用已安装的新版本解决依赖关系?我想到了--force选项。但是--force如何解决冲突?用旧版本覆盖它们或者只是忽略它们离开新版本?

欢迎任何想法。

3 个答案:

答案 0 :(得分:21)

--force选项将重新安装已安装的软件包并覆盖其他软件包中已安装的文件。你不能正常地想要这个。

如果你告诉rpm从某个目录安装所有RPM,那么它就是这样做的。 rpm无法忽略为安装而列出的RPM。您必须从列表(或目录)中手动删除不需要的RPM。

您可以删除旧的RPM,rpm将使用较新版本的已安装RPM解决依赖关系。但是,如果没有安装的RPM完全取决于旧版本,这只会起作用。

如果您确实需要相同RPM的不同版本,则RPM必须为relocatable。然后,您可以告诉rpm将特定RPM安装到其他目​​录。如果文件没有冲突,那么您可以使用rpm -i安装不同的版本(zypper in无法安装相同RPM的不同版本)。我正在打包例如ruby gems作为可重新定位的RPM在工作。所以我可以安装相同gem的不同版本。

我不知道您的RPM存在冲突的文件,但如果所有这些文件都是"只是"手册页,那么你可能只需用rpm -i --replacefiles覆盖旧的页面。唯一的问题是,它可能会混淆正在阅读旧手册页并认为它是实际版本的人。另一个问题是rpm --verify命令。如果新包装已经覆盖了一些文件,它会抱怨新包装。

这可能是https://serverfault.com/questions/522525/rpm-ignore-conflicts的重复吗?

答案 1 :(得分:8)

尝试Freshen命令:

rpm -Fvh *.rpm

答案 2 :(得分:4)

从上下文来看,冲突是由包的版本引起的 我们来看看有关rpm

的手册
--force
    Same as using --replacepkgs, --replacefiles, and --oldpackage.

--oldpackage
    Allow an upgrade to replace a newer package with an older one.

因此,您可以执行命令rpm -Uvh info-4.13a-2.rpm --force来解决您的问题。