Qu'arrive-t-il à la transaction RPM quand il est interrompu au milieu?

Imaginons que j'installe les packages RPM A, B et C. Ils sont installés dans le même ordre. Et soudain, au milieu de l'installation de B, il y a une coupure de courant.

1) concernant l'état après l'allumage: Qu'est-ce qui arrive à cette transaction? Sera-t-il repris? Ou peut-être que RPM supprimera tous les packages et files de cette transaction?

2) concernant les actions de l'user: RPM nécessite-t-il une action de l'user pour faire les choses ci-dessus ou le vérifie-t-il automatiquement au démarrage de l'ordinateur?

Les transitions RPM sont principalement décrites en termes d'erreur de dépendance ou d'erreur lorsque l'ordinateur fonctionne encore …

C'est, de bien des façons, une question trop large, mais voici quelques faits:

  • les packages téléchargés via yum ou dnf sont mis en cache jusqu'à ce qu'un yum clean packages ou dnf clean packages opération dnf clean packages les supprime.
  • les packages téléchargés via rpm seront conservés jusqu'à ce qu'ils soient supprimés manuellement (sauf s'ils sont téléchargés dans un système de files éphémère /tmp , auquel cas ils seront perdus après un redémarrage)

Pourtant, la réponse dépend de plusieurs choses:

  1. étiez-vous au milieu d'une transaction yum ou dnf ? ou était-ce une command directe de rpm ? pour le premier cas, yum-complete-transaction tentera de terminer toutes les actions en attente. Dans ce dernier cas, encore une fois, cela dépend de l'étape exacte de l'installation qui a eu lieu pendant la panne de courant. Vous pouvez toujours essayer d'exécuter le rpm --force -Uvh $package pour réinstaller un package quel que soit son état actuel. Le cas le plus défavorable dans ce cas serait un package rpm brisé.

  2. sont vos packages hypothétiques un ou plusieurs de: grub, kernel, initramfs, dracut, lvm ou tout package qui vous donnerait access à votre système de files racine? dans ce cas, le résultat le plus probable est un système non initialisable qui doit être réparé par d'autres moyens, par exemple le démarrage PXE dans une image Systemrescue . La quantité de cas différents pouvant survenir en fonction des packages impliqués et des dependencies entre eux rend impossible de savoir à l'avance ce qui se passerait exactement.