Все, что нужно знать об обновлении Debian 9 и его новых возможностях

Сразу устанавливайте apt-listchanges перед переходом на Stretch. Без этого потеряете из виду критичные уведомления от пакетов. Никто вас не предупредит – получите баг на ровном месте. Особенно касается серверов с кастомными конфигурациями.

Уберите backports из sources.list до начала. Не уследите – потянется несовместимая зависимость. Потом ищите, кто виноват. Официальные зеркала Jessie и Stretch кардинально различаются по составу бинарей.

Отключите все сторонние репозитории. Все до одного. Любая лишняя строка – потенциальная точка сбоя. Хотите лишиться boot-загрузки из-за libpng? Пожалуйста. Особенно если используете старые DEB-пакеты, собранные вручную.

Внимание! Перед сменой версии сделайте полный снимок системы через rsync или clonezilla. Не думайте, что не пригодится. Пригодится.

Среди изменений – переход на MariaDB по умолчанию. Кто не уследил – остался без MySQL. Конфликты в миграции конфигов, проблемы с пользовательскими правами, несовместимость с кастомными скриптами. Проверяйте: systemctl status mariadb – должно быть зелёным. Нет – вы в ловушке.

udev пересобран. Изменены правила именования сетевых интерфейсов. Привычный eth0 может превратиться в enp0s3. Сломается всё, где жёстко прописан MAC или имя. Скрипты – в мусор. Проверьте /etc/network/interfaces и перезапустите networking.service вручную.

Переход с Python 2.x на Python 3.x в приоритете. Половина обвязки скриптов в системах мониторинга – устарела. Проверяйте shebang в своих bash-обвязках. Старый /usr/bin/python больше не гарантирует обратную совместимость. Кто не переписал – потерял контроль над логикой.

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

В systemd появились жёсткие таймауты и изменения в логике journalctl. Не читаете логи – не управляете ситуацией. Да, всё по-другому. Автоматические таймауты на юниты, логика перезапуска служб – обновлена. Проверьте свои unit-файлы. Ваша конфигурация – больше не гарантия загрузки.

Как безопасно выполнить обновление с Debian 8 до Debian 9

Сначала отключите все сторонние репозитории в /etc/apt/sources.list и в /etc/apt/sources.list.d/. Оставьте только официальные URL Jessie. Всё остальное – бомба замедленного действия.

Читайте также:  Полное руководство по созданию и настройке LVM в Linux для оптимального управления

Проверьте, нет ли сломанных пакетов:

dpkg --audit
apt-get check
apt-mark showhold

Найдёте хоть что-то – чините сразу. С переходом будет хуже.

Проверьте статус systemd:

systemctl list-units --failed

Любая мёртвая служба до смены версии – это потенциальный отказ на старте после перезагрузки.

Снимите слепок корневой точки:

rsync -aAXv / /mnt/backup --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}

Важно! Никогда не используйте live-сервер для перехода без полной копии. Откат невозможен.

Далее: замените Jessie на Stretch в /etc/apt/sources.list.

sed -i 's/jessie/stretch/g' /etc/apt/sources.list

Обновите индекс пакетов:

apt-get update

Установите aptitude, если его нет. Он точнее определяет конфликты.

Установите минимальный набор:

apt-get upgrade

А теперь – всё остальное:

apt-get dist-upgrade

Очистите остатки:

apt-get autoremove
apt-get autoclean

Завершите перезагрузкой:

reboot

Помните! После первого запуска проверьте dmesg и journalctl -p err. Не доверяйте внешнему виду – интерфейс может подняться, а служба упасть в тихом режиме.

Дополнительно: проверьте /etc/apt/preferences и наличие ручных пинов. Это может блокировать нужные версии и ломать зависимость. Ловушка для невнимательных.

Что изменилось в системе управления пакетами APT в Debian 9

apt install nginx

Теперь показывает зависимости, объём загрузки, сохраняет цветовую схему. Меньше шансов пропустить важную информацию. Да, apt-get остался, но он – пережиток. Не нужен без крайней необходимости.

Добавлена защита от неконтролируемого удаления. Случайный apt remove --purge больше не убьёт половину окружения. Покажет предупреждение. Если игнорируете – сами виноваты.

Изменения в файлах настроек apt.conf и preferences. Теперь используется более строгая проверка формата. Ошибка в синтаксисе – полный отказ запуска. Проверяйте через:

apt-config dump

Да, раньше прокатывало. Теперь – нет.

Добавлен параметр apt autoremove --purge. Теперь можно чистить вместе с конфигами без dpkg --purge. Ускоряет обслуживание. Примерно так:

apt autoremove --purge

Система кэширования изменилась. По умолчанию теперь не сохраняются устаревшие версии DEB-файлов. Меньше мусора в /var/cache/apt/archives. Но если вы используете локальный прокси или зеркала – это может стать проблемой.

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

Новый формат выхода при apt list --upgradable. Теперь включает больше данных, но не подходит для скриптов. Хардкорщики, которые парсили его через awk или cut, получат сбой. Используйте apt list --upgradable -qq для машинной обработки.

Читайте также:  Iptables прозрачное проксирование в squid

Формат логов /var/log/apt/history.log обновлён. Больше данных, но менее пригоден для grep без фильтров. Да, визуально удобно. Но автоматизация рвёт зубы. Проверьте свои скрипты мониторинга.

