rpm --upgrade 不升级?

rpm --upgrade 不升级?

有人能帮我理解 rpm 命令吗?摘自 rpm 手册页:

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

This upgrades or installs the package currently installed to a newer version.
This is the same as install, except all other version(s) of the package are
removed after the new package is installed.

我的理解是,如果我指出PACKAGE_FILE这是我已经安装的东西的升级,它将替换文件......升级包。

具体来说,我正在尝试升级虚拟盒子在一个软呢帽 14操作系统。我正在运行以下命令:

rpm -Uvh VirtualBox-4.1-4.1.4_74291_fedora14-1.x86_64.rpm

并且收到(许多)错误,指出该文件存在旧版本

... <similar output omitted>

file /bla/virtualbox/bla/powernotification-r0drv.c from install of
   VirtualBox-4.1-4.1.4_74291_fedora14-1.x86_64 conflicts with file from 
   package VirtualBox-4.0-4.0.12_72916_fedora14-1.x86_64

... </similar output omitted>

我显然不明白这里的一些东西。有人能解释一下吗?

答案1

-U只能升级同名的包,且两个包名称不同。一个是叫VirtualBox-4.0,一个是叫VirtualBox-4.1

VirtualBox-4.0-4.0.12_72916_fedora14-1       .x86_64
^name          ^version              ^release ^arch

答案2

RPM 只是一个软件包,即您的命令安装只是VirtualBox 包。如果新版本依赖于其他内容的更新版本,则该命令将失败(显然)。

您可以尝试“yum localinstall VirtualBox-...”(yum 首先解决依赖关系,并获取所需的任何内容)。如果新版本需要更新,并且某些现有内容确实依赖于更新(并且没有可用的新版本),这也可能会失败。

答案3

在 VirtualBox 的特定情况下,可以安全地擦除并再次安装(例如):

# rpm --erase VirtualBox-5.1-5.1.28_117968_el6-1.i686
# rpm --install VirtualBox-5.2-5.2.18_124319_el6-1.i686.rpm

如上所述,这是由于包名称中包含版本号造成的,因此 RPM 无法确定它们确实是同一个包(可能是 Oracle 的错误打包决定)。

# rpm -q -i VirtualBox
package VirtualBox is not installed

乍一看这似乎令人困惑,但版本号是必需的,因为它已成为包名称的一部分。

# rpm -q -i VirtualBox-5.2
Name        : VirtualBox-5.2               Relocations: (not relocatable)
Version     : 5.2.18_124319_el6                 Vendor: Oracle Corporation
Release     : 1                             Build Date: Tue 14 Aug 2018 01:15:57 PM GMT
Install Date: Sun 30 Sep 2018 04:45:04 AM GMT      Build Host: tinderlin4.de.oracle.com
Group       : Applications/System           Source RPM: VirtualBox-5.2-5.2.18_124319_el6-1.src.rpm
Size        : 176286250                        License: GPLv2
Signature   : DSA/SHA1, Tue 14 Aug 2018 04:06:58 PM GMT, Key ID 54422a4b98ab5139
URL         : http://www.virtualbox.org/
Summary     : Oracle VM VirtualBox
Description :
VirtualBox is a powerful PC virtualization solution allowing
you to run a wide range of PC operating systems on your Linux
system. This includes Windows, Linux, FreeBSD, DOS, OpenBSD
and others. VirtualBox comes with a broad feature set and
excellent performance, making it the premier virtualization
software solution on the market.

相关内容