Linux - начинающим. Обновление Debian до следующего выпуска

  • Автор:

debian-ch-upgrading-000.pngНе так давно вышел очередной выпуск популярной операционной системы Debian - Debian 11 Bullseye, одновременно с этим событием в завершающую фазу жизненного цикла перешел один из предыдущих дистрибутивов - Debian 9, поддержка которого заканчивается в июне 2022 года. Это заставляет задуматься владельцев старых систем об обновлении до нового выпуска. Это весьма ответственный процесс, поэтому следует подойти к нему со всей серьезностью, постаравшись максимального оградить себя от неприятных неожиданностей. Как это сделать - расскажем в нашей статье.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

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

Подготовка системы

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

dpkg --audit

Если вывод команды вернул какой-либо результат, то в первую очередь следует попробовать автоматически решить проблемы командой:

apt install -f 

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

dpkg -r имя_пакета

Следующий шаг - выявление зафиксированных пакетов, которые были защищены от обновления. Это можно выяснить следующим образом:

dpkg --get-selections | grep 'hold$'

Снять фиксацию можно командой:

apt-mark unhold имя_пакета

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

Также будет не лишним очистить систему от накопившегося мусора. Многие пакеты при удалении оставляют файлы конфигурации или иные пользовательские данные, что может стать проблемой при последующей установке пакета уже в новом выпуске ОС. Для очистки оставшихся настроек выполните:

apt purge $(dpkg -l | awk '/^rc/ { print $2 }')

Ну и наконец обновите систему до последней версии пакетов:

apt update && apt full-upgrade

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

Установка новых источников пакетов

Как мы знаем, все пакеты Debian располагаются в специальных хранилищах - репозиториях и для обновления нам следует изменить адреса репозиториев предыдущего выпуска на адреса репозиториев целевого выпуска. Но в системе могут присутствовать и иные источники пакетов, которые могут вызвать проблемы во время обновления и поэтому их следует отключить.

В первую очередь проверим директорию /etc/apt/sources.list.d и переместим все найденные в ней файлы в другое расположение. Попутно рекомендуем изучить их, возможно не все из них вам нужны, а для нужных заранее следует обновить записи для нового выпуска системы.

Затем перейдем к основному списку репозиториев /etc/apt/sources.list, по правилам хорошего тона туда не следует добавлять своих записей, но может быть всякое, поэтому внимательно изучаем содержимое этого файла. В нем должны остаться три стандартных репозитория и шесть строк, по две строки на каждый. Ниже приведен их список для Debian 10:

deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main

deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main

deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main

debian-ch-upgrading-001.pngВсе остальные записи следует закомментировать и в будущем вынести их из этого файла в /etc/apt/sources.list.d, более подробно о репозиториях и управлении пакетами вы можете прочитать здесь.

Отдельного внимания заслуживает репозиторий backports, который также может быть подключен в системе, он предоставляет портированное из более новых версий ПО и такие пакеты могут вызвать затруднения при обновлении. Записи, относящиеся к данному репозиторию, следует удалить (в новом выпуске они вам не понадобятся), а пакеты, в случае возникновения проблем с их обновлением, придется удалить, для этого рекомендуется использовать команду:

dpkg -r --force-depends имя_пакета

Теперь, когда вы навели порядок в репозиториях, установим новые источники пакетов. Для выпусков включая Debian 10 это можно сделать простой заменой кодового имени дистрибутива в адресах репозиториев. Например, для обновления с Debian 9 Stretch на Debian 10 Buster следует выполнить:

sed -i "s/stretch/buster/g" /etc/apt/sources.list

Для Debian 11 Bullseye не все так просто, разработчики изменили адрес репозитория Security updates и поэтому придется действовать в два приема:

sed -i "s/buster\/updates/bullseye-security/g" /etc/apt/sources.list
sed -i "s/buster/bullseye/g" /etc/apt/sources.list

После чего еще раз проверим, что адреса источников пакетов в sources.list правильные и можем переходить непосредственно к обновлению системы.

Обновление выпуска Debian

Прежде всего обновим локальный кеш пакетов:

apt update

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

apt upgrade

Перед тем, как подтвердить выполнение команды, обращаем отдельное внимание на те пакеты, которые будут оставлены в неизменном виде, в нашем случае это curl, для их обновления потребуется что-то удалить из системы и это не всегда допустимо.

debian-ch-upgrading-002.pngВ большинстве случаев с этим можно разобраться позже, а пока - обновляемся.

В процессе обновления к нам может поступить запрос на перезапись конфигурационных файлов. Здесь следует придерживаться следующих правил: если конфигурационный файл меняли вы, то лучше оставить его исходную версию, если нет - то принять изменения. В случае сомнений можно просмотреть изменения нажав клавишу D, выйти из режима просмотра можно по клавише Q.

debian-ch-upgrading-003.pngПри этом следует понимать, что в новом выпуске системы новые пакеты, которые могут иметь новые настройки и если вы не уверены, что все делаете правильно, то лучше перезапишите файл конфигурации новой версией, старый останется тут же рядом с расширением dpkg-old. Уже после обновления вы сможете сравнить оба файла и перенести необходимые настройки из старого в новый.

По окончании обновления перезагружаемся и проверяем работу системы. Если у вас было установлено стороннее ПО из внешних репозиториев, то его пока не касаемся, оно еще не обновлялось и может работать некорректно, либо вообще не работать.

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

Для полного обновления выполните:

apt full-upgrade

В нашем случае видим, что пакет curl таки будет обновлен и при этом будет удалена одна библиотека и установлена новая.

debian-ch-upgrading-004.pngПосле чего еще раз перезагружаем систему. Теперь можно подключить сторонние репозитории, естественно обновленные, для обеспечения совместимости с новым выпуском и установить новые версии используемого ПО. И наконец, убедившись, что все работает как надо, выполним очистку от более не используемых пакетов:

apt autoremove

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

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дополнительные материалы:


  1. Linux - начинающим. Часть 1. Первое знакомство
  2. Linux - начинающим. Часть 2. Установка Ubuntu Server
  3. Linux - начинающим. Часть 3. Установка Debian 7 для сервера
  4. Linux - начинающим. Часть 4. Работаем с файловой системой. Теория
  5. Linux - начинающим. Часть 4. Работаем с файловой системой. Практика
  6. Linux - начинающим. Часть 5. Управление пакетами в Debian и Ubuntu
  7. Linux - начинающим. Часть 6. Управление пользователями и группами. Теория
  8. Linux - начинающим. Часть 6. Управление пользователями и группами. Практика
  9. Linux - начинающим. Часть 7. Потоки, перенаправление потоков, конвейер
  10. Настройка языка и региональных стандартов в Ubuntu Server/Debian
  11. Используем APT Pinning для закрепления пакетов в Debian и Ubuntu
  12. Linux - начинающим. Что такое Load Average и какую информацию он несет
  13. Обновляем снятый с поддержки дистрибутив Ubuntu
  14. Linux - начинающим. Обновление Debian до следующего выпуска
  15. Осваиваем эффективную работу в Midnight Commander
  16. Linux - начинающим. Что такое пространства подкачки и как они работают
  17. Linux - начинающим. Screen - многозадачность в терминале и ни единого разрыва!
  18. Linux - начинающим. Как узнать температуру процессора и накопителей
  19. Linux - начинающим. Как получить информацию об оборудовании ПК
  20. Linux - начинающим. Установка и первоначальная настройка Debian 11 для сервера

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments