Upgrade Debian 11 -> Debian 12

Kroki

  1. Zrób snapshot VPS
  2. Rób upgrade w oknie serwisowym
  3. Nie rób tego przez zwykłe SSH – użyj screen lub tmux, żeby zerwanie połączenia nie przerwało procesu

Aktualizacja

# apt update
# apt upgrade
# apt autoremove

Do sprawdzenia:

// Sprawdź rzeczywistą wersję Debiana 
# cat /etc/debian_version 
# lsb_release -a
# php -v
# php -m
# apt-cache policy php8.4 

// Zainstalowane pakiety PHP (żeby wiedzieć co trzeba będzie doinstalować po upgrade) 
# dpkg -l | grep php

// Wersja MariaDB/MySQL
# mysql --version

// Wszystkie zewnętrzne repozytoria
# cat /etc/apt/sources.list 
# cat /etc/apt/sources.list.d/*.list


// Ile miejsca na dysku (upgrade potrzebuje ~2-3 GB)
# df -h

// Czy używasz PM2 / systemd do zarządzania procesami 
# systemctl list-units --type=service --state=running | grep -v systemd

// Jeśli Apache – czy używasz mod_php czy fpm? 
# apachectl -M | grep -E "php|proxy_fcgi|http2"


// W Debianie 12 Apache2 wymaga dla HTTP/2 żeby mpm_event był aktywny
# apachectl -M |grep mpm

# Uruchom upgrade w screen/tmux!

# apt install screen
# screen -S debian-upgrade 

// ... tutaj robisz upgrade 
// Ctrl+A, D żeby się odłączyć 
// screen -r debian-upgrade żeby wrócić

Upgrade

// Zmień źródła z bullseye na bookworm
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*.list

// Upgrade z nowymi źródłami
# apt update
# apt upgrade -y
# apt full-upgrade -y

Weryfikacja po upgrade
# apt full-upgrade 2>&1 | head -20
# grub-install --version

# reboot

Weryfikacja po reboocie

# lsb_release -a          # powinno być Debian 12
# php -v                  # powinno być 8.4.x
# php-fpm8.4 -v
# systemctl status php8.4-fpm
# systemctl status mariadb
# systemctl status apache2
# mysql --version
# node --version

Porządki

// Usuń niepotrzebne stare pakiety
# apt autoremove -y

// Wyczyść cache pakietów
# apt clean

Przebudowa indeksów w bazie postgresql

# su - postgres
# psql

> REINDEX DATABASE rag_db;

> ALTER DATABASE rag_db REFRESH COLLATION VERSION;