安装 RPM 包而不卸载旧包

问题描述 投票:0回答:3

有人知道如果安装了某个软件包而旧软件包仍然安装会发生什么吗?问题是命令

rpm -e <rpm_package>
将卸载并删除旧包。就我而言,我想保留旧包作为备份,并且不希望它被删除。

在安装新包的同时,是否可以在文件系统中保留旧包(而不删除它)? 预先感谢!

installation rpm uninstallation
3个回答
1
投票

是的,这是可能的。它没有记录在案,但是当您安装 RPM 时,

--nodeps
--force
选项

事实证明 yum 确实禁用了所有依赖逻辑

这是进入重复状态的另一种方法:

您在事务期间终止 rpm。

如果你不相信我,可以在 CentOS 7 服务器上尝试一下。这种行为可能在 dnf 中发生了变化 - 毕竟它是对 yum 的升级。这不会让我感到震惊。


0
投票

不,这是不可能的。

您可能有两个同名的包。但这只有在以下情况下才有可能:

  • 您在事务期间终止 rpm。然后,您可以使用完整的 NEVRA 删除正确的一个。即,

    rpm -e bash-5.1.8-2.fc35.x86_64

  • 当包是多库时。即,一个是 i386,另一个是 x86_64

如果您想保留备份,那么我建议使用“本地”插件https://dnf-plugins-core.readthedocs.io/en/latest/local.html请注意,它可能会消耗大量存储空间。 甚至是红帽卫星,它可以让您轻松回滚。但这可能是满足您需求的庞然大物。


0
投票

您可以有两个同名但版本号不同的软件包,但新 RPM 中的实际内容将覆盖旧 RPM 中的文件。每个 RPM 都包含其安装的每个文件的校验和,因此当删除旧的 RPM 时,它只会删除校验和仍然匹配的文件。新版本将保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.