Linux

Оновлюємо Debian 11 Bullseye до Debian 12 Bookworm

Всім привіт!

На цих вихідних відбувся реліз нової версії операційної системи Linux Debian 12, з внутрішнім іменем Bookworm

З цікавих оновлень особисто для мене стало те, що Kernel тепер версії 6.1 (Debian 11 використовував ядро 5.10), а systemd 252, Apt 2.6 та Glibc 2.36.
Для веб-сервера тепер можна поставити новіші пакети: Apache httpd 2.4.57, BIND 9.18, Dovecot 2.3.19, Exim 4.96, lighttpd 1.4.69, Postfix 3.7, MariaDB 10.11, nginx 1.22, PostgreSQL 15, PHP 8.2, Python 3.11.2
Ще оновились пакети веб-інтерфейсу для робочого столу, але для мене досі дивно звучить ідея використання графічного інтерфейсу на серверній системі.

Доцільність оновлюватись на щойно релізнуті версії приймайте для себе самостійно, далі інструкція для тих, хто вирішив що це є необхідним.

Самі розробники кажуть, що зараз не варто поспішати з оновленням, і краще дочекатись версії 12.1, оскільки кількість не закритих багів у релізі доволі велика
Але, разом з тим, завантажити версію 11,7 з офіційного сайту не просто, і на нові інсталяції Debian радять ставити саме Debian 12 (bookworm).

По-перше не забуваємо про бекапи чи снепшоти, або інші резервні копії копії, щоб на випадок чогось – завжди можна було повернутись на робочу версію системи.

По-друге, що перед оновленням системи важно оновити систему до останньої версії 11гілки, та перевірити наявність вільного місяця для оновлень:

root@deb11:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
tmpfs           593M  688K  593M   1% /run
/dev/sda2        45G  1.5G   41G   4% /
tmpfs           2.9G     0  2.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda1       511M  5.8M  506M   2% /boot/efi
tmpfs           593M     0  593M   0% /run/user/1000

Перевіряємо, що встановлена найсвіжіша актуальна версія 11,7:

cat /etc/debian_version

І оновлюємо пакети:

sudo apt update && sudo apt dist-upgrade

Після цього ми можемо замінити сорс ліст, відкриваємо файл

sudo nano /etc/apt/sources.list

і замінюємо вміст файлу ось таким (можна попередньо зберігати актуальний), замість deb.debian.org можна додати сервер що хоститься у країні де і ваші сервери.

deb http://deb.debian.org/debian bookworm main non-free-firmware
deb-src http://deb.debian.org/debian bookworm main non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware

Також ці зміни можна зробити виконавши команду:

sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

Після цього ще раз запускаємо команди оновлення, цього разу система вже оновиться до 12-ї версії

sudo apt update
apt list --upgradable
sudo apt dist-upgrade
sudo apt full-upgrade
sudo apt --purge autoremove

Так як у мене сервер на момент оновлень не використовується – я дозволяю системі автоматично перезапускати служби.

Далі можна трішки відволіктись, зробити каву, тощо.

Процес на віртуальній машині початкового класу, з встановленим веб-сервером, тривав до 7 хвилин, але все залежить від того що ви використовуєте на серверах, бо доволі потужний сервер з GitLab оновлювався майже одну годину.
По закінченню всих цих процедур – перезавантажуємо сервер:

reboot

Після оновлень – нас вітає вже система з 6 версією ядра:

Linux deb11 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Можемо перевірити версію вручну:

lsb_release -a
root@deb11:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm

Під час оновлення в мене оновився один пакет в репозиторії, тому після завантаження я рекомендую зробити update ще раз, особливо це актуально у випадках коли ставите оновлення вдень, а перезавантажитись є можливість вже уночі.

sudo apt update
apt list --upgradable
sudo apt dist-upgrade

Після цього тестуємо чи запустились всі сервіси, чи не з’явились помилки у логах, тощо.
Якщо все ок – вітаю вас і приємного користування!

Додатково зверну увагу, що в новому ПЗ часто знаходять вразливості після релізу, тому, навіть якщо це не станеться – раджу якийсь час перевіряти наявність оновлень для цього серверу частіше.

UPD (2023-06-13):
На одному з серверів ми зіштовхнулись з тим, що сторонні репозиторії видавали наступне повідомлення: Key is stored in legacy trusted.gpg keyring

В цілому – це лише повідомлення, і перевірка наявності оновлень відбувається все-одно, але щоб меседж не лякав колег – зробимо наступне:

sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d

Це доволі не елегантний метод вирішення цієї проблеми, але дієвий і достатній для тестового сервера.
Більш правильним методом було б зробити експорт таких ключів в оеремі файли і видалення їх з /etc/apt/trusted.gpg ,але в нашому випадку в цьому немає потреби 🙂