До основного вмісту

Оновлення 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/imya.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.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці