Есть ли способ, до запуска aptitude upgrade
или apt-get upgrade
, настроить что-то, чтобы вы могли «легко» откатить вашу систему до состояния «apt», которое было до фактического обновления, если что-то пойдет не так?
То есть, например, переустановите старую версию пакетов, которые были обновлены во время процесса.
(РЕДАКТИРОВАТЬ) Несколько советов : я знаю, что, etckeeper
например, использует некоторую зацепку, apt
чтобы он был уведомлен всякий раз, когда apt
устанавливает или удаляет пакет. Я предполагаю, что мог быть какой-то сценарий, который мог бы сохранить список вновь установленных пакетов и номер их предыдущей версии, чтобы иметь возможность переустановить их из apt
кэша ( /var/cache/apt/archives
). Существует также, checkinstall
который может отслеживать изменения файлов ...
Есть какие-нибудь подробности о том, как этого добиться?
Ответы:
Я только что должен был
apt-get upgrade
найти ответ на этот вопрос, потому что последнее на сервере Debian сделало невозможным загрузку самого последнего ядра за пределами busybox, не смонтировав корневой раздел zfs. По крайней мере, старое ядро все еще могло загружаться, но было несовместимо с другим программным обеспечением. Таким образом, необходимость отката.Краткий ответ - вы можете использовать следующую команду:
если он делает то, что вы хотите, удалите
-s
и запустите его снова. Вот шаги, которые я предпринял, чтобы заставить это работать должным образом:Я временно урезал свой,
/var/log/dpkg.log
чтобы оставить только сегодняшнее обновлениеЯ установил крошечный скрипт
apt-history
из здесь в~/.bashrc
и побежалЭто обеспечивает красиво отформатированный список версионных пакетов для отката путем их добавления
apt-get install
. Обрежьте этот список по мере необходимости в текстовом редакторе, а затем запустите (-s
сначала для пробного запуска):Apt предупредит об ожидаемых снижениях. Чтобы предотвратить перезапись этого отката при следующем обновлении, пакеты должны быть закреплены, пока не будет решена исходная проблема. Например с:
apt-mark hold zfsutils libzfs2 ...
источник
apt-history rollback
может быть заменена чем-то вродеawk '$3 ~ /upgrade/ {print $4"="$5}' dpkg.log
.awk '$1 == "2018-09-07" && $3 == "upgrade" {print $4"="$5}' /var/log/dpkg.log
E: Version '5.24.1-3+deb9u3' for 'libperl5.24' was not found
. Я использую Debian Stretch для Raspian.Файлы журналов
/var/log/apt/history.log
и/var/log/apt/term.log
ближайшие вещи доступны для вашего описания:history.log
дает сводный список каждого действия, котороеapt
выполняется в следующем формате:В частности, он дает список вновь установленных пакетов или удаленных пакетов. Кроме того,
term.log
показывает, что действительно появилось на терминале во время действия, чтобы показать старую и новую версии пакетов. Случайная выборка из моегоhistory.log
:Пытаться выполнить откат
apt
автоматически не рекомендуется, но если вы используете журналы, то должна быть возможность сделать это вручную, если неудачное действие не сломало что-то, что мешаетapt
действиям пользователя, например, несовместимая база данных dpkg. В этом случае вам придется решить проблему, прежде чем продолжить.источник
Нет, это не так просто.
Наилучшим вариантом является снимок определенного типа. Либо снимки файловой системы через lvm / zfs / btrfs, либо снимки экземпляров, если вы используете виртуальную машину какого-либо типа.
Единственный другой вариант - провести инвентаризацию установленных пакетов (dpkg -l) до и после. Если вы хотите «откатиться», вы должны явно установить предыдущую версию.
источник
apt install openssl=1.0.2g-1ubuntu4.12
результаты вE: Version '1.0.2g-1ubuntu4.12' for 'openssl' was not found
. Я только что обновился до,1.0.2g-1ubuntu4.13
и мне интересно, вызывает ли это какие-то проблемы с CORS / CSP сейчас