当 RPM 事务中途中断时会发生什么情况?

当 RPM 事务中途中断时会发生什么情况?

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

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

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

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

答案1

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

  • yum通过or下载的包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 启动到系统救援图像。根据所涉及的包以及它们之间的依赖关系,可能发生的不同情况的数量使得无法事先知道到底会发生什么。

相关内容