4. Atualizações a partir do Debian 12 (bookworm)

4.1. Preparando para a atualização

Nós sugerimos que antes de atualizar você também leia as informações em Problemas a serem considerados para a trixie. Esse capítulo aborda potenciais problemas, os quais não estão diretamente relacionados ao processo de atualização, mas que ainda pode ser importante conhecer antes que você comece.

4.1.1. Faça backup de quaisquer dados ou informações de configuração

Antes de atualizar o seu sistema, é fortemente recomendado que você faça um backup completo ou, pelo menos, faça backup de quaisquer dados ou informações de configuração que você não possa perder. As ferramentas de atualização e o processo são bastante confiáveis, mas uma falha de hardware no meio de uma atualização pode resultar em um sistema severamente danificado.

As coisas principais a fazer backup são o conteúdo de /etc, /var/lib/dpkg, /var/lib/apt/extended_states e a saída de:

$ dpkg --get-selections '*' # (the quotes are important)

Caso você utilize o aptitude para gerenciar pacotes no seu sistema, você também terá que fazer backup de /var/lib/aptitude/pkgstates.

O processo de atualização em si não modifica nada no diretório /home. Porém, alguns aplicativos (por exemplo, partes da suíte Mozilla e os ambientes de área de trabalho GNOME e KDE) são conhecidos por sobrescrever as configurações existentes dos usuários com novos padrões, quando uma nova versão do aplicativo é iniciada pela primeira vez por um usuário. Como precaução, você pode fazer um backup dos arquivos e diretórios ocultos ("dotfiles") nos diretórios home dos usuários. Esse backup pode ajudar a recuperar ou recriar antigas configurações. Você também pode informar os usuários sobre isso.

Qualquer operação de instalação de pacote deve ser executada com privilégios de superusuário, para isso, faça login como root ou use o su ou o sudo para obter os direitos de acesso necessários.

A atualização possui algumas condições prévias; você deve verificá-las antes de começar a executar a atualização.

4.1.2. Informe os usuários com antecedência

É sensato informar a todos os usuários com antecedência sobre qualquer atualização que você esteja planejando, embora os usuários que acessem o seu sistema via uma conexão ssh pouco devam notar durante a atualização, e devam ser capazes de continuar trabalhando.

Caso você deseje tomar precauções extras, faça backup ou desmonte a partição /home antes de atualizar.

Você terá que fazer uma atualização de kernel quando atualizar para o trixie, então, uma reinicialização será necessária. Normalmente, isso será feito depois que a atualização for concluída.

4.1.3. Preparar para indisponibilidade de serviços

Poderão haver serviços que são oferecidos pelo sistema que estão associados aos pacotes que serão incluídos na atualização. Se esse for o caso, por favor, note que durante a atualização esses serviços serão interrompidos, enquanto os seus pacotes associados estiverem sendo substituídos e configurados. Durante esse tempo, esses serviços não estarão disponíveis.

O tempo exato de indisponibilidade desses serviços variará dependendo do número de pacotes sendo atualizados no sistema, e isso também inclui o tempo que o administrador do sistema gasta respondendo a quaisquer perguntas de configuração das atualizações dos pacotes. Observe que, se o processo de atualização for deixado sem acompanhamento e o sistema solicitar uma entrada durante a atualização, existe uma grande possibilidade dos serviços ficarem indisponíveis 1 por um período significativo de tempo.

If the system being upgraded provides critical services for your users or the network 2, you can reduce the downtime if you do a minimal system upgrade, as described in Minimal system upgrade, followed by a kernel upgrade and reboot, and then upgrade the packages associated with your critical services. Upgrade these packages prior to doing the full upgrade described in Upgrading the system. This way you can ensure that these critical services are running and available through the full upgrade process, and their downtime is reduced.

4.1.4. Preparar para recuperação

Embora o Debian tente garantir que o seu sistema permaneça inicializável a todo o momento, sempre há uma chance de você ter problemas ao reinicializar o seu sistema após a atualização. Problemas possíveis conhecidos são documentados neste e nos próximos capítulos destas notas de lançamento.

Por essa razão faz sentido garantir que você seja capaz de recuperar o seu sistema caso não consiga reinicializar ou, para sistemas gerenciados remotamente, não consiga levantar a rede.

Caso você esteja atualizando remotamente através de um link ssh, é recomendado que você tome as precauções necessárias para ser capaz de acessar o servidor por meio de um terminal serial remoto. Há uma chance de que, após atualizar o kernel e reinicializar, você tenha que corrigir a configuração do sistema por meio de um console local. Além disso, se o sistema for reinicializado acidentalmente no meio de uma atualização, existe uma chance de que você precise recuperá-lo usando um console local.

