quarta-feira, 30 de julho de 2025

Atualizar Debian Online de uma Versão para outra


PROLEGÔMENOS

Leia todo o artigo antes de sair executando comandos!
A atualização "online", ou seja, diretamente pelo sistema de uma versão atual para outra versão imediatamente superior do Debian, está muito boa desde o Debian 10 (Bullseye).
A vantagem é que você mantém o sistema sem precisar reinstalar do zero.
Não é recomendado atualizar pulando versões, por exemplo, do Debian 10 direto para o Debian 12, deve-se ir de uma versão para outra até chegar na mais atual.

Antes de realizar qualquer atualização é altamente recomendável fazer um backup dos dados para evitar perda em caso de problemas.
Escolha um horário no qual a internet esteja com pouco uso, de preferência quanto mais de noite ou de madrugada, melhor.
Caso fizer de madrugada, antes verifique se a operadora fará alguma manutenção na internet.

Ao utilizar esse tipo de atualização é necessário sempre observar o terminal durante a execução do comando "full-upgrade", esse comando é bastante seguro, porém, como é pela internet pode acontecer uma falha na rede e faltar algum pacote, corromper outro, etc, apesar de que o APT gerencia muito bem e retoma o download em caso de falha na rede.
Venho utilizando esse modo de atualização desde o Debian 9 (Stretch) e somente nessa época que tive alguns problemas, sendo que foram sanados manualmente depois, nada que exigisse muito esforço.
Atualmente essa atualização online do Debian está bastante segura.
Ela é desaconselhada para quem tem uma internet instável e/ou um hardware obsoleto (mais de 10 anos e sem upgrades).

Futuramente, caso for atualizar do Debian 12 (Bookworm) para o 13 (Trixie), basta seguir o algoritmo:

1- Atualizar o sistema atual;
2- Atualizar manualmente o arquivo /etc/apt/sources.list substituindo o conteúdo com os repositórios do novo sistema;
3- Executar os comandos de atualização.

O Debian segue há anos a mesma configuração de repositórios básicos bastando mudar o nome do sistema, por exemplo, do Debian 12 para o 13:

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

ficará

deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware

Porém, sempre é bom conferir antes se não teve alguma mudança.
Você pode encontrar os repositórios atuais e maiores explicações no link abaixo: https://wiki.debian.org/pt_BR/SourcesList

Antes da atualização propriamente dita veremos algumas explicações.
Lembrando que o Debian tira dos filmes Toy Story os nomes que acompanham os números das versões.

O APT (Advanced Package Tool), além de ser uma biblioteca, é um projeto amplo cujos planos originais incluem uma interface gráfica e outras funcionalidades.
Ele é baseado numa biblioteca que contém as aplicações principais e o 'apt-get' é a primeira interface — em linha de comando — que foi desenvolvida dentro do projeto.

O 'apt' é uma interface de linha de comandos de alto nível para o sistema de gestão de pacotes e também é uma interface para a biblioteca APT.

O 'aptitude' é uma interface de linha de comando para o sistema de pacotes Debian GNU/Linux da biblioteca APT.
Ele permite ao usuário visualizar a lista de pacotes e executar tarefas de gerenciamento de pacotes, como instalação, atualização e remoção de pacotes.

O 'apt-get' é a ferramenta de linha de comando (terminal) para lidar com pacotes e pode ser considerado o "back-end" dos usuários para outras ferramentas que usam a biblioteca APT.

O 'dpkg' é uma ferramenta de nível médio para  instalar, compilar, remover e gerir pacotes .deb. O próprio dpkg é controlado inteiramente via parâmetros de linha de comandos o que consiste exatamente de uma ação com zero ou mais opções.
A ação diz ao dpkg o que fazer e as opções, quando tiver, controlam o comportamento da ação. O 'dpkg' pode também ser usado como "front-end" para dpkg-deb e dpkg-query.

No diretório /etc/apt/sources.list.d é onde ficam os arquivos dos repositórios externos para atualizações de pacotes/programas como PostgreSQL, Google-chrome, Opera, Skype, etc. Quando for necessário criar um arquivo '.list' para um programa que você está instalando, sempre crie-o dentro de /etc/apt/sources.list.d.

No arquivo /etc/apt/sources.list é onde ficam os links para os repositórios do Debian.
Utilize sempre repositórios oficiais recomendados pelo site oficial do Debian.

Comandos utilizados

update e upgrade
Em qualquer dos casos (apt-get, apt ou aptitude), a ação update somente sincroniza os arquivos de índices de pacotes (atualiza a lista de pacote disponíveis e baixa somente alguns arquivos de informações) e sempre deve ser usada antes de qualquer comando com apt-get, apt ou aptitude.
A ação upgrade é a que realmente atualiza os pacotes. Sempre devem ser executadas juntas e em sequência: primeiro update, depois upgrade.
Obs.: Antes de qualquer ação (upgrade, install, remove, etc) é recomendado executar update.

