Cob*_*ojo 31 unix linux aix rpm
我在一个文件夹中有一堆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如何解决冲突?用旧版本覆盖它们还是忽略它们离开新版本?
欢迎任何想法.
xor*_*ves 23
该--force选项将重新安装已安装的软件包并覆盖其他软件包中已安装的文件.你通常不想这样.
如果你告诉rpm从某个目录安装所有RPM,那么它就是这样做的.rpm不能忽略列出的安装RPM.您必须从列表(或目录)中手动删除不需要的RPM.
您可以删除旧的RPM,并rpm使用较新版本的已安装RPM解决依赖关系.但这只会起作用,如果没有安装的RPM完全取决于旧版本.
如果您确实需要相同RPM的不同版本,则RPM必须是可重定位的.然后,您可以告诉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的副本吗?
小智 8
尝试Freshen命令:
rpm -Fvh *.rpm
Run Code Online (Sandbox Code Playgroud)
小智 7
从上下文来看,冲突是由程序包的版本引起的。
让我们看一下有关的手册rpm:
--force
Same as using --replacepkgs, --replacefiles, and --oldpackage.
--oldpackage
Allow an upgrade to replace a newer package with an older one.
Run Code Online (Sandbox Code Playgroud)
因此,您可以执行命令rpm -Uvh info-4.13a-2.rpm --force来解决问题。