Linux откатить последнее обновление

Откат обновлений

Привет всем.
Вот настроены и работают у меня куча серверов. Вроде бы всё хорошо, но ни один из них не обновляется. Я думаю картина знакомая для 90% (недо)админов.

Так вот хочу начать устанавливать обновления, но тут есть некоторые проблемы:
1. Нарушать работу сервисов категорически нежелательно
2. Я бы готов на тестовом стенде сначала обкатывать новые пакеты, а потом внедрять в продакшн, но делать это с каждым апдейтом не хватит сил. Ведь обновления выходят практически ежедневно!!
3. Смущают сроки отката до прежнего(рабочего) состояния системы.
(я в курсе про rpm —oldpackage, но насколько я знаю есть куча проблем с поддержкой зависимостей и т.п. и нет никакой гарантии что он отработает успешно)

В связи с этим хотелось бы узнать,
как максимально быстро уважаемые форумчане откатываются обратно если что-то пошло не так?
Как тестируют систему после обновлений?

Может rsync’ом бэкапить(и возвращать если надо) весь /usr, /lib, /var/db, /var/lib ?

В общем, интересно как народ решает проблему с обновлениями.
P.S. интересуют только обновления безопасности, дистрибутивы Centos 5.x и Ubuntu Server 8.x-10.x

думаю тупо воткнуть старый пакет из /var/cache/apt поможет.

делаем снапшот репозитория, ставим сначала в тест, потом стейдж, и уж только потом в прод. да, обычно не быстро, раз в месяц это все происходит. для критичных для нас обновлений безопасности — в тот же день, но по той же процедуре, только с упрощенным контролем качества (меньше тестирования) и чейндж менеджмента. если что не так — гипотетический откат средствами пакетного менеджера, пока что такое поймали два раза, оба еще в тесте, что есть гуд. прошел без проблем. тот же самое с кастомными пакетами (у нас абсолютно все в пакетах, в отдельных репозитариях)
бекапы нужно делать по-любому!
для Солярки есть отличный Live Upgrade.

В связи с этим хотелось бы узнать, как максимально быстро уважаемые форумчане откатываются обратно если что-то пошло не так?

dump/restore на UFS2. Снимки и клоны на ZFS.

В большинстве своём обновления безопасности достаточно стабильны, можно ставить сразу и не думать даже. Если, конечно, это адекватный дистрибутив, и всё настроено так, что рестарт сервиса не требует ручного вмешательства.

А так да, либо образы снимать, либо тестовую машину держать. Мы лично не делаем ни так, ни так, у нас сервисы не особо сломаешь обновлением, тестируем на куче разных дистрибутивов и версий.

> dump/restore на UFS2. Снимки и клоны на ZFS.
а что при этом делать с открытыми файлами?
правильно ли я понимаю:
1. гашу сервис(к-ый обновил и который работает теперь некорректно)
2. монтирую снапшот файловой системы(с ZFS не работал пока. )
3. поднимаю сервис и всё должно работать?

> думаю тупо воткнуть старый пакет из /var/cache/apt поможет.

Это хорошо, но часто бывает так:
ставишь rpm -Uhv xxx, а он начинает ссылаться на зависимости или какую-то другую причину, по которой этот пакет нельзя поставить, и вместо предполагаемой 1-минуты отката, на это может уйти пару часов, чего не хотелось бы..

val-amart, сразу видно у вас есть регламент для обновлений и это правильно.
т.к. если каждый день заниматься обновлениями, то проще ещё одного человека взять специально для этой работы =)

если что не так — гипотетический откат средствами пакетного менеджера, пока что такое поймали два раза

т.е. вы не испытывали проблем с откатом средствами yum/apt ?

не испытывали, правда, как я уже говорил, делали это только дважды. yum/rpm

> а что при этом делать с открытыми файлами?

1. гашу сервис(к-ый обновил и который работает теперь некорректно)

2. монтирую снапшот файловой системы(с ZFS не работал пока. )

3. поднимаю сервис и всё должно работать?

да, правильно. но так делать не надо, надо пользоваться Live Upgrade, есть даже на 8-ке

Я тебя вообще не понимаю. Ты из репозиториев пакеты ставишь или в инете находишь через какой-нить rpmfind и втыкаешь их?

true_admin, из репозиториев конечно. был случай на практике(на Ubuntu Server 8.04) очень много времени занял откат на старую версию, хотя может быть это из-за неотработанного подхода.

а что именно заняло много времени? Обновилось несколько пакетов и при попытке один из них даунгрейдить завопили остальные?

