Aktualizácia systému Debian na verziu 11 Bullseye
Cieľ
Chcem aktualizovať serverový operačný systém Debian z verzie 10 Buster na najnovšiu stabilnú verziu 11 Bullseye. Aktualizáciu chcem uskutočniť počas normálnej prevádzky serveru, bez odstávky, respektíve s minimálnym časom nedostupnosti jednotlivých služieb.
Debian 11 „Bullseye“ bol vydaný 14. augusta 2021, posledná aktualizácia – Debian 11.8 bola uvoľnená 7. októbra 2023.
Upozornenie
Proces povýšenia operačného systému je delikátna záležitosť zložená z viacerých po sebe nasledujúcich krokov. Je veľmi dôležité úplne porozumieť jednotlivým krokom a dodržať ich presné poradie.
Nesprávne alebo nepresne zadané príkazy, či príkazy zadané v nesprávnom poradí môžu viesť až k úplnému odstaveniu či znefunkčneniu celého serveru.
Riešenie
Bežná aktualizáciu systému
Pred samotnou aktualizáciou operačného systému na novšiu verziu vykonám tradičnú aktualizáciu všetkých nainštalovaných súčastí.
sudo apt update
apt list --upgradable
sudo apt upgrade
sudo apt full-upgrade
Odstránim všetky skôr nainštalované, ale už nepotrebné balíčky a ich súčasti a odstránim aj všetky pred tým stiahnuté balíčky.
sudo apt autoremove
sudo apt autoclean
Skontrolujem či v systéme neostali predsa zvyšky po predchádzajúcich aktualizáciách, kópie konfiguračných súborov a tak podobne.
sudo find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
Ak som s výsledkom spokojný, reštartujem počítač, aby sa všetky vykonané zmeny naplno prejavili.
sudo systemctl reboot
Kontrola stavu pred povýšením
Skontrolujem stav jednotlivých nainštalovaných balíčkov a ich pripravenosť na aktualizáciu. Výstup nasledujúceho príkazu zobrazí všetky balíčky, ktoré sa nepodarilo správne nainštalovať (majú príznaky ako napr. Half-Installed
alebo Failed-Config
).
sudo dpkg --audit
Skontrolujem či nemajú niektoré balíčky nastavený príznak hold
(pozdržať pred aktualizáciou).
sudo dpkg --get-selections | grep 'hold$'
sudo apt-mark showhold
Záloha
Vykonám zálohu podľa najlepšieho vedomia a svedomia.
Aktualizácia repozitárov
Vytvorím záložné kópie zoznamov zdrojov softwaru.
mkdir ~/aptbackup
sudo cp -v /etc/apt/sources.list ~/aptbackup
sudo cp -rv /etc/apt/sources.list.d/ ~/aptbackup
V originálnych zoznamoch zdrojov nahradím repozitáre pre Debian 10 Buster repozitármi pre novší Debian 11 Bullseye.
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/*
Debian 11 mierne pozmenil spôsob pomenovania repozitáru s bezpečnostnými opravami. Pôvodný názov repozitáru napríklad buster/updates
sa zmenil na bullseye-security
. Viď bod 5.1.3
zoznamu možných problémov
pri prechode na Bullseye.
Preto si ako administrátor otvorím konfiguračný súbor so zoznamom softwarových zdrojov.
sudo nano /etc/apt/sources.list
Potom v nich vyhľadám (v zoznamoch zdrojov) riadky končiace sa reťazcom bullseye/updates main
a upravím ich na:
deb http://deb.debian.org/debian-security bullseye-security main
deb-src http://deb.debian.org/debian-security bullseye-security main
Po všetkých úpravách by nakoniec zoznam zdrojov mal vyzerať takto:
deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main
deb http://deb.debian.org/debian-security/ bullseye-security main
deb-src http://deb.debian.org/debian-security/ bullseye-security main
deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main
Na záver tohto kroku vykonám aktualizáciu repozitárov.
sudo apt update
Minimálna aktualizácia systému
Najskôr vykonám aktualizáciu už nainštalovaných súčasti operačného systému. Aktualizujú sa také balíčky, ktoré je možné aktualizovať bez toho aby sa pridávali alebo odstraňovali ďalšie súvisiace balíčky.
sudo apt upgrade --without-new-pkgs
Povýšenie systému na Debian 11 Bullseye
Následne vykonám kompletnú aktualizáciu operačného systému na najnovšiu verziu.
sudo apt full-upgrade
Po úspešnom ukončení aktualizácie vykonám reštartovanie operačného systému.
sudo systemctl reboot
Odstránenie nepotrebných balíčkov
Po vydarenom povýšení systému môžem odstrániť skôr nainštalované, ale ďalej už nie potrebné balíčky. Odstránim aj všetky stiahnuté balíčky.
sudo apt --purge autoremove
sudo apt autoclean
Príprava na ďalšie vydanie
Na záver vykonám kontrolu, nechám si vypísať zoznam odstránených balíčkov po ktorých mohlo v systéme niečo ostať (napr. konfiguračné súbory a podobne).
sudo dpkg -l | awk '/^rc/ { print $2 }'
Ak mi je jasné o aké balíčky ide a som si istý, že ich môžem kompletne so všetkým odstrániť, vykonám to:
sudo apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
Ešte posledný reštart.
sudo systemctl reboot
A to by už malo byť vážne všetko.