RPM事务在中间中断时会发生什么?


13

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

1)关于开启后的状态:该交易会发生什么?会恢复吗?也许RPM将从该事务中删除所有软件包和文件?

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

RPM转换主要根据依赖性错误或计算机仍在运行时的错误进行描述...

Answers:


8

从许多方面来看,这是一个过于笼统的问题,但以下是一些事实:

  • 通过yumdnf缓存已下载的软件包,直到通过yum clean packagesdnf clean packages操作将其删除。
  • 通过rpm那里下载的软件包将一直放置在那里直到被手动删除(除非在临时/tmp文件系统中下载,否则在重新启动后它们将丢失)

但是,答案取决于几件事:

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

  2. 您的假想软件包是grub,kernel,initramfs,dracut,lvm还是您可以访问根文件系统的任何软件包中的一个或多个?在这种情况下,最可能的结果是无法启动的系统,需要通过其他方式进行修复,例如,将PXE引导到系统救援映像中。取决于所涉及的软件包及其之间的依赖性,可能发生的不同情况的数量使无法事先知道确切会发生什么。


嗨!我是否正确理解,rpm仅在OP所描述的情况下,不能单独提供交易操作,而yum可以吗?我读过有关yum的恐怖故事,还是这样吗?是yum-complete-transaction时下可靠吗?
Fabio A.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.