Читайте также:  Обновление через media creation tool windows 10

>> dump/restore на UFS2. Снимки и клоны на ZFS.

а что при этом делать с открытыми файлами?

Они останутся открытыми. Очевидно же.

1. гашу сервис(к-ый обновил и который работает теперь некорректно)

2. монтирую снапшот файловой системы(с ZFS не работал пока. )

3. поднимаю сервис и всё должно работать?

Источник

Откат системы Ubuntu

Было бы неплохо иметь возможность спокойно обновлять систему или попробовать новую версию дистрибутива не боясь проблем и ошибок, зная что вы всегда можете откатить Ubuntu назад к прежнему состоянию. В этой статье мы рассмотрим инструмент, который позволяет сделать снимок состояния системы Ubuntu в любое время. TimeShift очень похож на функцию восстановления системы в Windows, программа позволяет восстановить состояние ubuntu. Сначала вы создаете снимок, можете запланировать автоматическое создание снимков через заданные промежутки времени, а затем просто восстанавливаете систему.

TimeShift защищает только системные файлы и настройки, но не восстанавливает пользовательские данные, такие как фото, музыка, документы. Если вам нужно делать резервную копию именно таких файлов, придется использовать другие инструменты.

Установка TimeShift

В современных версиях Ubuntu программа Timeshift уже есть в официальных репозиториях, поэтому для установки достаточно выполнить:

sudo apt install timeshift

Для выполнения команды понадобятся права суперпользователя, поэтому вам нужно будет ввести пароль.

Когда установка завершится, можете закрыть окно терминала, а программа будет доступна в главном меню. Для того чтобы её найти наберите в строке поиска Timeshift:

Откат системы Ubuntu

Для работы программы нужны права root, поэтому после запуска появится окно с запросом пароля. Введите его и нажмите Ok.

При первом запуске утилиту надо настроить. Сначала мастер настройки спросит вас каким способом создавать снимки файловой системы. Доступно два варианта: с помощью утилиты rsync или встроенными средствами Btrfs. Если вы используете не файловую систему ext4, то вариант с Btrfs не подойдёт. Снимки rsync будут инкрементные, сначала программа скопирует все системные файлы, затем в каждом новом снимке будут копироваться только измененные:

Затем надо выбрать устройство, на котором надо сохранять снимки. Поддерживаются только разделы, отформатированные в файловые системы Linux, такие файловые системы как FAT и NTFS не поддерживаются:

Далее надо настроить автоматическое создание снимков. Если вы хотите его отключить просто снимите все галочки. Я указал создавать снимок файловой системы каждый месяц. Ещё здесь можно настроить сколько таких снимков надо сохранять. По умолчанию сохраняется пять последних снимков:

На следующем шаге надо выбрать добавлять ли домашние каталоги пользователей в снимок. Можно их вовсе не добавлять, добавлять только скрытые файлы или все файлы. Для экономии места на диске домашние каталоги лучше оставить исключёнными (Exclude all files):

Только теперь перед вами откроется главное окно программы:

Здесь отображается свободное место, доступное для создания снимков, а также все снимки, созданные на данный момент. Для создания первого снимка нажмите кнопку Создать:

После завершения создания снимка он появится в списке:

Вы можете посмотреть его содержимое нажав кнопку Обзор:

Физически в файловой системе все снимки находятся в директории /timeshift. Здесь есть каталоги, как с уже созданными снимками, так и пустые, для запланированных. Подкаталог snapshots содержит снимки, созданные вручную. Лучше скопировать снимок на USB флешку, другой диск или загрузить на один из облачных сервисов, на случай если диск будет поврежден, и вам нужно будет откатить обновления Ubuntu.

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

Для того чтобы выполнить откат системы Ubuntu просто выберите нужный снимок и нажмите кнопку Восстановить:

В открывшимся окне вы можете выбрать устройство, на которое нужно восстановить систему. Вы можете выбрать то же самое устройство или же развернуть систему на другом диске, таким образом, это будет не откат системы ubuntu, а установка системы на другой диск. Если навести указатель мыши на устройство, можно посмотреть более подробную информацию о нем.

Выберите устройство для восстановления корневой файловой системы Если вы считаете, что загрузчик тоже был повреждён, то нажмите кнопку Дополнительные параметры загрузчика, и выберите устройство для его восстановления:

После завершения настроек нажмите кнопку Далее чтобы отменить изменения Ubuntu. Программа покажет файлы, которые были изменены, подтвердите, что надо откатить изменения:

