Saudações.
Esse tutorial é um guia de upgrade a quente do Debian 12 (bookworm) para o Debian 13 (trixie).
O conteúdo a seguir acumula minhas experiências no assunto.
1 – Cuidados com rollback
Antes de atualizar você precisa estar ciente de que há um risco do sistema quebrar.
É uma ótima ideia montar um novo sistema do zero na versão nova (13) e migrar os dados e aplicações e ao final, aposentar o sistema antigo (arquivar, jamais destruir).
Cuidados:
- Backup: Analise os softwares em execução e faça backup das configurações e dos arquivos;
- Relatório: Tenha um tutorial próprio de montagem de cada serviço e experimente em laboratório se tudo funciona bem com as novas versões;
- Snapshot: Se seu sistema está rodando em VM, faça um snapshot quente (com a VM ligada), depois desligue-a e faça um snapshot frio, ligue-a e veja se tudo funciona;
Se você sentir o risco não continue e estude mais.
2 – Pre-Upgrade
Para que o Debian salte da versão 12 para a versão 13 ele deve estar completamente atualizado na versão 12 atual.
- RUIM: Debian 12.2 => Upgrade para Debian 13.4;
- BOM: Debian 12.2 => Upgrade até Debian 12.14 => Upgrade geral para 13.4;
2.1 – Cuidado com os programas
Embora pareça simples, o maior problema acontece nos pacotes individuais instalados no sistema.
Se você instalou o MariaDB na versão 12.2, precisará atualizá-lo para a versão mais nova do MariaDB da versão 12.14, o que pode significar mudanças profundas entre as versões do MariaDB e conflitos entre a configuração moderna e sua configuração legado.
Todos os softwares rodando no sistema precisam ser analisados e atualizados individualmente.
2.2 – Cuidado com o Kernel Linux
Outro ponto importante é o KERNEL, atualizar o kernel pode quebrar drivers, principalmente os drivers compilados no framework KMS (Kernel Mode Setting).
Eu enfrentei esse problema ao atualizar dois programas:
- OpenVPN;
- NVidia GPU.
Nos dois casos o problema foi da mesma natureza:
- 1. Ao instalar no Debian 12 (12.8) o pacote compilou o driver DCO para a versão do kernel presente no sistema;
- 2. Ao realizar o upgrade, um novo kernel foi instalado e ficou no bootloader aguardando o reboot para subir, o que não fiz imediatamente;
- 3. Os softwares continuaram rodando no kernel atual;
- 4. Quando a VM reiniciou, o novo kernel subiu e os softwares não tinham o pacote DKMS para ele;
- 5. Sistema quebrou (parou de rodas minhas IAs na GPU, o OpenVPN ficou sem DCO).
Solução: Sempre reiniciar imediatamente após o upgrade e forçar a atualização dos programas que usam drivers e KSM.
2.4 – Parar serviços
Pare todos os programas. Isso impede que o softwares continuem rodando e gerem arquivos, transações, operações externas que poderão ser perdidas caso você volte ao snapshot anterior ao início do upgrade.
Bash
# Lista todos os serviços ativos systemctl list-units --type=service --state=running; # Obs.: # - ignore "ssh" e "sshd" caso esteja fazendo o upgrade remotamente # - ignore "bind", "named", "dns" ou "unbound" caso esteja rodando DNS local # Parar servico, exemplo: systemctl stop nome_do_servico_aqui; # - Exemplo: Parando "apache2" systemctl stop apache2;Atenção: Anote todos os serviços que você parou com “systemctl stop nome_do_servico” para iniciá-los ao final do tutorial.
2.5 – Preparativos de sanidade
Alguns procedimentos devem ser realizados para garantir que o update e upgrade não passe para versões superiores com problemas não resolvidos na versão atual.
Bash
# Corrige pacotes com problemas apt --fix-broken install; # Finaliza configurações pendentes dpkg --configure -a; # Verifica o espaco em disco (recomendavel ter no minimo 5 GB livres) df -h; df -h /; # Anotar a lista de pacotes instalados NOWDT=$(date "+%Y-%m-%d-%T"); dpkg --get-selections '*' > /root/dpkg-packet-list-$NOWDT.txt;2.6 – Atualizar todos os programas
Vamos atualizar os softwares e o kernel primeiro.
Bash
# Atualizar indice de pacotes apt -y update; # Atualizar pacotes instalados para suas respectivas versoes correntes apt -y upgrade; apt -y upgrade --without-new-pkgs; # Atualizar base do debian (ainda dentro da versao corrente) apt -y dist-upgrade; apt -y full-upgrade; # Limpar pacotes velhos: apt -y autoremove; apt -y clean;Execute os comandos acima várias vezes (copie e cole tudo, aguarde, cole tudo novamente). Faça isso até que não haja mais procedimentos de update de pacotes.
CUIDADO: Se o sistema corrompeu ou apresentou falhas em qualquer comando acima, pare. Analise com cuidado e se não conseguir resolver faça rollback da VM (recupere o snapshot).
CONTINUANDO: Se os updates e upgrades de pacotes terminaram com sucesso, faça o reboot para subir o kernel atualizado:
Bash
# Reiniciar para subir kernel atualizado com serviços atualizados reboot; # ou: shutdown -r now;Você deve repetir os comandos de update e reboot até que o Debian não tenha mais nada para atualizar. Só então você estará livre para realmente fazer o upgrade final.
3 – Atualizando para Debian 13
Agora é a hora de fazer o salto da v12 para a v13.
Pare todos os serviços novamente (capítulo 2.4).
3.1 – Novo repositório
Será preciso configurar o repositório do Debian 13 (trixie) encima do repositório atual (bookworm).
Bash
# Incluir variaveis da distribuicao no shell corrente (o ponto e' o comando) . /etc/os-release; # Backup do arquivo de repositorios principal cp /etc/apt/sources.list /root/apt-sources-list-$VERSION_ID.backup; # Substitui todas as menções a 'bookworm' por 'trixie' em 'sources.list' sed -i 's/bookworm/trixie/g' /etc/apt/sources.list; # Faz o mesmo para arquivos de configuração adicionais find /etc/apt/sources.list.d \ -type f \ -name '*.list' \ -exec sed -i 's/bookworm/trixie/g' {} + ; # - Configurar para usar repositorio do Debian 13 explicitamente cat > /etc/apt/sources.list << EOF deb http://deb.debian.org/debian/ trixie main non-free-firmware deb-src http://deb.debian.org/debian/ trixie main non-free-firmware deb http://security.debian.org/debian-security trixie-security main non-free-firmware deb-src http://security.debian.org/debian-security trixie-security main non-free-firmware deb http://deb.debian.org/debian/ trixie-updates main non-free-firmware deb-src http://deb.debian.org/debian/ trixie-updates main non-free-firmware EOF # Garantir /tmp publico por seguranca chmod 777 /tmp;3.2 – Lançar o foguete
Essa é a hora da verdade, o momento em que o sistema será convertido para a nova versão:
Bash
# Iniciar atualizacao apt -y clean; apt -y update; apt -y --fix-broken install; apt -y autoremove; # Repetir (1) apt update; apt -y upgrade --without-new-pkgs; apt -y full-upgrade; apt -y --fix-broken install; apt -y autoremove; apt -y clean; # Repetir (2) apt -y update; apt -y upgrade; apt -y dist-upgrade --autoremove; apt -y --fix-broken install; apt -y autoremove; apt -y clean; # Repetir (3) apt -y update; apt -y upgrade; apt -y distro-upgrade; apt -y full-upgrade; apt -y upgrade --without-new-pkgs; apt -y --fix-broken dist-upgrade; apt -y --fix-broken install; apt -y autoremove; apt -y clean; # Remove pacotes de kernel antigos apt -y autoremove --purge; # Verifica a versão do sistema operacional lsb_release -aAgora reinicie o servidor para subir com o kernel atualizado.
Bash
# Reiniciar para subir kernel atualizado com serviços atualizados reboot; # ou: shutdown -r now;Após o reboot, execute novamente todos os comandos de update e upgrade.
Atenção: Pegue as notas de todos os serviços que você parou com “systemctl stop” e inicie-os agora com “systemctl start nome_do_servico“.
Concluindo o upgrade, garanta que os serviços foram iniciados
Se tudo está funcionando, parabéns, você é corajoso.
4 – Procedimentos de reparo
Caso você tenha quebrado o sistema e não consiga fazer rollback, você pode tentar recuperar o sistema corrompido com esses truques.
CUIDADO: Execute apenas em caso de emergência, é uma tentativa de recuperar, não há garantias.
Bash
# Fix de emergencia: dpkg --force-depends --purge apt dpkg; # Limpar cache de pacotes rm -rf /var/lib/dpkg/info/*; rm -rf /var/lib/dpkg/updates/*; rm /var/lib/dpkg/status; rm /var/lib/dpkg/available; touch /var/lib/dpkg/status; touch /var/lib/dpkg/available; # Tentar atualizar indice novamente: dpkg --configure -a; apt update; apt install --reinstall dpkg apt;Se o reparo acima funcionou, execute os comandos do capítulo 3.2 novamente.
Terminamos por hoje!
Patrick Brandão, patrickbrandao@gmail.com
“Pele por pele, e tudo quanto o
homem tem dará pela sua vida.“
“ha-satan”, o acusador, Jó 2:4
Bíblia Sagrada
.png)
há 6 dias
8



English (US) ·
Portuguese (BR) ·