Para recuperação de emergência, nós geralmente recomendamos usar o modo de recuperação do Instalador Debian da trixie. A vantagem de usar o instalador é que você pode escolher entre os seus vários métodos para encontrar aquele que melhor se adéqua à sua situação. Para mais informações, por favor, consulte a seção "Recuperando um sistema quebrado" no capítulo 8 do Guia de Instalação (at https://www.debian.org/releases/trixie/installmanual) e a FAQ do Instalador Debian.

Se isso falhar, você precisará de uma forma alternativa de inicializar seu sistema, e assim poder acessá-lo e repará-lo. Uma opção é usar uma imagem especial de recuperação ou de instalação "live". Após a inicialização a partir dela, você deverá ser capaz de montar o seu sistema de arquivos raiz e fazer chroot nele para investigar e corrigir o problema.

4.1.4.1. Shell de depuração durante a inicialização usando initrd

O pacote initramfs-tools inclui um shell de depuração 3 nas initrds que ele gera. Se, por exemplo, a initrd for incapaz de montar o seu sistema de arquivos raiz, você será deixado nesse shell de depuração que tem comandos básicos disponíveis para ajudar a rastrear o problema e possivelmente corrigi-lo.

Coisas básicas a serem verificadas: presença dos arquivos de dispositivo corretos em /dev; quais módulos estão carregados (cat /proc/modules); saída do dmesg com erros de carregamento de drivers. A saída do dmesg também exibirá quais arquivos de dispositivo foram associados a quais discos; você deve verificar isso com a saída do echo $ROOT para certificar-se que o sistema de arquivos raiz está no dispositivo esperado.

Caso você consiga resolver o problema, digitando exit sairá do shell de depuração e continuará o processo de inicialização a partir do ponto em que ele falhou. Claro que você também precisará corrigir a causa do problema e gerar novamente a initrd, pois assim a próxima inicialização não falhará novamente.

4.1.4.2. Shell de depuração durante a inicialização usando systemd

No caso da inicialização falhar sob o systemd, é possível obter um shell root de depuração alterando-se a linha de comando do kernel. Caso a inicialização básica funcione, mas alguns dos serviços falhem ao iniciar, pode ser útil adicionar systemd.unit=rescue.target aos parâmetros do kernel.

Caso contrário, o parâmetro do kernel systemd.unit=emergency.target irá fornecer-lhe um shell root no momento mais imediato possível. Porém, isso é feito antes da montagem do sistema de arquivos raiz com permissões de leitura e escrita. Você terá que fazer isso manualmente com:

# mount -o remount,rw /

Outra abordagem seria habilitar o "shell de depuração inicial" do systemd via debug-shell.service. Na inicialização seguinte, esse serviço abrirá um shell de login root no tty9 nas primeiras etapas do processo de inicialização. Isso pode ser habilitado com o parâmetro de inicialização do kernel systemd.debug-shell=1, ou tornado persistente com systemctl enable debug-shell (nesse caso, isso deve ser desabilitado novamente quando a depuração estiver completa).

Mais informações sobre depuração de uma inicialização quebrada sob systemd podem ser encontradas no artigo Diagnosticando problemas de inicialização, do Freedesktop.org.

4.1.5. Preparar um ambiente seguro para a atualização

Importante

If you are using some VPN services (such as tinc) consider that they might not be available throughout the upgrade process. Please see Prepare for downtime on services.

A fim de conseguir uma margem extra de segurança quando atualizar remotamente, nós sugerimos que você execute o processo de atualização no console virtual fornecido pelo programa screen, que permite uma reconexão segura e garante que o processo de atualização não seja interrompido mesmo se o processo de conexão remota falhar temporariamente.

Os usuários do daemon watchdog fornecido pelo pacote micro-evtd devem parar o daemon e desabilitar o temporizador de vigilância antes da atualização, para evitar uma reinicialização espúria no meio do processo de atualização:

# service micro-evtd stop
# /usr/sbin/microapl -a system_set_watchdog off

4.2. Inicie a partir de um Debian "puro"

O processo de atualização descrito neste capítulo foi projetado para sistemas Debian estáveis "puros". O APT controla o que é instalado no seu sistema. Se a sua configuração do APT faz menção a fontes adicionais além da bookworm, ou se você tiver pacotes instalados de outros lançamentos ou de terceiros, então para garantir um processo de atualização confiável, talvez você queira iniciar removendo esses fatores de complicação.

O principal arquivo de configuração que o APT usa para decidir de quais fontes ele deve baixar pacotes é /etc/apt/sources.list, mas ele também pode usar arquivos do diretório /etc/apt/sources.list.d/ - para detalhes, veja sources.list(5). Se o seu sistema estiver usando múltiplos arquivos source-list, então você precisa garantir que eles estejam consistentes.

4.2.1. Atualização para Debian 12 (bookworm)

Somente atualizações a partir do Debian 12 (bookworm) são suportadas. Veja a sua versão do Debian com:

$ cat /etc/debian_version

Please follow the instructions in the Release Notes for Debian 12 at https://www.debian.org/releases/bookworm/releasenotes to upgrade to Debian 12 first if needed.

4.2.2. Atualize para a última versão pontual

Esse procedimento assume que o seu sistema foi atualizado para a versão pontual mais recente do bookworm. Caso você não tenha feito isso ou não tenha certeza, siga as instruções em Atualizando seu sistema bookworm.

4.2.3. Debian Backports

O Debian Backports permite aos usuários do Debian estável (stable) executar pacotes com versões mais atuais (porém menos testados e com menor suporte de segurança). A Equipe Debian Backports mantêm um subconjunto de pacotes oriundos da próxima versão do Debian, ajustados e recompilados para uso na versão estável atual do Debian.

Os pacotes de bookworm-backports têm números de versão mais baixos que a versão em trixie, assim eles devem ser atualizados normalmente para a trixie, da mesma forma que pacotes "puros" da bookworm durante a atualização da distribuição. Embora não existam potenciais problemas conhecidos, os caminhos de atualização a partir da backports são menos testados, e correspondentemente incorrem em maior risco.

Cuidado

Embora o Debian Backports seja suportado, não existe um caminho de atualização limpo a partir de sloppy backports (o qual usa entradas source-list do APT referenciando bookworm-backports-sloppy).

As with Unofficial sources, users are advised to remove "bookworm-backports" entries from their APT source-list files before the upgrade. After it is completed, they may consider adding "trixie-backports" (see https://backports.debian.org/Instructions/).

Para mais informação, consulte a página Backports na wiki.

4.2.4. Prepare o banco de dados de pacotes

You should make sure the package database is ready before proceeding with the upgrade. If you are a user of another package manager like aptitude or synaptic, review any pending actions. A package scheduled for installation or removal might interfere with the upgrade procedure. Note that correcting this is only possible if your APT source-list files still point to "bookworm" and not to "stable" or "trixie"; see Verificando seus arquivos source-list do APT.

4.2.5. Remova pacotes obsoletos

É uma boa ideia remover pacotes obsoletos do seu sistema antes da atualização. Eles podem introduzir complicações durante o processo de atualização e podem apresentar riscos de segurança pois não são mais mantidos.

4.2.6. Remover pacotes não-Debian

Abaixo estão dois métodos para encontrar pacotes instalados que não vêm de Debian, utilizando apt ou apt-forktracer. Por favor note que nenhum dos dois é 100% preciso (e.g. o exemplo do apt irá listar pacotes que já foram disponibilizados por Debian mas já não o são, tais como pacotes de kernel antigos).

$ apt list '?narrow(?installed, ?not(?origin(Debian)))'
$ apt-forktracer | sort

4.2.7. Remova arquivos de configuração que sobrarem

Uma atualização anterior pode ter deixado cópias não usadas de arquivos de configuração; versões antigas de arquivos de configuração, versões fornecidas pelos mantenedores dos pacotes, etc. Remover arquivos que sobraram de atualizações anteriores pode evitar confusão. Encontre esses arquivos que sobraram com:

# find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'

4.2.8. Os componentes non-free e non-free-firmware

Caso você tenha firmware não-livre instalado, é recomendado adicionar non-free-firmware à sua sources-list do APT. Para detalhes, veja Áreas do repositório e Firmware não-livre movido para o seu próprio componente no repositório.

4.2.9. A seção "proposed-updates"

Caso você tenha a seção proposed-updates presente nos seus arquivos source-list do APT, você deve removê-la antes de tentar atualizar o seu sistema. Essa é uma precaução para reduzir a probabilidade de conflitos.

4.2.10. Fontes não oficiais

Caso você tenha quaisquer pacotes não-Debian no seu sistema, você deve estar ciente de que esses podem ser removidos durante a atualização por causa de dependências conflitantes. Se esses pacotes foram instalados pela adição de um repositório extra nos seus arquivos source-list do APT, você deve verificar se tal repositório também oferece pacotes compilados para trixie e alterar o item da fonte adequadamente ao mesmo tempo que alterar os seus itens das fontes para os pacotes Debian.

Some users may have unofficial backported "newer" versions of packages that are in Debian installed on their bookworm system. Such packages are most likely to cause problems during an upgrade as they may result in file conflicts 4. Possible issues during upgrade has some information on how to deal with file conflicts if they should occur.

4.2.11. Desabilitando o pinning do APT

Caso você tenha configurado o APT para instalar determinados pacotes a partir de uma distribuição diferente da "stable" (por exemplo, da "testing"), você pode ter que mudar sua configuração de pinning do APT (guardada em /etc/apt/preferences e /etc/apt/preferences.d/) para permitir a atualização dos pacotes para as versões existentes na nova versão "stable". Mais informações sobre pinning do APT podem ser encontradas em apt_preferences(5).

4.2.12. Verificar se gpgv está instalado

APT necessita de gpgv versão 2 ou superior para verificar as chaves utilizadas para assinar os lançamentos de trixie. Já que gpgv1 tecnicamente satisfaz a dependência mas apenas é útil nalgumas cirscunstâncias especializadas, os utilizadores poderão querer assegurar que está instalada a versão correta, com:

# apt install gpgv

4.2.13. Verifique a situação dos pacotes

Independentemente do método usado para atualização, é recomendado que você primeiro verifique a situação de todos os pacotes, e verifique se todos estão em uma situação atualizável. O seguinte comando exibirá quaisquer pacotes que tenham uma situação de "Half-Installed" ou "Failed-Config", e aqueles com alguma situação de erro.

$ dpkg --audit

Você também pode inspecionar o estado de todos os pacotes em seu sistema utilizando o aptitude ou com comandos como

$ dpkg -l | pager

ou

# dpkg --get-selections '*' > ~/curr-pkgs.txt

Alternativamente, você também pode usar apt.

# apt list --installed > ~/curr-pkgs.txt

É desejável remover quaisquer retenções (holds) em pacotes antes da atualização. Se qualquer pacote que seja essencial para a atualização estiver retido, a atualização falhará.

$ apt-mark showhold

Se você alterou e recompilou um pacote localmente, e não o renomeou ou colocou uma época na versão, você deve colocá-lo em retenção para evitar que seja atualizado.

O estado do pacote em "hold" pelo apt pode ser alterado usando:

# apt-mark hold package_name

Substitua hold por unhold para remover o estado "hold".

Se existir alguma coisa que você precise corrigir, é melhor certificar-se que os seus arquivos source-list do APT ainda se refiram a bookworm, como explicado em Verificando seus arquivos source-list do APT.

4.3. Preparando os arquivos source-list do APT

Antes de iniciar a atualização, você deve reconfigurar os arquivos source-list do APT (/etc/apt/sources.list e arquivos sob /etc/apt/sources.list.d/) para adicionar fontes para trixie e, geralmente, remover fontes para bookworm.

O APT irá considerar todos os pacotes que podem ser encontrados através de qualquer arquivo configurado, e instalar o pacote com o número de versão mais elevado, dando prioridade à primeira entrada nos ficheiros. Por isso, se tiver várias localizações de mirrors, liste primeiro os que estiverem em discos locais e depois CD-ROMs e só depois os mirrors remotos.

Uma versão pode normalmente ser referida tanto pelo seu codinome (por exemplo, "bookworm", "trixie") como pelo seu nome de estado (ou seja, "oldstable", "stable", "testing", "unstable"). Referir-se a uma versão pelo seu codinome tem a vantagem que você nunca será surpreendido por uma nova versão, e por essa razão essa abordagem é adotada aqui. Isso significa certamente que você mesmo terá que ficar atento aos anúncios de lançamento. Caso você use o nome de estado em vez disso, apenas verá grandes quantidades de atualizações dos pacotes disponíveis assim que um lançamento acontecer.

O Debian fornece duas listas de e-mail de anúncios para ajudar você a ficar atualizado sobre informações relevantes relacionadas a lançamentos do Debian:

4.3.1. Adicionar fontes da Internet ao APT

Em novas instalações, o padrão é que o APT seja configurado para usar o serviço de CDN para APT do Debian, o qual deve assegurar que os pacotes sejam automaticamente baixados de um servidor próximo de você em termos de rede. Como esse é um serviço relativamente novo, instalações antigas podem ter configurações que ainda apontam para algum dos servidores de Internet principais do Debian ou algum dos seus espelhos. Se você ainda não o fez, é recomendado passar a usar o serviço de CDN na sua configuração do APT.

Para fazer uso do serviço de CDN, adicione uma linha como esta na sua configuração de fonte do APT (assumindo que você esteja usando main e contrib):

deb https://deb.debian.org/debian trixie main contrib

Após adicionar suas novas fontes, desabilite as linhas "deb" previamente existentes pondo um sinal de cerquilha (#) no início delas.

No entanto, se você obtiver melhores resultados usando um espelho específico que seja mais próximo de você em termos de rede, essa opção ainda está disponível.

Os endereços dos espelhos do Debian podem ser encontrados em https://www.debian.org/distrib/ftplist (veja na seção "lista de espelhos do Debian").

Por exemplo, suponha que seu espelho Debian mais próximo seja http://mirrors.kernel.org. Se você examinar esse espelho com um navegador web, você notará que os diretórios principais estão organizados assim:

http://mirrors.kernel.org/debian/dists/trixie/main/...
http://mirrors.kernel.org/debian/dists/trixie/contrib/...

Para configurar o APT para usar um determinado espelho, adicione uma linha como esta (novamente, assumindo que você esteja usando main e contrib):

deb http://mirrors.kernel.org/debian trixie main contrib

Note que o "dists" é adicionado implicitamente, e os argumentos após o nome da versão são usados para expandir o caminho em múltiplos diretórios.

Novamente, depois de adicionar as suas novas fontes, desabilite as entradas de repositórios previamente existentes.

4.3.2. Adicionando fontes ao APT para um espelho local

Em vez de usar espelhos de pacotes remotos, é possível que você deseje modificar os arquivos source-list do APT para usar um espelho em um disco local (possivelmente montado sobre NFS).

Por exemplo, seu espelho de pacotes pode estar sob /var/local/debian/, e ter diretórios principais assim:

/var/local/debian/dists/trixie/main/...
/var/local/debian/dists/trixie/contrib/...

Para usar isso com o apt, adicione esta linha ao seu arquivo sources.list:

deb file:/var/local/debian trixie main contrib

Note que o "dists" é adicionado implicitamente, e os argumentos após o nome da versão são usados para expandir o caminho em múltiplos diretórios.

Após adicionar suas novas fontes, desabilite as entradas de repositórios previamente existentes em arquivos source-list do APT pondo um sinal de cerquilha (#) no início delas.

4.3.3. Adicionando fontes ao APT a partir de mídia ótica

Caso você queira usar somente DVDs (ou mídias de CD ou Blu-ray), comente as entradas já existentes em todos os arquivos source-list do APT pondo um sinal de cerquilha (#) no início delas.

Certifique-se de que existe uma linha em /etc/fstab que habilite a montagem do seu drive de CD-ROM no ponto de montagem /media/cdrom. Por exemplo, caso /dev/sr0 seja o seu drive de CD-ROM, o /etc/fstab deve conter uma linha como:

/dev/sr0 /media/cdrom auto noauto,ro 0 0

Note que não deve haver nenhum espaço entre as palavras noauto,ro no quarto campo.

Para verificar se funciona, insira um CD e tente executar

# mount /media/cdrom    # this will mount the CD to the mount point
# ls -alF /media/cdrom  # this should show the CD's root directory
# umount /media/cdrom   # this will unmount the CD

Depois, execute:

# apt-cdrom add

para cada CD-ROM de binários do Debian que você tiver, para adicionar os dados a respeito de cada CD à base de dados do APT.

4.4. Atualizando pacotes

A forma recomendada para atualizar a partir de versões anteriores do Debian é usar a ferramenta de gerenciamento de pacotes apt.

Nota

O apt é indicado para uso interativo, e não deve ser usado em scripts. Em scripts, deve-se usar apt-get, o qual tem uma saída estável mais apropriada para análise.

Não esqueça de montar todas as partições necessárias (especialmente as partições raiz e /usr) com permissões de leitura e escrita, com um comando como:

# mount -o remount,rw /mountpoint

Em seguida, você deve confirmar novamente se as entradas das fontes do APT (em /etc/apt/sources.list e nos arquivos sob /etc/apt/sources.list.d/) referem-se a "trixie" ou a "stable". Não devem haver quaisquer entradas de fontes que apontem para bookworm

Nota

As linhas de fontes de um CD-ROM podem às vezes se referir à "unstable"; embora isso possa ser confuso, você não deve alterá-las.

4.4.1. Gravando a sessão

É fortemente recomendado que você utilize o programa /usr/bin/script para gravar uma transcrição da sessão de atualização. Então, se um problema ocorrer, você terá um registro do que aconteceu e, se necessário, poderá fornecer informações precisas em um relatório de bug. Para iniciar a gravação, digite:

# script -t 2>~/upgrade-trixie-step.time -a ~/upgrade-trixie-step.script

ou semelhante. Caso você tenha que reexecutar a transcrição (por exemplo, caso você tenha que reinicializar o sistema) use valores diferentes para step para indicar qual etapa da atualização você está registrando. Não ponha o arquivo de transcrição em um diretório temporário como /tmp ou /var/tmp (arquivos nesses diretórios podem ser excluídos durante a atualização ou durante qualquer reinicialização).

The typescript will also allow you to review information that has scrolled off-screen. If you are at the system's console, just switch to VT2 (using Alt+F2) and, after logging in, use

# less -R ~root/upgrade-trixie.script

para visualizar o ficheiro.

Depois que você tiver completado a atualização, pode parar o script digitando exit no prompt.

O apt também regitrará os estados dos pacotes modificados em /var/log/apt/history.log e a saída do terminal em /var/log/apt/term.log. O dpkg registrará, adicionalmente, todas as modificações de estados de pacotes em /var/log/dpkg.log. Caso você use o aptitude, ele também registrará as modificações de estado em /var/log/aptitude.

Caso você tenha usado a opção -t para o script, você pode usar o programa scriptreplay para reproduzir toda a sessão:

# scriptreplay ~/upgrade-trixie-step.time ~/upgrade-trixie-step.script

4.4.2. Atualizando a lista de pacotes

Primeiro, a lista de pacotes disponíveis para a nova versão precisa ser obtida. Isso é feito executando:

# apt update

Nota

Os usuários do apt-secure podem encontrar problemas ao usar aptitude ou apt-get. Para o apt-get, você pode usar apt-get update --allow-releaseinfo-change.

4.4.3. Certifique-se que você tem espaço suficiente para a atualização

You have to make sure before upgrading your system that you will have sufficient hard disk space when you start the full system upgrade described in Upgrading the system. First, any package needed for installation that is fetched from the network is stored in /var/cache/apt/archives (and the partial/ subdirectory, during download), so you must make sure you have enough space on the file system partition that holds /var/ to temporarily download the packages that will be installed in your system. After the download, you will probably need more space in other file system partitions in order to both install upgraded packages (which might contain bigger binaries or more data) and new packages that will be pulled in for the upgrade. If your system does not have sufficient space you might end up with an incomplete upgrade that is difficult to recover from.

O apt pode exibir informações detalhadas sobre o espaço em disco necessário para a instalação. Antes de executar a atualização, você pode ver essa estimativa executando:

# apt -o APT::Get::Trivial-Only=true full-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB of archives.
After this operation, AAAMB of additional disk space will be used.

Nota

Running this command at the beginning of the upgrade process may give an error, for the reasons described in the next sections. In that case you will need to wait until you've done the minimal system upgrade as in Minimal system upgrade before running this command to estimate the disk space.

Caso você não tenha espaço suficiente em disco para a atualização, o apt o avisará com uma mensagem como esta:

E: You don't have enough free space in /var/cache/apt/archives/.

Nessa situação, certifique-se de liberar espaço suficiente antes. Você pode:

  • Remover pacotes que tenham sido previamente baixados para instalação (em /var/cache/apt/archives). Limpar o cache de pacotes executando apt clean removerá todos os arquivos de pacote previamente baixados.

  • Remover pacotes esquecidos. Caso você tenha utilizado o aptitude ou apt para instalar pacotes manualmente na bookworm, ele terá mantido o registro desses pacotes que você instalou manualmente e será capaz de marcar como redundantes aqueles pacotes obtidos apenas por dependências que não são mais necessárias devido ao pacote ter sido removido. Eles não marcarão para remoção pacotes que você instalou manualmente. Para remover automaticamente pacotes que não são mais usados, execute:

    # apt autoremove
    

    Você também pode usar o deborphan, debfoster ou cruft para encontrar pacotes redundantes. Não remova cegamente os pacotes apresentados por essas ferramentas, especialmente se você estiver usando opções agressivas diferentes do padrão que são propensas a falsos positivos. É altamente recomendado que você revise manualmente os pacotes sugeridos para remoção (ou seja, seus conteúdos, tamanhos e descrições) antes de removê-los.

  • Remova pacotes que ocupam muito espaço e não são necessários atualmente (você sempre pode reinstalá-los após a atualização). Caso você tenha o popularity-contest instalado, você pode usar o popcon-largest-unused para listar os pacotes que você não usa e que ocupam mais espaço. Você pode encontrar apenas os pacotes que ocupam mais espaço em disco com dpigs (disponível no pacote debian-goodies) ou com o wajig (executando wajig size). Eles também podem ser encontrados com o aptitude. Inicie o aptitude em modo terminal cheio, selecione Visões > Nova lista de pacotes plana, pressione l e digite ~i, então pressione S e digite ~installsize. Isso lhe dará uma lista conveniente para trabalhar.

  • Remover traduções e arquivos de localização do sistema se eles não forem necessários. Você pode instalar o pacote localepurge e configurá-lo para que apenas alguns locales selecionados sejam mantidos no sistema. Isso reduzirá o espaço de disco consumido em /usr/share/locale.

  • Mover temporariamente para um outro sistema, ou remover permanentemente, registros do sistema existentes em /var/log/.

  • Usar um /var/cache/apt/archives temporário: Você pode usar um diretório de cache temporário de um outro sistema de arquivos (dispositivo de armazenamento USB, disco rígido temporário, sistema de arquivos já em uso, ...).

    Nota

    Não use uma montagem NFS pois a conexão de rede pode ser interrompida durante a atualização.

    Por exemplo, caso você tenha um pendrive USB montado em /media/pendrive:

    1. remova os pacotes que tenham sido previamente baixados para instalação:

      # apt clean
      
    2. copie o diretório /var/cache/apt/archives para o drive USB:

      # cp -ax /var/cache/apt/archives /media/usbkey/
      
    3. monte o diretório de cache temporário no lugar do atual:

      # mount --bind /media/usbkey/archives /var/cache/apt/archives
      
    4. após a atualização, restaure o diretório /var/cache/apt/archives original:

      # umount /var/cache/apt/archives
      
    5. remova o /media/pendrive/archives restante.

    Você pode criar o diretório de cache temporário em qualquer sistema de arquivos que esteja montado em seu sistema.

  • Do a minimal upgrade of the system (see Minimal system upgrade) or partial upgrades of the system followed by a full upgrade. This will make it possible to upgrade the system partially, and allow you to clean the package cache before the full upgrade.

Note que para remover pacotes com segurança, é aconselhável mudar os seus arquivos source-list do APT de volta para bookworm como descrito em Verificando seus arquivos source-list do APT.

4.4.4. Pare sistemas de monitoramento

Como o apt pode precisar interromper temporariamente serviços em execução no seu computador, provavelmente é uma boa ideia parar serviços de monitoramento que possam reiniciar outros serviços terminados durante a atualização. No Debian, o monit é um exemplo de tal serviço.

4.4.5. Atualização mínima do sistema

In some cases, doing the full upgrade (as described below) directly might remove large numbers of packages that you will want to keep. We therefore recommend a two-part upgrade process: first a minimal upgrade to overcome these conflicts, then a full upgrade as described in Upgrading the system.

Para fazer isso, primeiro execute:

# apt upgrade --without-new-pkgs

Isso tem como efeito a atualização daqueles pacotes que podem ser atualizados sem a necessidade de que quaisquer outros pacotes sejam removidos ou instalados.

A atualização mínima do sistema também pode ser útil quando o sistema estiver com pouco espaço e uma atualização completa não puder ser feita devido às restrições de espaço.

Se o pacote apt-listchanges estiver instalado, ele mostrará (em sua configuração padrão) informações importantes sobre pacotes atualizados em um paginador depois de baixar os pacotes. Pressione q após a leitura para sair do paginador e continue a atualização.

4.4.6. Atualizando o sistema

Uma vez que você tenha cumprido os passos anteriores, agora está pronto para continuar com a parte principal da atualização. Execute:

# apt full-upgrade

Isso realizará uma atualização completa do sistema, instalando as versões mais novas disponíveis de todos os pacotes, e resolvendo todas as mudanças de dependências possíveis entre pacotes em lançamentos diferentes. Se necessário, instalará alguns pacotes novos (normalmente novas versões de bibliotecas, ou pacotes renomeados), e removerá quaisquer pacotes obsoletos em conflito.

Quando atualizar a partir de um conjunto de CDs/DVDs/BDs, será pedido para inserir discos específicos em vários pontos durante a atualização. Você pode ter que inserir o mesmo disco várias vezes; isso é devido a pacotes inter-relacionados que foram espalhados através dos discos.

As novas versões dos pacotes instalados atualmente que não puderem ser atualizadas sem mudar a situação da instalação de um outro pacote serão deixadas em sua versão atual (exibidas como "held back"). Isso pode ser resolvido tanto utilizando o aptitude para escolher esses pacotes para instalação, como tentando apt install pacote.

4.5. Possíveis problemas durante a atualização

As seções seguintes descrevem problemas conhecidos que podem aparecer durante uma atualização para a trixie.

4.5.1. O full-upgrade falha com "Could not perform immediate configuration"

Em alguns casos a etapa apt full-upgrade pode falhar após baixar os pacotes com:

E: Could not perform immediate configuration on 'package'.  Please see man 5 apt.conf under APT::Immediate-Configure for details.

Caso isso ocorra, executar apt full-upgrade -o APT::Immediate-Configure=0 em vez disso deve permitir que a atualização prossiga.

Outra possível solução para esse problema é adicionar temporariamente as fontes do bookworm e trixie aos seus arquivos source-list do APT e executar apt update.

4.5.2. Remoções esperadas

The upgrade process to trixie might ask for the removal of packages on the system. The precise list of packages will vary depending on the set of packages that you have installed. These release notes give general advice on these removals, but if in doubt, it is recommended that you examine the package removals proposed by each method before proceeding. For more information about packages obsoleted in trixie, see Obsolete packages.

4.5.3. Loops de conflitos ou pré-dependências

Algumas vezes é necessário habilitar a opção APT::Force-LoopBreak no APT para que seja possível remover temporariamente um pacote essencial devido a um loop de "Conflitos/Pré-Dependências". O apt o alertará sobre isso e cancelará a atualização. Você pode contornar isso especificando a opção -o APT::Force-LoopBreak=1 na linha de comando do apt.

É possível que uma estrutura de dependências do sistema possa estar tão corrompida de modo que necessite de intervenção manual. Normalmente, isso significa usar o apt ou

# dpkg --remove package_name

para eliminar alguns dos pacotes problemáticos, ou

# apt -f install
# dpkg --configure --pending

Em casos extremos, você poderá ter que forçar a reinstalação com um comando como

# dpkg --install /path/to/package_name.deb

4.5.4. Conflitos de arquivo

Os conflitos de arquivo não devem ocorrer caso você atualize a partir de um sistema "puro" bookworm, mas podem ocorrer caso você tenha portes retroativos não oficiais instalados. Um conflito de arquivo resultará em um erro como:

Unpacking <package-foo> (from <package-foo-file>) ...
dpkg: error processing <package-foo> (--install):
trying to overwrite `<some-file-name>',
which is also in package <package-bar>
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
<package-foo>

Você pode tentar resolver um conflito de arquivo com a remoção forçada do pacote mencionado na última linha da mensagem de erro:

# dpkg -r --force-depends package_name

Após consertar as coisas, você deve ser capaz de continuar a atualização repetindo os comandos do apt descritos anteriormente.

4.5.5. Mudanças de configuração

Durante a atualização, serão feitas perguntas com relação a configuração ou reconfiguração de diversos pacotes. Quando você for perguntado se algum arquivo no diretório /etc/init.d, ou o arquivo /etc/manpath.config deve ser substituído pela versão do mantenedor do pacote, normalmente é necessário responder "yes" para garantir a coerência do sistema. Você sempre pode reverter para as versões antigas, já que serão guardadas com uma extensão .dpkg-old.

Caso você não tenha certeza do que fazer, anote o nome do pacote ou arquivo e resolva em um momento posterior. Você pode procurar no arquivo transcrito para rever as informações que estavam na tela durante a atualização.

4.5.6. Mudança de sessão para o console

Caso você esteja executando a atualização usando o console local do sistema, você pode achar que em alguns momentos durante a atualização o console é comutado para uma visão diferente e você perde a visibilidade do processo de atualização. Por exemplo, isso pode acontecer em sistemas com interface gráfica quando o gerenciador de tela é reiniciado.

Para recuperar o console onde a atualização estava em execução você terá que usar Ctrl+Alt+F1 (se estiver na tela de inicialização gráfica) ou Alt+F1 (se estiver no console local em modo texto) para mudar de volta para o terminal virtual 1. Substitua F1 pela tecla de função com o mesmo número do terminal virtual onde a atualização estava em execução. Você também pode usar Alt+Seta-Esquerda ou Alt+Seta-Direita para mudar entre os diferentes terminais em modo texto.

4.7. Preparar para a próxima versão

Após a atualização, existem diversas coisas que você pode fazer para preparar para a próxima versão.

4.7.1. Expurgando pacotes removidos

Em geral, é aconselhável expurgar pacotes removidos. Isso é especialmente verdadeiro caso os mesmos tenham sido removidos em uma atualização da versão anterior (por exemplo, de uma atualização do bookworm) ou foram fornecidos por terceiros. Em particular, scripts antigos init.d têm sido conhecidos por causarem problemas.

Cuidado

Ao expurgar um pacote, geralmente os seus arquivos de log também serão expurgardos, então, é possível que você queira fazer um backup deles primeiro.

O seguinte comando apresenta uma lista de todos os pacotes removidos que podem ter deixado arquivos de configuração no sistema (se houver):

$ apt list '~c'

Os pacotes podem ser removidos utilizando apt purge. Supondo que você queira expurgar todos eles de uma vez, você pode usar o seguinte comando:

# apt purge '~c'

4.8. Pacotes obsoletos

Ao introduzir vários novos pacotes, a trixie também aposenta e omite muitos pacotes antigos que estavam na bookworm. Não é fornecido um caminho de atualização para esses pacotes obsoletos. Apesar de nada lhe impedir de continuar a usar um pacote obsoleto enquanto o desejar, o projeto Debian normalmente descontinuará o suporte de segurança para o mesmo um ano após o lançamento da trixie 5, e não fornecerá normalmente outro suporte nesse meio tempo. Substituí-los por alternativas disponíveis, caso existam, é recomendado.

Existem muitas razões pela quais os pacotes podem ter sido removidos da distribuição: eles não são mais mantidos pelo upstream; não existe mais nenhum Desenvolvedor Debian interessado em manter os pacotes; a funcionalidade que eles fornecem foi substituída por um software diferente (ou uma nova versão); ou eles não são mais considerados adequados para o trixie devido a bugs nos mesmos. Nesse último caso, os pacotes podem ainda estar presentes na distribuição "unstable".

"Pacotes Obsoletos e Criados Localmente" podem ser listados e expurgados a partir da linha de comando com:

$ apt list '~o'
# apt purge '~o'

O Sistema de Rastreamento de Bugs do Debian frequentemente fornece informações adicionais sobre a razão da remoção do pacote. Você deve revisar tanto os relatórios de bug arquivados para o próprio pacote quanto os relatórios de bug arquivados para o pseudo-pacote ftp.debian.org.

Para uma lista de pacotes obsoletos para a trixie, por favor, consulte Pacotes obsoletos dignos de nota.

4.8.1. Pacotes fictícios transitórios

Alguns pacotes da bookworm podem ter sido substituídos na trixie por pacotes fictícios transitórios, os quais são substitutos projetados para simplificar as atualizações. Se, por exemplo, um aplicativo que anteriormente era um pacote simples foi dividido em vários pacotes, um pacote transitório pode ser fornecido com o mesmo nome do pacote antigo e com dependências apropriadas para fazer com que os novos pacotes sejam instalados. Depois disso ter acontecido, o pacote fictício redundante pode ser removido seguramente.

As descrições dos pacotes fictícios transitórios geralmente indicam o seu propósito. No entanto, elas não são uniformes; em particular, alguns pacotes fictícios ("dummy") são projetados para continuarem instalados, com a finalidade de incluir uma suíte de software completa, ou acompanhar a última versão atual de algum programa. Você pode também considerar útil o deborphan com as opções --guess-* (por exemplo, --guess-dummy) para detectar pacotes fictícios transitórios em seu sistema.

1

Se a prioridade do debconf estiver configurada em um nível muito alto, você pode evitar perguntas de configuração, mas os serviços que dependam de respostas predefinidas que não são aplicáveis aos seu sistema falharão ao iniciar.

2

Por exemplo: serviços de DNS ou DHCP, especialmente quando não há redundância ou substituto em caso de falha ("failover"). No caso do DHCP, os usuários finais poderão ser desconectados da rede se o tempo de concessão ("lease time") for menor do que o tempo que leva para completar o processo de atualização.

3

Esse recurso pode ser desabilitado adicionando o parâmetro panic=0 aos seus parâmetros de inicialização.

4

O sistema de gerenciamento de pacotes do Debian normalmente não permite que um pacote remova ou atualize um arquivo pertencente a outro pacote, a menos que ele tenha sido definido para substituir esse pacote.

5

Ou enquanto não existir outro lançamento durante esse período de tempo. Normalmente, apenas duas versões estáveis são suportadas em um dado momento.