Затем система перезагрузится:

После этого вы вернетесь в систему, какой она была во время создания снимка, при чём заменены будут только системные файлы, пользовательские файлы останутся на месте.

Читайте также:  Что такое vpn windows phone

Если ваша система повреждена, то скорее всего у вас нет доступа к графическому интерфейсу. Но у timeshift есть возможность работать и через терминал. Для просмотра доступных снимков выполните:

sudo timeshift —list

Далее вы можете восстановить нужный вам снимок такой командой:

sudo timeshift —restore —snapshot —target /dev/sda

После этого утилита спросит нужно ли устанавливать загрузчик, и если да, то на какой диск:

Затем попросит подтверждения восстановления и после этого компьютер перезагрузится.

Выводы

TimeShift это очень полезный инструмент, если вы любите экспериментировать с обновлениями системы. Он очень пригодится если что-то пойдет не так. Также, как и в Windows, вы можете просто выполнить откат системы Ubuntu к предыдущему состоянию и дальше экспериментировать не переустанавливая систему. Вы даже можете откатить ubuntu до первоначального состояния, просто создав снимок сразу после установки.

Источник

Как мне отменить или откатить команду «apt-get upgrade» в Ubuntu?

Есть ли способ в Ubuntu откатить или отменить последнее обновление после выполнения, apt-get upgrade если вам не нравятся результаты?

aptitude дает вам доступ ко всем версиям пакета, если они доступны в соответствии с управлением пакетами Debian .

Я наткнулся на Blogstatic Blog Хартмана: Как отменить обновление в Ubuntu Lucid

Первым шагом к отмене оскорбительного обновления было выяснить, какие именно обновления были. После поиска на некоторых форумах я нашел способ просмотреть историю обновлений: Открыть менеджер пакетов synaptic («sudo synaptic» в терминале). В строке меню выберите Файл -> История, и вы увидите все ваши обновления, отсортированные по дате.

К сожалению, сегодня я установил около 20 обновлений, и я не знал, какое из них вызвало проблему. Просматривая каждый из пакетов, перечисленных в списке «Журнал», я смог понизить несколько пакетов за раз до тех пор, пока проблема не была решена, и я не обнаружил ошибочное обновление. Сделать это:

Используйте панель поиска, чтобы найти пакет, который вы хотите понизить. Когда вы найдете то, что ищете, нажмите на пакет, чтобы выбрать его. В строке меню выберите Package -> Force Version и выберите предыдущую версию пакета из выпадающего меню. Нажмите кнопку «Применить», чтобы применить понижение рейтинга.

Я должен был сделать это сегодня в моей системе Debian. Во-первых, я определил временной диапазон, когда произошло ошибочное обновление, и извлек записи журнала, в которых указаны старые и новые номера версий обновленных пакетов:

Затем я попытался найти все еще кэшированные файлы пакетов на диске (к счастью, я не запустил autoclean):

Похоже, у меня по какой-то причине нет более старого пакета ethtool. Тем не менее, давайте продолжим принудительную установку старых пакетов:

Как говорится в сообщении об ошибке, один из моих пакетов зависел от пакета -common непосредственно перед обновлением, но обновление удалило его (и apt-get больше не может его найти). К счастью, его файл пакета все еще находится в / var / cache / apt, поэтому я могу просто добавить его в список и попробовать еще раз:

Успех! На самом деле это не решило мою проблему. Но это успешно понизило пакеты, QED.

Мне также пришлось отменить обновление пакета на нескольких серверах Debian. Я успешно вернул пакеты до последней версии с помощью aptitute, тогда как следующая команда awk была очень полезна.

( В приведенной ниже команде замените строку даты датой дня, с которого вы хотите отменить обновления )

проверьте выходные данные, чтобы убедиться, что это те пакеты и версии, которые нужно отменить. Затем используйте aptitute для понижения перечисленных пакетов:

Я надеюсь, что это также поможет сэкономить время другим.

Я считаю , что нет, кроме принимая полную резервную копию соответствующих файловых систем (те , которые содержат / , /bin , /lib , /sbin , /usr , /var , /etc и /boot (что все может быть в файловой системе) и загрузочная запись) , так что вы можете катить машину назад после этого.

Я запускаю свои Linux-серверы в виртуализированной среде и запускаю shapshot непосредственно перед обновлением apt-get или любыми крупными обновлениями / обновлениями сторонних производителей.

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

