Откатить обновления astra linux
У меня дома используется Debian Sid. Большей частью он весьма и весьма хорош, но местами он слишком Bleeding слишком Edge. Например, когда отгружает пакеты, ломающие работоспособность системы. Вчера приехал wpasupplicant, который сломал мне wifi. Я его откатил, но в процессе я подумал, что многие пользователи не умеют этого делать. Рассказ "как откатить плохой apt-get install/upgrade" — в этом посте.
Мы сделали apt-get install что-то, или apt-get upgrade, или даже apt-get dist-upgrade, и после перезагрузки (или даже сразу же) обнаружили, что так нельзя. Сервис не стартует, убрана важная нам фича, кто-то падает и т.д. Мы хотим откатиться. Но вот, незадача — куда именно мы не знаем, потому что какая была версия до обновления мы не знаем.
apt ведёт очень подробные логи в /var/log/apt . Там есть, в частности, history.log — там будут строчки вида:
Там же будет написано кто это сделал и какой командой.
Чтобы понять, какая версия была предыдущей, придётся посмотреть на лог установки. Он рядом — /var/log/apt/terminal.log . К сожалению, с esc-последовательностями.
Там мы увидим строчку вида:
Чтобы поставить обратно пакет по версии, мы указываем её в явном виде:
К сожалению, 90% это не сработает. Почему? Потому что пакета такой версии в репозитории нет.
В этом случае нам надо найти файл для установки. Он может быть в двух местах.
Когда мы имеем файл на диске, установка тривиальная:
… и у меня снова есть интернет. Есть вероятность, что придётся разбираться с зависимостями, но хорошая новость состоит в том, что если пакеты не конфликтовали до обновления, то их можно откатить в тот же набор версий. И какие именно это версии видно в выводе terminal.log.
Как его подключать — написано там, хотя чаще проще просто скачать нужный пакет. Важно: когда ищите снапшот, проверяйте по версиям в логах. Если зависимости противные и сложные, то имеет смысл автоматизировать парсинг terminal.log .
Альтернативный путь: можно попробовать apt-cache policy wpasupplicant чтобы посмотреть на доступные версии и выбрать одну их них (тоже через знак равно). В моём случае это было бесполезно, ибо интернетов не было. Важно: как только вы начинаете откатываться на старые версии, вы рискуете сделать себе такую конфигурацию по зависимостям, которую так просто уже не разберёшь, так что я рекомендую при наличии зависимых пакетов в первую очередь пробовать откатиться на предыдущие версии, а не искать себе приключений посредством даунгрейда на антиквариат.
Чтобы случайно снова не проапдейтиться, пакет можно поставить на hold (запретить апдейты):
(unhold снимает hold).
Я давно для себя выработал привычку делать "dpkg -l >/var/log/dpkg_ date " перед апдейтом. В таком виде его легче парсить, если нужно делать большое количество даунгрейдов.
В данной статье используется пакет xfsdump, который доступен в репозитории Astra Linux Common Edition начиная с версии 2.12.29. Для установки пакета в более ранних версиях требуется подключить репозиторий Debian.
Поддерживается ОС Astra Linux, однако при выборе XFS в качестве основной файловой системы следует учитывать её недостатки:
- Невозможно уменьшить размер существующей файловой системы. Если раздел на диске занят XFS, его размер нельзя будет изменить в меньшую сторону (это важно принимать во внимание при разбивке диска);
- Восстановление удалённых файлов в XFS — очень сложный процесс;
- Возможна потеря данных во время записи при сбое питания, так как большое количество буферов данных хранится в памяти;
Для установки ОС Astra Linux на логические диски под управлением XFS следует:
-
Начать установку в обычном режиме и продолжить её до этапа выбора разметки дисков:
Для примера выбрана автоматическая установка.
Нажать кнопку "Продолжить".
Внимание! Если предполагается в дальнейшем сохранять снимки состояния системы в отдельном дисковом разделе, то при разметке дисковых разделов рекомендуется предусмотреть свободное место для размещения этих снимков (не обязательно, так как в дальнейшем можно подключить и использовать дополнительные накопители).
Можно также зарезервировать отдельный загрузочный раздел, чтобы загружаться с него для восстановления системы из сделанных снимков (на него понадобится установить отдельный экземпляр ОС).
Создание моментального снимка
Моментальный снимок в файле можно создать командой:
sudo xfsdump -l 0 -f /var/dump.bin /
-
-l 0 - уровень снимка (применяется для инкрементального сохранения, 0 - полный снимок);
-f /var/dump.bin - имя файла, в котором будет сохранён снимок (в данном случае - файл /var/dump.bin). Точно так же можно указать в качестве места сохранения дисковый раздел (например, /dev/sdb1), или устройство (например, /dev/ sdb);
Файл с моментальным снимком может размещаться в той же файловой системе, с которой делается снимок. Это самый простой способ, не требующий никаких дополнительных действий, однако, при повреждении файловой системы такой снимок может быть утерян, и восстановление станет невозможным. Поэтому рекомандуется использовать для хранения снимков отдельный дисковый раздел или отдельное устройство./ - файловая система, с которой делается снимок (в данном случае - корневая файловая система).
После запуска программа xfsdump запросит ввод двух меток, которые в дальнейшем будут использоваться для идентификации снимка:
При создании снимка производится копирование данных, поэтому снимок занимает много места, а создание снимка может занимать значительное время.После завершения операции создания снимка можно проверить результат командой:
В том числе в выводе команды представлены метка сессии (lession label) и метка носителя (medial label).
Откат изменений
В простейшем случае (единственная сессия и единственный носитель, как в примере выше) для отката изменений достаточно выполнить команду:
- -f /var/dump.bin - имя файла, из которого выполняется восстановление;
- / - каталог, в который выполняется восстановление;
После восстановления снимок будет обнулён.
При написании данной статьи восстановление после установки обновлений было успешно выполнено из файла непосредственно из работающей ОС без её перезагрузки, однако гарантировать работоспособность такого способа нельзя. В любом случае, после выполненного таким способом восстановления рекомендуется перезагрузить систему. Для практического применение следует сохранять снимки в отдельных дисковых разделах или на отдельных дисках, и выполнять восстановление, загрузив систему с live-носителя.
Порядок восстановления системы при загрузке с live-носителя
- Для отката изменений следует перезагрузить компьютер, например, с Live-образа Astra Linux Common Edition (или с отдельного дискового раздела, если такой раздел предусмотрен в системе).
-
При работе в открытой сети:
- Вы можете получить информация о пакете firefox (или что-то еще, вам просто нужно изменить имя на соответствующее в вашем случае), например, предыдущие установленные версии и т. д., вы можете использовать следующую команду:
- Как только вы хорошо знаете предыдущая версия, которую вы хотите установить, вы можете использовать следующую команду для установки нужного пакета. В нашем случае в предыдущей команде мы получили пакет с именем firefox = 57.3-build1-0ubuntu1, который мы хотим установить:
- После этого у вас уже будет установлена предыдущая версия этой программы. Вы знаете, что если нет указать версию Используя APT, вы устанавливаете последнюю версию, доступную в репозитории этого пакета. В данном случае мы указали конкретную версию.
- Искать ев кеше пакета доступные версии, вы можете проверить запись. Чтобы отфильтровать результаты только для пакетов firefox в нашем случае (но вы уже знаете, что можете заменить имя пакета на то, которое хотите . ), вы можете использовать:
- Теперь, когда вы знаете, какая версия вам нужна, вы можете использовать следующую команду установить это:
- Первым делом нужно обратиться к кешу пакетов аналогично тому, как мы это делали для Arch, с помощью следующей команды, чтобы узнать предыдущие версии пакета в наличии:
- Как только предыдущая версия будет найдена, вы сможете установить эту версию используя zypper следующим образом:
- В этом случае первым делом нужно будет увидеть предыдущие версии пакета, который вы пытаетесь установить в репозитории DNF. В нашем примере вы можете использовать эту команду для получения списка:
- Теперь, когда вы внимательно посмотрите на имя версия, которую вы хотите установить, вам просто нужно скопировать его из данных, выданных в выводе предыдущей команды, и вставить в следующую. Например:
-
Если в сети не настроено автоматическое назначение параметров сетевых подключений, то вручную настроить подключение к сети (в частности, указать в настройках сетевого подключения сервер DNS, например 8.8.8.8) и перезапустить службу сети, чтобы это изменение настройки вступило в силу;
Обновить репозиторий и выполнить установку:
Примонтировать восстанавливаемый накопитель, и восстановить состояние системы из снимка (для примера предполагается, что снимок устройства /dev/sda1 был сохранён на устройстве dev/sdb):
sudo mount /deb/sda1 /mntsudo xfsrestore -f /dev/sdb /mnt
Если снимок был сохранён в файле (например, /var/dump.bin), то после монтирования в пути к файлу следует учесть путь монтирования:
sudo mount /deb/sda1 /mntsudo xfsrestore -f /mnt/var/dump.bin /mnt
В данной статье используется пакет xfsdump, для установки которого требуется подключить репозиторий Debian.
Для Astra Linux Common Edition 2.12.8 установить пакет dirmngr для управления ключами и пакет debian-archive-keyring, содержащий ключи к репозиториям Debian:
Нормально то, что всегда обновляйте программные пакеты чтобы получить более свежие версии этих. Обычно разработчики стремятся к тому, чтобы с появлением новых версий они становились все лучше и лучше. Но так бывает не всегда. Иногда предыдущие версии пакета могут быть более стабильными, работать лучше по какой-то причине или даже из-за того, что пользователю больше нравится версия до обновления, потому что в ней есть что-то, что в новой версии больше не реализуется.
Если это ваш случай, в этом урок мы покажем вам, как вы можете перейти на более раннюю версию любого пакета, то есть откатить обновление и получить предыдущую версию, установленную в вашей системе. Таким образом, у вас не будет проблем, если новые версии вас подведут. Ну что ж, приступим!
Поскольку не существует общего метода для всех дистрибутивов, я покажу, как это можно сделать с помощью самые популярные менеджеры пакетов. Кстати, если вы используете другие методы, такие как YaST, Synaptic и т. Д., Процедуры также возможны, но графически и намного более интуитивно понятны. Здесь я объясню методы через консоль, которые вызывают наибольшую путаницу .
apt-get: Debian / Ubuntu и производные
Для всех дистрибутивы на основе пакетов DEB а с помощью диспетчера пакетов apt-get вы можете легко перейти с более современной версии на более старую. Например, мы возьмем пакет firefox в качестве эталона, представив, что мы хотим вернуться от текущей версии к предыдущей. В этом случае вы можете выполнить следующие команды:
Помните, что возможно, что сосуществуют два разных пакета версий на GNU / Linux без проблем. Итак, если вы хотите иметь две разные версии одного и того же пакета, вы можете это сделать .
pacman: Arch Linux и производные
Если у вас есть Arch Linux, то вам придется иметь дело с pacman как с менеджером пакетов. Этот инструмент также позволяет вам вернуться к предыдущей версии, если хотите. Способ сделать это немного другой, но такой же простой:
zypper: SUSE / openSUSE и производные
В мире SUSE, вы можете использовать менеджер пакетов zypper. Это также простой способ получить пакет в предыдущей версии. В нашем случае с Mozilla Firefox это будет примерно так:
dnf: Red Hat / CentOS / Fedora и производные
Наконец, в дистрибутивах на основе Fedora yum или dnf будут использоваться. Чтобы отменить обновление пакета и вернуться к предыдущей версии с пониженной версией, вы можете использовать следующие команды:
Вы также можете использовать снимки или снимки вернуться к предыдущим версиям. Для этого вы можете использовать следующие команды, которые они будут делать, соответственно, получать историю, затем получать информацию о транзакции из истории с ее идентификатором (что вы хотите в вашем случае), а затем возвращаться к статусу этой транзакции с указанием идентификатора (в нашем примере 32):
Я надеюсь, что это руководство помогло вам решить проблемы, которые новая версия программного пакета вызвала у вас в вашем любимом дистрибутиве. Вы уже знаете, что можете оставить свой комментарии с вопросами или предложениями.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Любители Linux » Общие » Программное обеспечение Linux » Переход на более раннюю версию: возврат к предыдущей версии программного пакета.
Главное меню » RHEL » Как откатить или понизить версию установленных пакетов в Linux (RHEL/CentOS)
В демонстрации мы установим версию PHP 5.4, которая является версией по умолчанию в репозитории Linux, и позже мы обновим ее до более поздней версии.
Давайте начнем установку:
Мы установим PHP для нашего эксперимента и запустим следующие команды, чтобы установить PHP 5.4.
Вы можете проверить версию.
Обновите PHP 5.4 до PHP 7.3:
Перед установкой нам нужно будет добавить репозиторий Remi для PHP 7.3 в Linux с помощью следующих команд.
вы увидите репозиторий Remi, установленный внутри этого каталога /etc/yum.repos.d
Теперь вам нужно включить репозиторий PHP7.3 и попытаться установить с помощью тех же команд. Как только это будет сделано, проверьте установленную версию. Это обновит предыдущую версию.
Предположим, что ваше приложение перестало работать, потому что оно совместимо с версией 7.3 и сейчас не работает. В этом случае мы откатим предыдущую версию 5.4.
Читать Laravel. Как сделать резервную копию базы данныхОТКАТ PHP 7.3 ДО PHP 5.4:
Мы можем проверить, что мы установили или удалить, используя команды yum. это хранит историю yum.
Когда вы должны проверить, что мы установили. Таким образом, вы можете видеть, что есть идентификатор. мы можем использовать этот идентификатор, чтобы проверить, что мы установили. мы установили PHP.
Если вам нужно проверить историю ID 6, мы можем использовать следующие команды.
Как вы можете видеть, предыдущая версия была обновлена до новой. Теперь мы должны понизить или откатить его до более низкой версии.
Вы можете версию, используя любой список:
Мы будем использовать две разные команды для понижения версии пакета, обе работают одинаково.
1. используя команды понижения:
2. используя команды истории yum. Синтаксис yum история отмена ID
Как мы видим, мы успешно понизили предыдущую версию. Приведенная выше команда удалит текущую версию и установит предыдущую.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Читайте также: