
Upgrade Debiana z wersji 12 (bookworm) do 13 (trixie) to operacja, która na serwerach i kontenerach (np. Proxmox LXC / VM) powinna być robiona powtarzalnie i bez niespodzianek. Poniżej masz prosty poradnik oraz gotowe komendy do pobrania i uruchomienia skryptu.
Zanim odpalisz upgrade: zrób backup / snapshot. W Proxmoxie najlepiej vzdump lub snapshot. Na bare-metal chociaż kopia /etc, aplikacji i baz danych.
- Proxmox LXC / VM: backup (vzdump) albo snapshot.
- Serwer: backup /etc, /var/www, bazy danych (MySQL/PostgreSQL), certyfikaty SSL.
Skrypt do pobrania:
https://soban.pl/bash/upgrade_to_debian13.sh
1) Backup przed upgradem (przykłady)
Przykład backupu w Proxmox (na hoście Proxmox, podmień CTID/VMID):
|
1 |
vzdump 101 --mode snapshot --compress zstd --storage local |
Przykład prostego backupu katalogów na serwerze (to nie zastąpi pełnego snapshotu, ale lepsze to niż nic):
|
1 |
tar czf /root/backup_before_upgrade.tar.gz /etc /var/www /root |
2) Pobranie skryptu (wget / curl)
Najprościej: użyj wget. Jeśli komenda wget nie działa mimo zainstalowanego pakietu, użyj wariantu z pełną ścieżką /usr/bin/wget.
Wariant A (standardowy wget):
|
1 2 3 4 5 |
apt update apt install -y wget cd /root wget -O upgrade_to_debian13.sh https://soban.pl/bash/upgrade_to_debian13.sh chmod +x upgrade_to_debian13.sh |
Wariant B (wget z pełną ścieżką – pomaga gdy PATH jest skopany):
|
1 2 3 4 5 |
apt update apt install -y wget cd /root /usr/bin/wget -O upgrade_to_debian13.sh https://soban.pl/bash/upgrade_to_debian13.sh chmod +x upgrade_to_debian13.sh |
Wariant C (curl):
|
1 2 3 4 5 |
apt update apt install -y curl cd /root curl -fsSL -o upgrade_to_debian13.sh https://soban.pl/bash/upgrade_to_debian13.sh chmod +x upgrade_to_debian13.sh |
3) Pomoc skryptu (parametry)
Zanim odpalisz upgrade, zobacz listę parametrów i przykłady użycia:
|
1 2 |
cd /root ./upgrade_to_debian13.sh --help |
4) Upgrade Debian 12 → Debian 13 (system only)
Jeśli jesteś na Debian 12 (bookworm) i chcesz wykonać tylko upgrade systemu:
|
1 2 |
cd /root ./upgrade_to_debian13.sh |
Skrypt zrobi backup /etc/apt/sources.list, podmieni repozytoria na trixie, wykona apt update oraz apt full-upgrade, a na końcu autoremove i autoclean.
5) Auto-detekcja PHP/nginx i aktualizacja jeśli potrzeba
Jeśli kontener/VM jest webowy i chcesz, żeby skrypt sam wykrył użycie PHP (nginx + fastcgi_pass) i w razie potrzeby zaktualizował PHP oraz nginx:
|
1 2 |
cd /root ./upgrade_to_debian13.sh --auto |
6) Wymuszona aktualizacja PHP i nginx (PHP-FPM socket fix)
Jeśli chcesz wymusić instalację/upgrade PHP oraz automatyczne przestawienie konfiguracji nginx na poprawny socket PHP-FPM:
|
1 2 |
cd /root ./upgrade_to_debian13.sh --with-php --with-nginx --php-version 8.2 |
To polecenie instaluje PHP 8.2 (php-fpm + popularne moduły) i podmienia w konfiguracjach nginx stare ścieżki socketów na /run/php/php8.2-fpm.sock. Następnie wykonuje nginx -t oraz restart/reload usług.
7) Debian 13 już jest? Tryb tylko PHP/nginx (bez release upgrade)
Jeżeli system jest już na Debian 13 (trixie) i chcesz wykonać tylko aktualizację PHP/nginx bez ruszania repozytoriów systemowych:
|
1 2 |
cd /root ./upgrade_to_debian13.sh --php-nginx-only --with-php --with-nginx --php-version 8.2 |
8) Tryb testowy (dry-run)
Jeśli chcesz zobaczyć co skrypt zrobi, ale bez wykonywania zmian:
|
1 2 |
cd /root ./upgrade_to_debian13.sh --auto --dry-run |
9) Diagnostyka: wget jest zainstalowany, a nie działa
Jeżeli apt mówi, że wget jest zainstalowany, a shell krzyczy command not found, to najczęściej problem z PATH. Najprostsza obejściówka to użycie pełnej ścieżki: /usr/bin/wget.
|
1 2 3 4 |
echo "$PATH" command -v wget || true ls -l /usr/bin/wget || true /usr/bin/wget --version || true |
Podsumowanie
To rozwiązanie jest wygodne, bo w jednym miejscu masz upgrade Debian 12 → Debian 13 oraz (opcjonalnie) ogarnięcie problemów z PHP/nginx po upgrade (socket PHP-FPM, test konfiguracji nginx i restart usług). Najważniejsze: zrób backup przed upgradem i zawsze zacznij od --help, żeby widzieć dostępne opcje.