【发布时间】:2019-04-05 14:07:51
【问题描述】:
我想在基于 Redhat/Linux 的系统中升级一些 rpm。有些 rpm 可能已经存在,有些 rpm 是新安装的,有些 rpm 需要使用 RPM 升级命令升级到更高版本。
例如:
I have placed rpms to be installed in folder <rpms>
/rpms/X-1.rpm (This is already installed in system)
/rpms/Y-1.rpm (This is NOT present in system. This is NEW)
/rpms/Z-2.rpm (This is need to be upgraded to higher version available,
Z-1.rpm is installed in system)
/rpms/Q-1.rpm (This is already installed in system)
我在 shell (.sh) 文件中运行下面的命令
$rpm -Uvh /rpms/*
执行后如下图
Preparing... ################################### [100%]
package X-1 is already installed
package Q-1 is already installed
但它没有安装 Y-1,也无法升级到 Z-2。
请让我知道使用-Uvh 命令需要做什么才能使其工作?对于上述情况,最好的解决方案是什么?
【问题讨论】:
-
你真的应该使用
yum来处理升级(因为它会处理更新的依赖关系,并且因为 yum 维护的元数据不是由 rpm 维护的)。 -
是的,yum(如果有的话,甚至是dnf)会更好,如果你仍然想使用rpm,你可以尝试添加--replacepkgs,它会重新安装已经presnet的包,但至少,不会忽略另外两个
-
我看不出人们有什么理由落后于结束问题。请不要跟随人群结束问题。 -Uvh 命令跳过安装,我在任何 RedHat 文档中都找不到解释。因此我来到了这里。
-
@larsks 但是 rpm 命令应该升级目录中提到的所有 rpm,但它正在跳过新的和升级的 rpm。它只是找到现有的。我认为是 rpm 命令的问题。
-
我投票决定将此问题作为题外话结束,因为您的问题与“编程”无关,它更适合 StackExchange 站点 Super User 或 Unix & Linux。
标签: linux shell redhat rpm rpmbuild