Это очень помогло, когда я обновил свою версию Ubuntu до 12.04, и после обновления MySQL почему-то не работал. Я откатился назад, нашел ответ позже, перезапустил обновление, исправил MySQL, и жизнь была хорошей.

Читайте также:  Tiny core linux php

Вы можете попробовать checkinstall

После вас ./configure; При создании вашей программы CheckInstall запустит make install (или как вы скажете, чтобы она запускалась) и отслеживала каждый файл, измененный этой установкой, используя отличные установочные часы .

Поэтому, возможно, вы могли бы сказать ему, чтобы он запускал aptitude safe-upgrade, и он отслеживал бы все изменения, сделанные обновлением.

Есть проект под названием Nexenta, который объединяет ядро ​​OpenSolaris с пользовательским пространством Ubuntu. Он предоставляет инструмент для интеграции ZFS Solaris и apt Debian, чтобы обеспечить кнопку отмены обновлений. Смотрите здесь: http://www.nexenta.org/os/TransactionalZFSUpgrades

В общем, вам нужна файловая система управления версиями. Btrfs для Linux находится в разработке.

Использование Apt-Undo — возможный вариант, но он может работать, только если вы используете его для установки и удаления пакетов. Это не поможет, если вы уже удалили программное обеспечение в обычном режиме.

Я успешно делал это несколько раз, но я не буду рекомендовать это. Вот что я сделал (если я правильно помню):

1) Удалите все неофициальные программы, которые не включены в стандартные репозитории Ubuntu (это может и не потребоваться, но я предлагаю это, поскольку они могут вам помешать).

2) Измените ваш /etc/apt/sources.list (и sources.list.d / *) на предыдущую версию (прокомментируйте все неофициальные репозитории).

3) apt-get update / aptitude update

4) Используя aptitude, обновите основные пакеты (например, X11, библиотеки и т. Д.). Он начнет запускать много сломанных пакетов . так что вам нужно будет решить каждый случай (вам нужно знать, как это сделать в aptitude). Чтобы понизить его, перейдите на панель описания и установите версию (нажав +) внизу.

5) Повторяйте # 4, пока все программное обеспечение не будет принадлежать вашей целевой версии (проверьте столбец версии в aptitude).

Вот причина, почему я не рекомендую этот метод:

  • Это занимает много времени (это болезненно)
  • Некоторые приложения могут не работать должным образом (поскольку они могут иметь самую последнюю конфигурацию). В этом случае вам нужно будет «очистить» и переустановить.
  • Существуют системные обновления, которые не будут работать после понижения
  • Это очень рискованно, так как вы можете получить непригодную систему

Я настоятельно рекомендую выполнить чистую установку и постепенно перенести вашу конфигурацию. Это также требует времени, но в конце у вас есть стабильная версия.

Причина, по которой я это сделал, была в основном в качестве экспериментов и в результате отчаяния.

DPkg :: Pre-Install-Pkgs и ZFS на снимках Linux

Если вы установили свою операционную систему в файловую систему ZFS (например, ZFS в Linux ), вы можете настроить apt-get ее запуск zfs snapshot до того, как она установит или обновит что-либо, что мгновенно создаст резервную копию вашей файловой системы. Он может работать с механизмами резервного копирования, отличными от снимков ZFS, но я оставлю это тестирование другим.

Сценарий

Создайте файл как

где rpool/ROOT/debian должно быть заменено именем файловой системы ZFS, к которой подключена ваша операционная система. Вы дали ему это имя при первой установке ОС, и его можно найти в атрибуте NAME с помощью команды

Но работает ли это?

Вам лучше сделать снимок, прежде чем следовать советам по настройке случайного интернет-пользователя:

Вот оно В error: fn_borked ближайшее время вы можете вернуть свою систему в ее блаженное текущее состояние с

Теперь попробуйте установить две крошечные игры, которые, вероятно, доступны в вашем репо:

Этот снимок содержит вашу файловую систему, которая была до установки двух игр.

Веселые времена для бабушки, но ты ненавидишь судоку.

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

Однако имейте в виду, что это не только вернет вашу файловую систему в состояние, в котором она находилась на момент ее создания rpool/ROOT/debian@2018-08-01-230001_test , но и безвозвратно удалит все последующие снимки. Если вы подписались на этот пост, снимок rpool/ROOT/debian@apt-get_2018-08-02-033614 исчезнет.

Я тестировал apt-get upgrade на Debian GNU / Linux с

Оно работает. Один снимок был создан для install команды, другой для upgrade команды.

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

Источник

Оцените статью