有人能帮我理解 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.