Що відбувається з транзакцією RPM, коли вона переривається посередині?


13

Уявімо, що я встановлюю з пакетами RP, A, B і C. Вони встановлюються в одному порядку. І раптом посеред встановлення B відбувається вимкнення електроенергії.

1) стосовно стану після включення: Що відбувається з цією транзакцією? Чи відновиться це? А може RPM видалить усі пакунки та файли з цієї транзакції?

2) щодо дій користувача: чи потрібні RPM дії користувача, щоб зробити вище, або він автоматично перевіряє його при запуску комп'ютера?

RPM-переходи описані в основному з точки зору помилки або помилки залежності, коли комп'ютер все ще працює ...

Відповіді:


8

Це багато в чому занадто широке запитання, але ось деякі факти:

  • завантажені пакети через yumабо dnfкешуються до тих пір, поки їх yum clean packagesчи dnf clean packagesоперація не видалить.
  • завантажені пакети через rpmбудуть сидіти там, поки не будуть видалені вручну (якщо тільки не завантажуються в ефемерну /tmpфайлову систему, і в цьому випадку вони будуть втрачені після перезавантаження)

Але відповідь залежить від кількох речей:

  1. Ви були посеред транзакції yumчи dnfтранзакції? чи це була пряма rpmкоманда? для першого випадку yum-complete-transactionбуде намагатися закінчити всі очікувані дії. В останньому випадку, знову ж таки, залежить від того, який саме був етап встановлення, що відбувався під час відключення електроенергії. Ви завжди можете спробувати запустити, rpm --force -Uvh $packageщоб перевстановити пакет незалежно від його поточного стану. Найгіршим сценарієм у цьому випадку буде зламаний rpmпакет.

  2. чи є у ваших гіпотетичних пакунках одне чи більше: grub, ядро, initramfs, dracut, lvm чи будь-який пакет, який надасть вам доступ до вашої кореневої файлової системи? в цьому випадку найбільш ймовірним результатом є незавантажена система, яку потрібно відремонтувати іншими способами, наприклад, завантаженням PXE в системний рятувальний образ. Кількість різних випадків, які можуть статися залежно від пакетів та залежностей між ними, не дозволяє заздалегідь дізнатися, що саме відбудеться.


Привіт! Чи правильно я зрозумів, що rpmпоодинці не можна надати транзакційну операцію у випадку, зображеному ОП, хоча yumміг би? Я читав страшилки про yum , це все-таки так? На yum-complete-transactionсьогодні надійний?
Фабіо А.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.