К основному содержимому

Обновление Debian до новой версии: Bullseye → Bookworm

VDS / VPS · 19.04.2026 · 4 мин чтения
Иллюстрация к статье «Обновление Debian до новой версии: Bullseye → Bookworm»

Debian выпускает новые stable-версии примерно раз в 2 года. Обновление между версиями — стандартная процедура, которая при правильной подготовке проходит без проблем.

Текущие версии Debian

Кодовое имяВерсияПоддержка
BookwormDebian 12До 2028
BullseyeDebian 11До 2026 (LTS)
BusterDebian 10Поддержка прекращена

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

# Полностью обновить текущую версию
sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove -y

# Сделать бэкап списка установленных пакетов
dpkg --get-selections > ~/installed-packages.txt

# Проверить свободное место (нужно минимум 5 ГБ)
df -h /

Шаг 2: Обновить источники пакетов

# Заменить bullseye на bookworm в sources.list
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*.list

# Проверить результат
cat /etc/apt/sources.list

Шаг 3: Обновление (запускать в screen!)

sudo screen -S debian-upgrade

sudo apt update
sudo apt upgrade --without-new-pkgs -y
sudo apt full-upgrade -y

# После завершения — перезагрузка
sudo reboot

Шаг 4: Проверка после обновления

# Версия Debian
cat /etc/debian_version
lsb_release -a

# Версия ядра
uname -r

# Проверить сервисы
sudo systemctl status nginx
sudo systemctl status mysql
💡 Пакеты с конфликтами: Если apt сообщает о конфликтах, сначала удалите проблемные сторонние пакеты (apt remove), обновитесь, затем установите их заново из нового репозитория.
⚠️ PHP и MySQL: Debian 12 поставляется с PHP 8.2 и MariaDB 10.11. Если ваш код требует другие версии — добавьте сторонние репозитории (ondrej/php, mariadb.org) ПОСЛЕ обновления системы.

Разбор типичных ошибок при обновлении

Ошибка "E: Unmet dependencies" во время apt full-upgrade — означает, что часть пакетов из старого релиза конфликтует с версиями из нового и apt не может выстроить порядок обновления автоматически.

E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
The following packages have unmet dependencies:
 php8.1-fpm : Depends: php8.1-common (= 8.1.2-1) but 8.2.7-1 is to be installed

Чаще всего причина — сторонний PPA-репозиторий (например, ondrej/php), который ещё не обновил пакеты под новый релиз. Временно отключите такие репозитории (sudo mv /etc/apt/sources.list.d/имя.list /root/), завершите обновление системы, затем верните репозиторий и обновите его отдельно.

Сервис не запускается после перезагрузки с ошибкой "Failed to start" — обычно означает, что конфигурационный файл использует синтаксис, удалённый в новой версии пакета.

systemctl status nginx
● nginx.service - A high performance web server
   Active: failed (Result: exit-code)
Sep 30 12:00:01 server nginx[1234]: nginx: [emerg] unknown directive "ssl_stapling_file"

Смотрите changelog пакета (apt changelog nginx) — новые версии периодически убирают устаревшие директивы. Исправьте конфиг и выполните nginx -t перед повторным запуском.

Способы обновления релиза: сравнение

СпособКак выполняетсяРискКогда применять
Ручная правка sources.listsed + apt full-upgradeСредний, требует внимательностиСерверы без графической оболочки, продакшн
do-release-upgradeОфициальный скрипт Ubuntu (не для Debian)Низкий, есть автооткатUbuntu Desktop/Server
Новый сервер + миграция данныхРазворачивается с нуля, данные переносятсяМинимальный для системы, время на переносКритичный прод, где простой недопустим

Когда апгрейд на месте не подходит

  • Сервер держит критичный прод без возможности простоя — риск получить нерабочую систему после full-upgrade выше, чем выгода от экономии времени. Разверните новый сервер и перенесите данные.
  • Используется много сторонних PPA и нестандартных пакетов — вероятность конфликтов версий растёт с каждым дополнительным репозиторием.
  • Нет актуального бэкапа — апгрейд на две версии вперёд (например, Buster → Bookworm без промежуточного Bullseye) официально не поддерживается и может сломать систему без возможности отката.

Проверка результата

  1. Убедитесь, что версия соответствует ожидаемой: cat /etc/debian_version должен показать номер новой стабильной версии.
  2. Проверьте, что все ключевые сервисы запущены: systemctl is-active nginx mysql php8.2-fpm — каждый должен вернуть active.
  3. Проверьте журнал на ошибки, возникшие после перезагрузки: journalctl -p err -b — критичных записей быть не должно.
  4. Откройте сайт в браузере и проверьте ключевые функции — обновление БД (MariaDB) при мажорном апгрейде иногда требует отдельного шага mysql_upgrade.

Ядро тоже стоит проверить и при необходимости обновить отдельно — см. статью про обновление ядра Linux. Если сервер работает на Ubuntu, а не Debian, процесс отличается — смотрите обновление Ubuntu.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке