我有一堆文件夹中的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
选项将重新安装已安装的软件包,并覆盖其他软件包中已安装的文件。 你通常不需要这个。
如果你告诉rpm
从某个目录安装所有的RPM,那么它就是这样做的。 rpm
不能忽略为安装列出的RPMs。 您必须从列表(或目录)手动删除不需要的RPM。
您可以删除旧的RPM, rpm
将解决与安装的RPM的较新版本的依赖关系。 但是,这只会工作,如果没有安装RPMs完全取决于旧版本。
如果您确实需要不同版本的RPM,那么RPM必须是可重新定位的 。 然后可以告诉rpm
将特定的RPM安装到不同的目录。 如果这些文件没有冲突,那么你可以安装不同版本的rpm -i
( zypper in
不能安装不同版本的RPM)。 我正在打包例如红宝石作为重定位RPM在工作。 所以我可以安装同一个gem的不同版本。
我不知道哪些文件与您的RPM冲突,但是如果它们全都是“正常”手册页,那么您可能只需用rpm -i --replacefiles
覆盖旧文件即可。 唯一的问题是,它可能会混淆正在阅读旧版网页的人,并认为它是针对实际版本的。 另一个问题是rpm --verify
命令。 如果旧的文件覆盖了一些文件,它会抱怨新的文件包。
这可能是https://serverfault.com/questions/522525/rpm-ignore-conflicts的重复?
尝试清新指令:
rpm -Fvh *.rpm
从上下文来看,冲突是由包的版本引起的。
我们来看看关于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
来解决您的问题。