Как откатить обновление apt-get из командной строки?

Я удаленно управляю рабочим столом 12.04 LTS и периодически буду выполнять обновление sudo apt-get. Обновление sudo apt-get

Однако, если при обновлении будет установлено что-то, вызывающее системную проблему, я бы хотел ее свернуть. вернуться к предыдущей версии.

  1. Есть ли способ узнать, какие элементы будут обновлены, наряду с версиями from / to?
  2. После завершения обновления есть ли способ восстановить предыдущую версию (и все его зависимости).

Например, я вижу на своей локальной машине, что есть более новая версия флеш-плеера. Исторически, у меня было множество проблем с отключением флэш-памяти, поэтому я действительно обеспокоен слепым обновлением в этой удаленной системе и невозможностью его резервного копирования.

Мысли / предложения?

5
задан 20 December 2012 в 04:00

2 ответа

  1. Запустите sudo apt-get update && sudo apt-get -s dist-upgrade, чтобы увидеть, что будет установлено и обновлено (dist-upgrade не будет обновлять релиз!). Команда является пробной, поэтому на самом деле ничего не устанавливается.

  2. Убедитесь, что существует системный снимок для восстановления. Невозможно откатить / упасть / пройти / прыгнуть / и т. Д. Назад команду apt-get.

Не обновлять Adobe Flash - это плохая идея , и поскольку Flash обычно не ломает ничего, кроме самого себя, я бы порекомендовал сохранить его в актуальном состоянии или полностью удалить. [ 1110]

0
ответ дан 20 December 2012 в 04:00

Вы можете отобразить пакеты, которые будут обновлены и версии будут изменены с помощью:

sudo apt-get update
sudo apt-get -V upgrade

Флаг '-V' показывает дополнительную информацию. Что касается снимков - вам действительно нужно снимать свои здесь.

Мой любимый способ иметь возможность отката - использовать LVM со снимками в Linux - но в прошлый раз, когда я проверял, не было никакого прогресса при автоматическом откате к выбранному снимку. С тех пор это могло измениться (я был бы рад, если бы кто-то меня поправил), но вы всегда можете загрузиться, используя параметр ядра root=/dev/vg0/root-snap (например), а затем использовать rsync для синхронизации снимка /dev/vg0/root-snap с исходным томом [ 115], а затем отбросить снимок. Не идеально, но может быть автоматизировано.

Конечно, снимки ZFS потрясающие, но официальной, готовой к работе поддержки ZFS для Linux нет (да, мне известны zfsonlinux.org и ZFS-FUSE), так что если вы просто не играете вокруг, это не совсем выполнимый вариант для вас.

ОБНОВЛЕНИЕ: похоже, что теперь мы можем откатывать (объединять на языке LVM2) снимки. Таким образом, обновление будет иметь следующую форму с LVM2:

  1. Создайте 5 ГБ снимок вашего корневого LV:

    lvcreate -s / dev / vg0 / root -L5G - n root-snap

  2. Обновите пакет (как указано выше).

  3. Откатиться при необходимости, запустив:

    lvconvert --merge / dev / vg0 / root-snap

И так как / dev / vg0 / root (исходный LV) открыт, lvconvert уведомит вас о том, что / dev / vg0 / root будет откатан к / dev / vg0 / root-snap при следующей активации этого тома. Это происходит, когда вы запускаете

lvchange -ay /dev/vg0/root

, когда это LV закрыто, что происходит при следующей загрузке или после запуска:

lvchange -an /dev/vg0/root
0
ответ дан 20 December 2012 в 04:00

Другие вопросы по тегам:

Похожие вопросы: