Чим відрізняється "відкат історії dnf" від "скасування історії dnf"?


15

Давайте прочитаємо офіційну документацію :

dnf history rollback <transaction-spec> Скасувати всі транзакції, здійснені після вказаної транзакції. Якщо неможливо скасувати будь-яку транзакцію через поточний стан RPMDB, не скасовуйте жодну транзакцію.

Наголос мій. Отже ця команда відноситься до undoкоманди. Гаразд, прочитаємо документацію щодо скасування:

dnf history undo <transaction-spec> Виконайте протилежну операцію всім операціям, що виконуються у зазначеній транзакції. Якщо неможливо скасувати будь-яку операцію через поточний стан RPMDB, не скасовуйте жодну операцію.

Звучить, що ці дві команди виконують те саме, за винятком того, що перша може скасувати кілька транзакцій, а пізніше лише одну.

Чи правильно це розуміння? (Я буду вдячний за відповіді з досвіду з перших рук, а не з точки зору того, як ви інтерпретуєте посібник, мене цікавлять факти, а не здогадки.)

Контекст: Мені потрібно написати сценарій, який запускається, dnf upgrade -yа потім виконати деякі тести, а потім змінити зміни dnf, якщо тести не вдаються. Я шукаю найкращий спосіб досягти цього.

Відповіді:


18

undoлише скасовує ту конкретну транзакцію, тоді як rollbackскасовує все між цією транзакцією та поточним станом системи.

Приклад: ви встановлюєте htop, а потім встановити ncduі glances, потім на mcнаступний день.

Пізніше ви хочете скасувати встановлення htop, тому використовуєте функцію скасування, щоб спробувати скасувати встановлення htop, але зберігайте інші програми, встановлені пізніше.

Якщо відкат до операції , яка встановлена htop, ви б замість того, щоб скасувати установку ncdu, glancesі mc, в той же час зберігаючи htop.


1
Так, що я так і зрозумів це, але хотів підтвердити, дякую, що зробили це! ;)
Андрій Савіних
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.