有人知道如果安装了某个软件包而旧软件包仍然安装会发生什么吗?问题是命令
rpm -e <rpm_package>
将卸载并删除旧包。就我而言,我想保留旧包作为备份,并且不希望它被删除。
在安装新包的同时,是否可以在文件系统中保留旧包(而不删除它)? 预先感谢!
是的,这是可能的。它没有记录在案,但是当您安装 RPM 时,
--nodeps
和 --force
选项
事实证明 yum 确实禁用了所有依赖逻辑
这是进入重复状态的另一种方法:
您在事务期间终止 rpm。
如果你不相信我,可以在 CentOS 7 服务器上尝试一下。这种行为可能在 dnf 中发生了变化 - 毕竟它是对 yum 的升级。这不会让我感到震惊。
不,这是不可能的。
您可能有两个同名的包。但这只有在以下情况下才有可能:
您在事务期间终止 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请注意,它可能会消耗大量存储空间。 甚至是红帽卫星,它可以让您轻松回滚。但这可能是满足您需求的庞然大物。
您可以有两个同名但版本号不同的软件包,但新 RPM 中的实际内容将覆盖旧 RPM 中的文件。每个 RPM 都包含其安装的每个文件的校验和,因此当删除旧的 RPM 时,它只会删除校验和仍然匹配的文件。新版本将保持不变。