yum 安装 rpm 但保留旧版本

yum 安装 rpm 但保留旧版本

我有两个 rpm 文件,每个文件包含不同版本的 Java SDK。我想安装两者,所以我安装了一个,然后安装了另一个,但是当我安装最新的一个时,它覆盖了旧的:

$ ls ./ibm-java*
./ibm-java-x86_64-sdk-6.0-16.15.x86_64.rpm
./ibm-java-x86_64-sdk-8.0-2.0.x86_64.rpm

$ sudo yum install ibm-java-x86_64-sdk-6.0-16.15.x86_64.rpm
...
$ ls /opt/ibm/
java-x86_64-60
$ sudo yum install ibm-java-x86_64-sdk-8.0-2.0.x86_64.rpm 
...
$ ls /opt/ibm/
java-x86_64-80

有没有办法同时安装两者?我查看了 yum 的选项,但没有看到任何相关内容。

答案1

正如评论中所述,两个包可能使用相同的路径。例如,Java 包通常会安装(除了文件/usr/bin)到实际文件的符号链接。您可以/usr/bin通过某些方式在 , 或(取决于系统)中明确找到这些内容备择方案目录,例如/etc/alternatives.

即使没有明确的冲突,打包者也可能选择将某些旧版本视为过时,并使某人很难保留旧版本。

您始终可以在安装较新的软件包之前对较旧的目录内容进行 tar,然后在安装较新的软件包后恢复它(当yum删除较旧的软件包时)。如果您这样做,yum将不知道旧版本,并且您可以执行任何允许应用程序使用该版本所需的操作,例如,PATH针对特定应用程序进行设置。

答案2

这个问题很老了,但可能位于搜索结果的顶部,因此我可以为像我这样搜索此问题的其他人提供有效的答案:

yum install --setopt=installonlypkgs=jdk1.8 jdk1.8

或者,可以使用此选项将“provides”永久包含在 yum.conf 中。使用此参数时应小心 - 不确定设置它是否会显式禁用默认情况下对内核包使用此选项,因此可能会无意中对同时安装的内核包禁用此选项...

相关内容