full-upgrade
Executa a função de upgrade, mas removerá pacotes atualmente instalados (caso for necessário) e atualizará o sistema como um todo observando pacotes e suas dependências.
O full-upgrade executa o dist-upgrade, no entanto, é um comando mais moderno com alguma segurança a mais e é um pouco mais do que um simples alias para dist-upgrade.
No man apt não consta mais dist-upgrade, no man apt-get tem dist-upgrade, todavia, o apt-get aceita "apt-get full-upgrade".

autoremove
Usado para remover pacotes que foram instalados automaticamente para satisfazer dependências de outros pacotes e que já não são necessários.

autoclean
Limpa o cache do repositório de arquivos para que não cresça demais. Remove apenas os pacotes que não podem mais ser baixados (por terem sumido dos espelhos Debian).

purge ~c
Os pacotes são removidos e purgados (quaisquer arquivos de configuração são também apagados). O comando purge não remove arquivos de configuração e dados armazenados nos diretórios "home" dos usuários, somente remove de todos os outros diretórios onde o pacote esteja instalado.
É um alias para "purge ?config-files".

dpkg --configure -a
Configura um pacote que foi desempacotado, mas ainda não configurado. Se for fornecido -a ou --pending em vez de 'pacote', todos os pacotes desempacotados, mas não configurados serão configurados.

ATUALIZANDO

1- Atualize e limpe o sistema atual
$ sudo apt update
$ sudo apt autoclean
$ sudo apt upgrade

2- Abra o terminal
Faça backup do arquivo:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bkp

Abra o arquivo:
$ sudo vim /etc/apt/sources.list <<< utilizo o vim, você use teu editor preferido.

Na atualização online sempre deixe somente os repositórios básicos, depois, caso quiser, incremente o arquivo sources.list (veja a sugestão na CONCLUSÃO).

Apague todo o conteúdo e coloque dentro:

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

Salve e saia.

3- Execute:
$ sudo apt update
$ sudo apt autoclean
$ sudo apt full-upgrade

Aguarde, deverá terminar sem erros (pode demorar um pouco), depois reinicie o computador:
$ sudo reboot

4- Atualize o Debian 12, remova pacotes desnecessários e limpe o sistema:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt autoremove
$ sudo apt purge ~c
$ sudo apt autoclean

Verifique:
$ cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"

E terminamos a atualização online do Debian 11 para o 12.

Recomendações

Eu pessoalmente sempre executo no Debian, aproximadamente uma vez por semana no mínimo:
$ sudo apt update
$ sudo aptitude safe-upgrade

Antes você terá de  instalar o aptitude:
$ sudo apt update
$ sudo apt install aptitude

E o comando "sudo apt upgrade" substitua por:
$ sudo aptitude safe-upgrade

Os manuais recomendam apt-upgrade, pois dizem ele faz a mesma coisa que o "aptitude safe-upgrade" (faz uma atualização segura), mas por uma questão de tradição e por não estar convencido de que executam as mesmas ações (a documentação não é clara) eu continuo usando o aptitude para esta ação de atualização segura do sistema como um todo.

Uma sequência sugerida para manutenção regular do sistema (talvez a cada dois meses, depende do uso e caso aconteça alguma quebra de pacotes) é a seguinte (com sudo ou como root):
$ sudo apt -f install
$ sudo apt -f remove
$ sudo apt autoremove
$ sudo apt purge ~c
$ sudo apt autoclean
$ sudo dpkg --configure -a
$ sudo apt update
$ sudo aptitude safe-upgrade


CONCLUSÃO

SOURCES.LIST

Depois, caso queira incrementar o sources.list, substitua o conteúdo pelo seguinte:

#deb cdrom:[Debian GNU/Linux 12.11.0 _Bookworm_ - Official amd64 NETINST with firmware 20250517-09:51]/ bookworm contrib main non-free-firmware

deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
# deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

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

# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html

#_updates
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware

# Atualizações propostas para Debian 12
# deb https://deb.debian.org/debian/ bookworm-proposed-updates main contrib non-free-firmware non-free

# Backports, descomente se for estritamente necessário
# deb http://deb.debian.org/debian bookworm-backports main contrib non-free
# deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

Salve e saia.

Execute:
$ sudo apt update
$ sudo aptitude safe-upgrade

Maiores explicações sobre configuração e significado dos repositórios você encontra aqui:

Referências
man apt
man apt-get
man aptitude

Nenhum comentário:

Postar um comentário