Помните! Новая версия APT агрессивнее в отношении неподписанных репозиториев. Отказ без уведомления. Проверьте ключи GPG. Без них – тишина и пустота.

Добавлена поддержка параллельной загрузки пакетов:

Acquire::Queue-Mode "access";

Вставьте в /etc/apt/apt.conf.d/99parallel – ускорите доставку. Но не переборщите: слабые CPU или медленные диски начнут задыхаться при множестве параллельных процессов.

Поддержка нового оборудования и драйверов в Debian 9

Ставьте ядро минимум 4.9. Всё ниже – бесполезный балласт. Именно с этим релизом начинается полноценная работа с современными чипсетами Intel, контроллерами NVMe и графикой от AMD поколения Polaris.

Проверьте текущее ядро:

uname -r

Если ниже – обновляйте вручную:

apt install linux-image-4.9.0-16-amd64

Теперь по железу. Самые ощутимые сдвиги:

  • Wi-Fi: Модуль iwlwifi обновлён. Добавлена поддержка Intel 7265, 8260, 3168. Без backports. Работает из коробки. Но без firmware-iwlwifi – пустота. Установите пакет вручную:

apt install firmware-iwlwifi

  • Видео: Встроенные графические ядра Intel (6-е и 7-е поколения Skylake/Kaby Lake) работают стабильно. Но требуются intel-microcode и firmware-misc-nonfree. AMD – через xf86-video-amdgpu, вместо radeon. Проверяйте Xorg лог, ищите строку:

(II) AMDGPU(0): [KMS]

  • NVMe: Контроллеры Samsung 960 EVO и подобные – поддержка появилась. Старые версии ядра игнорировали их как SATA-призраков. Теперь доступ к ним как к полноценным блочным устройствам:

lsblk | grep nvme

  • USB: Контроллеры xHCI ревизии 1.1 работают корректно. Проблемы с подгрузкой модулей решены. Пакет usbutils – для диагностики. Не установлен? Установите.

apt install usbutils

  • Звук: Поддержка HDA-кодеков обновлена. Особенно Realtek ALC2xx. Работает только при наличии firmware-realtek. Не ставите – нет звука. Всё просто.

Внимание! Без non-free репозитория большая часть встроенного железа не стартует. Добавьте его в /etc/apt/sources.list, иначе будете воевать с чёрным экраном.

Проверка прошивки на загрузке:

dmesg | grep -i firmware

Если видите failed to load – система не получила нужный blob. Решение – найти соответствующий пакет и установить его вручную. Или собрать прошивку из исходников. Удачи.

Читайте также:  Что такое облачные вычисления?

Сетевые адаптеры Realtek RTL8111/8168 теперь обрабатываются natively через r8169. В теории. На практике – лаги, обрывы, высокий ping. Решение:

  1. Удалить r8169: modprobe -r r8169
  2. Скачать и собрать r8168-dkms: apt install r8168-dkms
  3. Заблокировать r8169: echo "blacklist r8169" >> /etc/modprobe.d/blacklist.conf

Важно помнить: если оборудование не определяется – это не баг, это вы что-то не дочитали. Начинайте с lspci и lsmod. Без этого вы слепы.

Как настроить систему после обновления для стабильной работы

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

update-initramfs -u -k all

Далее – проверьте конфигурацию загрузчика. GRUB часто затирается при пересборке. Открываем /etc/default/grub, проверяем параметры GRUB_CMDLINE_LINUX и GRUB_TIMEOUT. После правки:

update-grub

Перепроверьте сетевые интерфейсы. Названия могли смениться с eth0 на enp0s3 или подобные. Не работают сервисы? Первым делом смотрите:

ip link show

А потом конфиг /etc/network/interfaces и /etc/systemd/network/, если вы используете systemd-networkd.

Теперь – автозапуск. Проверьте systemctl list-unit-files | grep enabled. Там часто остаются неиспользуемые демоны, поднятые по инерции. Не нужно – отключайте:

systemctl disable apache2

Внимание! Оставленные лишние службы – дыры в безопасности. Особенно если открыт наружный порт, а вы об этом забыли.

Далее – проверка зависимостей. Удаляем пакеты, оставшиеся как мусор:

apt autoremove

Проверка конфигураций. Сравнивайте вручную. Используйте diff или vimdiff для просмотра конфликтов в /etc. Особенно важно проверить:

  • /etc/ssh/sshd_config
  • /etc/fstab
  • /etc/cron.*
  • /etc/systemd/system/

Проверьте планировщик заданий. Cron может быть заменён на systemd timers, и старые задачи не будут исполняться. Ищите совпадения, проверяйте наличие таймеров:

systemctl list-timers

Права. Раз в год и палка стреляет, а sudo ломается. Проверяйте файл /etc/sudoers и группы пользователей:

getent group sudo

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

Логирование. Настройте logrotate и убедитесь, что rsyslog или journald не накапливают гигабайты мусора. Смотрим статус:

journalctl --disk-usage

Если выше 500M – чистим:

journalctl --vacuum-size=200M

Проверка безопасности: пересканируйте систему на открытые порты.

ss -tulnp

Ничего подозрительного? Отлично. Есть сюрпризы – ищите в /lib/systemd/system/ или в /etc/rc.local, если он ещё не вырезан.

Финал: перезапуск всей службы cron, ssh, nginx, или любой, что участвует в вашей схеме доступа и расписаний. Не перезапустили – работаем на авось.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *