RPM事务中途中断怎么办?

ecl*_*pse 14 linux rpm

让我们假设我正在安装 RPM 软件包 A、B 和 C。它们的安装顺序相同。突然在安装 B 的过程中停电了。

1)关于开启后的状态:这个交易会发生什么?会恢复吗?或者 RPM 可能会从该事务中删除所有包和文件?

2) 关于用户操作:RPM 是否需要用户操作来执行上述操作,还是在计算机启动时自动检查?

RPM 事务主要描述为依赖错误或计算机仍在运行时的错误...

daw*_*wud 9

从很多方面来说,这是一个过于宽泛的问题,但这里有一些事实:

  • 通过yumor下载的包dnf被缓存,直到yum clean packagesordnf clean packages操作删除它们。
  • 下载的包通过rpm将留在那里直到手动删除(除非在临时/tmp文件系统中下载,在这种情况下它们将在重新启动后丢失)

然而,答案取决于几件事:

  1. 是你在中间的一个yumdnf交易?还是直接rpm命令?对于前一种情况,yum-complete-transaction将尝试完成所有未决操作。对于后一种情况,这同样取决于停电期间安装的确切阶段。rpm --force -Uvh $package无论当前状态如何,您始终可以尝试运行以重新安装包。在这种情况下,最坏的情况是rpm包装破损。

  2. 您假设的软件包是以下一项或多项:grub、kernel、initramfs、dracut、lvm 还是任何可以让您访问根文件系统的软件包?在这种情况下,最可能的结果是系统无法启动,需要通过其他方式修复,例如 PXE 启动到systemrescue映像。可能发生的不同情况的数量取决于所涉及的包以及它们之间的依赖关系,因此无法事先知道究竟会发生什么。