Что происходит с транзакцией RPM, когда она прерывается в середине?

13

Давайте представим, что я устанавливаю пакеты RPM A, B и C. Они устанавливаются в том же порядке. И вдруг в середине установки B происходит отключение питания.

1) относительно состояния после включения: что происходит с этой транзакцией? Будет ли это возобновлено? Или, возможно, RPM удалит все пакеты и файлы из этой транзакции?

2) в отношении действий пользователя: требует ли RPM действия пользователя для выполнения вышеуказанных задач или он проверяет его автоматически при запуске компьютера?

Обороты RPM описываются в основном с точки зрения ошибки зависимости или ошибки, когда компьютер все еще работает ...

затмение
источник

Ответы:

8

Во многих отношениях это слишком широкий вопрос, но вот некоторые факты:

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

Тем не менее, ответ зависит от нескольких вещей:

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

  2. Являются ли ваши гипотетические пакеты одним или несколькими из: grub, kernel, initramfs, dracut, lvm или любым другим пакетом, который даст вам доступ к вашей корневой файловой системе? в этом случае наиболее вероятным результатом является незагружаемой система , которая нуждается в ремонте другими средствами, например , загрузки PXE в systemrescue изображение. Количество различных случаев, которые могут произойти в зависимости от используемых пакетов и зависимостей между ними, делает невозможным заранее знать, что именно произойдет.

Дауд
источник
Здравствуй! Правильно ли я понял, что rpmодин не может обеспечить транзакционную операцию в случае, описанном ОП, а yumможет? Я читал страшные истории о ням , это все еще так? Надежен ли yum-complete-transactionсегодня?
Фабио А.