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

4.1. Preparar para a atualização

Sugerimos que antes de atualizar que leia também a informação na Problemas a estar atento em trixie. Esse capítulo cobre potenciais problemas não diretamente relacionados com o processo de atualização mas, que no entanto, podem ser importantes conhecer antes de começar.

4.1.1. Salvaguardar quaisquer dados ou informação de configuração

Antes de atualizar o seu sistema é fortemente recomendado que faça uma cópia de segurança total, ou que pelo menos salvaguarde quaisquer dados ou informações de configuração que não se possa dar ao luxo de perder. As ferramentas de atualização e o processo são bastante fiáveis, mas uma falha de hardware durante a atualização poderia resultar num sistema extremamente danificado.

O principal a fazer backup é 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)

Se utilizar o aptitude para gerir os pacotes no seu sistema, também irá querer fazer backup a /var/lib/aptitude/pkgstates.

O processo de atualização em si não modifica nada no diretório /home. No entanto, algumas aplicações (e.g. partes do conjunto Mozilla, e dos ambientes de trabalho GNOME e KDE) são conhecidas por sobrescreverem configurações existentes dos utilizadores por novos valores predefinidos quando uma nova versão da aplicação é iniciada pela primeira vez por um utilizador. Como precaução, poderá querer fazer uma cópia de segurança aos ficheiros e diretórios ocultos ("dotfiles") nos diretórios dos utilizadores. Esta cópia de segurança pode ajudar a restaurar ou recriar as configurações antigas. Pode querer também informar os utilizadores acerca disto.

Qualquer operação de instalação de um pacote tem que ser corrida com privilégios de super-utilizador, por isso ou inicie uma sessão como root ou utilize su ou sudo para obter os direitos de acesso necessários.

Esta atualização tem algumas condições prévias, deverá verificá-las antes de iniciar a atualização.

4.1.2. Informar os utilizadores com antecedência

É sensato informar todos os utilizadores com antecedência sobre qualquer atualização que estiver a planear, apesar dos utilizadores que acedam ao sistema através uma ligação ssh pouco devem notar durante a atualização, e devem conseguir continuar a trabalhar.

Se quiser tomar precauções extra, faça uma cópia de segurança ou desmonte a partição /home antes de fazer a atualização.

Você terá de fazer uma atualização do kernel ao atualizar para trixie, por isso será necessário reiniciar a máquina. Tipicamente, isto será feito após terminar a atualização.

4.1.3. Preparar-se para indisponibilidade nos serviços

Podem existir serviços associados a pacotes que serão incluídos na atualização. Se for este o caso, note que, durante a atualização, esses serviços serão parados enquanto os pacotes a ser atualizados estão a ser substituídos e configurados. Durante este tempo, estes serviços não estarão disponíveis.

O tempo exacto que estes serviços estarão desligados irá variar dependendo do número de pacotes a serem atualizados no sistema, e também inclui o tempo que o administrador do sistema demora a responder às questões de configuração das diferentes atualizações de pacotes. Note que se o processo de atualização for deixado desacompanhado e o sistema solicitar alguma entrada durante toda a atualização, existe uma grande possibilidade dos serviços ficarem indisponíveis [1] durante um período de tempo significativo.

Se o sistema a ser atualizado disponibilizar serviços críticos para os seus utilizadores ou para a sua rede [2], pode reduzir o tempo de indisponibilidade se fizer uma atualização mínima ao sistema, conforme descrito na Minimal system upgrade, seguido de uma atualização ao kernel e de reiniciar e depois atualizar os pacotes associados aos seus serviços críticos. Atualize estes pacotes antes de fazer a atualização completa descrita na Upgrading the system. Deste modo pode assegurar que estes serviços críticos estão a funcionar e disponíveis durante o processo de atualização completa e assim o tempo de indisponibilidade é reduzido.

4.1.4. Preparar para recuperação

Embora Debian tente assegurar que o seu sistema se mantenha funcional em todos os momentos, há sempre a hipótese de experimentar problemas ao reiniciar o seu sistema após uma grande atualização. Os potenciais problemas conhecidos estão documentados neste e nos próximos capítulos destas Notas de Lançamento.

Por esta razão faz sentido assegurar que será capaz de recuperar o seu sistema se não conseguir reiniciar ou, para sistemas geridos remotamente, não conseguir ativar a rede.

Se estiver a atualizar remotamente através de uma ligação ssh é recomendado que tome as precauções necessárias para ser capaz de aceder ao servidor através de um terminal série remoto. Existe uma hipótese de que, após a atualização do kernel e de reiniciar, você tenha de corrigir a configuração do sistema através duma consola local. Além disso, se o sistema for reiniciado acidentalmente a meio de uma atualização existe a hipótese que necessite fazer a recuperação utilizando uma consola local.

Para uma recuperação de emergência geralmente recomendamos utilizar o modo de recuperação do Instalador Debian trixie. A vantagem em utilizar o instalador é que pode escolher de entre os seus muitos métodos o que melhor se adequar à sua situação. Para mais informação, por favor consulte a secção "Recuperar um Sistema Estragado" no capítulo 8 do Guia de instalação (em https://www.debian.org/releases/trixie/installmanual) e a FAQ do Instalador Debian.

Se isso falhar, irá necessitar de um modo alternativo para arrancar o seu sistema de forma a que lhe possa aceder e repará-lo. Uma opção é utilizar uma imagem especial de recuperação ou uma imagem live install. Após arrancar a partir daí, deverá ser capaz de montar o seu sistema de ficheiros raiz e fazer chroot nele para investigar e corrigir o problema.

4.1.4.1. Shell de depuração durante o arranque utilizando o initrd

O pacote initramfs-tools inclui uma shell de depuração [3] nos initrds que gera. Se, por exemplo, o initrd for incapaz de montar o sistema de ficheiros raiz, você será deixado nesta shell de depuração que tem comandos básicos para ajudar a descobrir e talvez resolver o problema.

Coisas básicas a verificar são: a presença dos ficheiros de dispositivo correctos em /dev; que módulos estão carregados (cat /proc/modules); mensagens do dmesg que podem ter erros no carregamento de drivers. As mensagens do dmesg também irão mostrar quais ficheiros de dispositivo estão associados a que discos; deve verificar isso com a mensagem de echo $ROOT para se certificar que o sistema de ficheiros raiz está no dispositivo esperado.

Se conseguir resolver o problema, escrever exit irá terminar a shell de depuração e continuar o processo de arranque a partir no ponto de onde falhou. Claro que também irá necessitar de corrigir o problema subjacente e gerar novamente initrd para que o próximo arranque não falhe novamente.

4.1.4.2. Shell de depuração durante o arranque utilizando o systemd

Se o arranque falhar sob systemd, é possível obter uma shell root de depuração ao alterar a linha de comandos do kernel. Se o arranque básico tiver sucesso, mas alguns serviços falharem o arranque, poderá ser útil acrescentar systemd.unit=rescue.target aos parâmetros do kernel.

Caso contrário, o parâmetro de kernel systemd.unit=emergency.target irá disponibilizar-lhe uma shell root no ponto mais cedo possível. No entanto, isto é feito antes de montar o sistema de ficheiros raiz com permissões de leitura-escrita. Terá de o fazer manualmente com:

# mount -o remount,rw /

Outra abordagem será habilitar "early debug shell" de systemd através de debug-shell.service. No próximo arranque este serviço irá abrir login de uma shell de root no tty9 muito cedo no processo de arranque. Pode ser habilitada com o parâmetro de arranque do kernel systemd.debug-shell=1, ou tornada permanente com systemctl enable debug-shell (neste caso deve ser desabilitada novamente quando a análise tiver terminado).

Pode ser encontrada mais informação sobre a depuração de um arranque problemático sob systemd no artigo Freedesktop.org Diagnosing Boot Problems.

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

Importante

Se estiver a utilizar alguns serviços VPN (tal como tinc) considere que estes podem não estar disponíveis durante o processo de atualização. Por favor veja a Preparar-se para indisponibilidade nos serviços.

De modo a ganhar uma margem extra de segurança quando atualizar remotamente, sugerimos que corra os processos de atualização na consola virtual disponibilizada pelo programa screen, que permite voltar a ligar de forma segura e assegura que o processo de atualização não é interrompido mesmo que o processo da ligação remota falhe temporariamente.

Os utilizadores do daemon watchdog disponibilizado pelo pacote micro-evtd devem parar o daemon e desabilitar o temporizador do watchdog antes da atualização, de modo a prevenir uma reinicialização indevida durante o processo de atualização:

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

4.2. Iniciar a partir de Debian "puro"

O processo de atualização descrito neste capítulo foi desenhado para sistemas "puros" de Debian stable. O APT controla o que é instalado no seu sistema. Se a sua configuração do APT mencionar fontes adicionais além de bookworm, ou se tiver instalado pacotes de outros lançamentos ou de terceiros, então para assegurar um processo de atualização fiável poderá querer começar por remover estes factores de complicação.

O ficheiro de configuração principal que o APT utiliza para decidir de quais fontes deve obter os pacotes é /etc/apt/sources.list, no entanto também pode utilizar ficheiros no diretório /etc/apt/sources.list.d/ - para detalhes veja sources.list(5). Se o seu sistema estiver a utilizar vários ficheiros source-list então terá de assegurar que estes se mantêm consistentes.

4.2.1. Atualizações para Debian 12 (bookworm)

Apenas são suportados upgrades de Debian 12 (bookworm). Veja a sua versão de Debian com:

$ cat /etc/debian_version

Por favor siga as instruções nas Notas de Lançamento para Debian 12 em https://www.debian.org/releases/bookworm/releasenotes para atualizar primeiro para Debian 12, caso seja necessário.

4.2.2. Atualizar para o último lançamento pontual

Este procedimento assume que o seu sistema foi atualizado até ao último lançamento pontual da versão bookworm. Se não o tiver feito, ou se não tiver a certeza, siga as instruções na Atualizar o seu sistema bookworm.

4.2.3. Debian Backports

Debian Backports permite aos utilizadores de Debian stable correr versões mais atualizadas de pacotes (com alguns compromissos no suporte de teste e de segurança). A equipa de Debian Backports mantém um conjunto de pacotes do próximo lançamento de Debian, ajustado e recompilado para utilização no atual lançamento de Debian stable.

Os pacotes de bookworm-backports têm números de versão menores do que os da versão em trixie, por isso devem atualizar normalmente para trixie da mesma forma que pacotes "puros" de bookworm na atualização da distribuição. Apesar de não haverem potenciais problemas conhecidos, os caminhos de atualização de backports são menos testados, e por isso incorrem num risco maior.

Cuidado

Enquanto que os Debian Backports regulares são suportados, não existe caminho de atualização limpa de backports sloppy (que utilizam entradas APT source-list que referenciam bookworm-backports-sloppy).

Tal como com em Fontes não-oficiais, os utilizadores são aconselhados a removerem as entradas de "bookworm-backports" dos seus ficheiros de fontes APT antes da atualização. Após esta ter sido completada, podem considerar acrescentar "trixie-backports" (veja https://backports.debian.org/Instructions/).

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

4.2.4. Preparar a base de dados de pacotes

Deve assegurar-se que a base de dados de pacotes está pronta antes de proceder com a atualização. Se é utilizador de outro gestor de pacotes como o aptitude ou synaptic, reveja quaisquer ações pendentes. Um pacote que esteja planeado para instalação ou para remoção, poderá interferir com o procedimento de atualização. Note que para corrigir isto apenas é possível se os seus ficheiros source-list APT ainda apontarem para "bookworm"; e não para "stable" ou para "trixie"; veja a Verificar os seus ficheiros source-list APT.

4.2.5. Remover pacotes obsoletos

É uma boa ideia remover pacotes obsoletos do seu sistema antes da atualização. Poderão introduzir complicações durante o processo de atualização e podem apresentar riscos de segurança já que não são 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. Limpar ficheiros de configuração que sobraram

Um upgrade anterior poderá ter deixado cópias de ficheiros de configuração que já não são utilizados; versões antigas de ficheiros de configuração, versões fornecidas pelos maintainers dos pacotes, etc. Remover ficheiros que sobram de upgrades anteriores pode evitar confusão. Encontre ficheiros não utilizados com:

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

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

If you have non-free firmware installed it is recommended to add non-free-firmware to your APT sources-list.

4.2.9. Secção proposed-updates

Se listou a secção proposed-updates nos seus ficheiros source-list APT, deverá removê-la antes de tentar atualizar o seu sistema. Isto é uma precaução para reduzir a probabilidade de conflitos.

4.2.10. Fontes não oficiais

Se possuir pacotes no seu sistema que não sejam de Debian, deverá saber que estes poderão ser removidos durante a atualização devido a conflitos entre dependências. Se estes pacotes foram instalados acrescentando um arquivo de pacotes adicional aos seus ficheiros sources-list do APT, deverá verificar se esse arquivo também oferece pacotes compilados para trixie e alterar o item da fonte de acordo com o mesmo tipo de linhas de fontes para os pacotes Debian.

Alguns utilizadores poderão ter versões "mais recentes" de pacotes de backports não oficiais, que estejam instalados no seu sistema Debian bookworm. Tais pacotes irão provavelmente criar problemas durante a atualização, pois poderão resultar conflitos de ficheiros [4]. Problemas possíveis durante a atualização tem alguma informação sobre como lidar com conflitos de ficheiros se estes ocorrerem.

4.2.11. Desativar o APT pinning

Se configurou o APT para instalar determinados pacotes a partir de uma distribuição que não a stable (e.g. a partir de testing), pode ter que alterar a sua configuração de APT pinning (guardada em /etc/apt/preferences e em /etc/apt/preferences.d/) para permitir que a atualização de pacotes para as versões que estão na nova versão estável. Mais informação acerca do APT pinning pode ser encontrada 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 em algumas cirscunstâncias especializadas, os utilizadores poderão querer assegurar que está instalada a versão correta, com:

# apt install gpgv

4.2.13. Verificar o estado dos pacotes

Independentemente do método utilizado para a atualização, é recomendado que primeiro verifique o estado de todos os pacotes e que todos os pacotes estão em estado que possam ser atualizados. O seguinte comando irá listar todos os pacotes que têm o estado Half-Installed ou Failed-Config e aqueles que apresentem qualquer estado de erro.

$ dpkg --audit

Pode também inspecionar o estado de todos os pacotes no seu sistema utilizando o aptitude ou com comandos como

$ dpkg -l | pager

ou

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

Em alternativa também pode utilizar apt.

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

É desejável que remova todos os bloqueios ('holds') antes da atualização. Se algum pacote essencial à atualização estiver bloqueado, a atualização irá falhar.

$ apt-mark showhold

Se alterou e recompilou um pacote localmente e não o renomear ou colocar epoch na versão, terá de o colocar em hold para prevenir que seja atualizado.

O estado "hold" do pacote para o apt pode ser alterado utilizando:

# apt-mark hold package_name

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

Se houver alguma coisa que necessite de corrigir, o melhor é certificar-se que os seus ficheiros source-list APT continuam a apontar para a bookworm conforme é explicado na Verificar os seus ficheiros source-list APT.

4.3. Preparar os ficheiros source-list APT

Antes de iniciar a atualização tem de reconfigurar os ficheiros source-list do APT (/etc/apt/sources.list e os ficheiros em /etc/apt/sources.list.d/) para acrescentar fontes para trixie e tipicamente para remover as 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.

Um lançamento pode ser normalmente referido pelo seu nome de código (por ex. "bookworm", "trixie") e pelo nome do seu estado (por ex. "oldstable", "stable", "testing", "unstable"). Referir-se a um lançamento pelo seu nome de código tem a vantagem que que nunca será surpreendido por um novo lançamento e por esta razão é o método utilizado aqui. Significa com certeza que terá de ser você mesmo a estar atento a anúncios de lançamento. Se pelo contrário utilizar o nome de estado, irá ver muitas atualizações para os pacotes disponíveis assim que ocorrer um lançamento.

Debian disponibiliza duas mailing lists de anúncios para ajudar a manter-se atualizado acerca de informação relevante relacionada com os lançamentos Debian:

4.3.1. Acrescentar fontes APT da Internet

Nas novas instalações o predefinido para o APT é ser configurado para utilizar um serviço CDN APT Debian, o qual deve assegurar que os pacotes são descarregados automaticamente a partir de um servidor próximo de si na rede. Como este é um serviço relativamente novo, as instalações mais antigas poderão ainda ter configurações que apontam para servidores Debian na Internet ou para um dos seus mirrors. Se ainda não o fez, é recomendado mudar a sua configuração do APT para utilizar o serviço CDN.

Para utilizar o serviço CDN, acrescente uma linha como esta à sua configuração de fontes APT (assumindo que está a utilizar main e contrib):

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

Depois de adicionar as suas novas fontes, desactive as linhas "deb" que já existiam colocando um cardinal (#) à frente das mesmas.

No entanto, se obtiver melhores resultados utilizando um mirror especifico que esteja perto de si, na rede, esta opção ainda está disponível.

Debian mirror addresses can be found at https://www.debian.org/mirror/list.

Por exemplo, suponha que o mirror Debian mais perto de si é http://mirrors.kernel.org. Se inspeccionar esse mirror com um navegador web irá notar que os diretórios principais estão organizados desta forma:

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

Para configurar o APT para utilizar um dado mirror, acrescente uma linha como a seguinte (novamente, assumindo que está a utilizar main e contrib):

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

Note que "dists" é acrescentado implicitamente, e que os argumentos que se seguem ao nome do lançamento são utilizados para expandir o caminho em múltiplos diretórios.

Novamente, depois de adicionar as suas novas fontes, desactive as linhas de arquivos que já existiam.

4.3.2. Acrescentar fontes APT para um 'mirror' local

Em vez de utilizar os mirrors de pacotes remotos, pode desejar modificar os ficheiros source-list do APT para utilizar um mirror num disco local (possivelmente montado sobre NFS).

Por exemplo, o seu mirror de pacotes poderá estar sob /var/local/debian/, e pode ter diretórios principais como estes:

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

Para utilizar isto com o apt, acrescente esta linha ao seu ficheiro sources.list:

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

Note que "dists" é acrescentado implicitamente, e que os argumentos que se seguem ao nome do lançamento são utilizados para expandir o caminho em múltiplos diretórios.

Depois de adicionar as suas novas fontes, desactive as linhas de arquivos que já existiam nos ficheiros source-list do APT colocando um cardinal (#) à frente das mesmas.

4.3.3. Acrescentar fontes APT a partir de meios ópticos

Se quiser utilizar apenas DVDs (ou CDs, ou discos Blu-ray), comente as linhas existentes em todos os ficheiros source-list do APT, colocando um cardinal (#) à frente das mesmas.

Certifique-se que existe uma linha no /etc/fstab que permita a montagem do seu leitor de CD-ROM no ponto de montagem /media/cdrom. Por exemplo, se o seu leitor de CD-ROM for o dispositivo /dev/sr0, o /etc/fstab deverá conter uma linha como:

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

Note que não podem existir espaços que entre as palavras noauto,ro encontradas no quarto campo.

Para verificar que funciona, insira um CD e tente correr

# 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

A seguir, corra:

# apt-cdrom add

para cada CD-ROM de Binários Debian que possua, para adicionar informação de cada CD à base de dados APT.

4.4. Atualizar pacotes

A forma recomendada de atualizar a partir de lançamentos anteriores de Debian é utilizar a ferramenta de gestão de pacotes apt.

Nota

O apt destina-se ao uso interativo e não deve ser utilizado em scripts. Em scripts deve ser utilizado o apt-get, que tem um output estável mais adequado para ser interpretado.

Não se esqueça de montar todas as partições necessárias (nomeadamente a partição root e /usr) em modo de leitura-escrita, com um comando como:

# mount -o remount,rw /mountpoint

De seguida deverá confirmar novamente que as entradas das fontes do APT (em /etc/apt/sources.list) e ficheiros em /etc/apt/sources.list.d, se referem a "trixie" ou a "stable". Não deverão existir quaisquer entradas de fontes que apontem para bookworm.

Nota

As linhas de fontes de um CD-ROM poderão por vezes referir-se a "unstable"; e embora isto possa ser confuso, você não deverá alterá-las.

4.4.1. Gravar a sessão

É fortemente recomendado que utilize o programa /usr/bin/script para gravar uma transcrição da sessão de atualização. Assim caso ocorra qualquer problema, terá o relatório sobre o que aconteceu, e se necessário poderá fornecer informação exacta sob a forma de um relatório de erro. Para iniciar a gravação, escreva:

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

ou similar. Se tiver que executar novamente o ficheiro transcrito (e.g. se tiver de reiniciar o sistema) use valores step diferentes para indicar qual o passo da atualização que está a registar. Não coloque o ficheiro transcrito num diretório temporário como /tmp ou /var/tmp (os ficheiros nesses diretórios podem ser apagados durante a atualização ou durante qualquer reinicio).

O transcrito permitir-lhe-á também rever informação que tenha ficado fora do ecrã. Se estiver na consola do sistema, mude para VT2 (utilizando Alt+F2) e, depois de iniciar a sessão, utilize

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

para visualizar o ficheiro.

Depois de ter completado a atualização, pode parar o script escrevendo exit na linha de comandos.

O apt também irá registar as alterações do estado dos pacotes em /var/log/apt/history.log e a saída de terminal em /var/log/term.log. Além disso, o dpkg irá, registar todas as alterações dos estados em /var/log/dpkg.log. Se utilizar o aptitude este irá registar as alterações dos estados em /var/log/aptitude.

Se utilizou a opção -t com script então pode utilizar o programa scriptreplay para ver uma repetição de toda a sessão:

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

4.4.2. Atualizar a lista de pacotes

Primeiro tem de ser obtida a lista de pacotes disponíveis para o novo lançamento. Isto é feito ao executar:

# apt update

Nota

Os utilizadores de apt-secure podem encontrar problemas ao utilizar aptitude ou apt-get. Para apt-get, pode utilizar apt-get update --allow-releaseinfo-change.

4.4.3. Certificar-se que possui espaço suficiente para a atualização

Antes de atualizar o seu sistema tem de se certificar que tem espaço em disco suficiente quando iniciar a atualização do sistema completa descrita em Atualizar o sistema. Primeiro, qualquer pacote necessário para a instalação obtido através da rede é guardado em /var/cache/apt/archives (e no subdiretório partial/ durante o download), por isso tem de se certificar que tem espaço suficiente no sistema de ficheiros da partição onde estiver o /var/ para descarregar temporariamente os pacotes que serão instalados no seu sistema. Depois do download, provavelmente irá necessitar de mais espaço nos sistemas de ficheiros das outras partições de modo a instalar quer os pacotes atualizados (que podem conter binários maiores ou mais dados) e os novos pacotes que serão obtidos para a atualização. Se o seu sistema não tiver espaço suficiente, poderá ficar com uma atualização incompleta, e poderá ser difícil de recuperar.

O apt pode mostrar-lhe informação detalhada sobre o espaço em disco necessário para a instalação. Antes de efetuar a atualização do sistema, pode ver esta estimativa ao correr:

# 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

Correr este comando no inicio do processo de atualização pode dar um erro pelas razões descritas nas secções seguintes. Nesse caso terá de aguardar até ter feito a atualização mínima ao sistema conforme a Atualização Miníma do Sistema antes de correr este comando para estimar o espaço em disco.

Se não tiver espaço suficiente para a atualização, o apt irá alertá-lo com uma mensagem como esta:

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

Nesta situação, certifique-se que liberta espaço antes de continuar. Você pode:

  • Remover pacotes que tenham sido previamente descarregados para instalação (em /var/cache/apt/archives). Limpar a 'cache' de pacotes ao correr apt clean irá remover todos os ficheiros de pacotes descarregados anteriormente.

  • Remover os pacotes esquecidos. Se utilizou aptitude ou apt para instalar manualmente pacotes em bookworm, terá de seguir esses pacotes que instalou manualmente, e será capaz de marcar como redundantes os pacotes obtidos apenas por dependências e que já não são necessários por um pacote ser removido. Não irá marcar para remoção os pacotes que você instalou manualmente. Para remover os pacotes instalados automaticamente e que já não são utilizados, execute:

    # apt autoremove
    

    Para descobrir pacotes redundantes pode também utilizar deborphan, debfoster ou cruft. Não remova cegamente os pacotes que estas ferramentas apresentam, especialmente se estiver a utilizar opções agressivas e não-predefinidas que são sujeitas a gerarem falsos positivos. É altamente recomendado que reveja manualmente os pacotes sugeridos para remoção (por ex. o seu conteúdo, tamanhos e descrições) antes de os remover.

  • Remover os pacotes que ocupam demasiado espaço e não são atualmente necessários (pode sempre reinstalá-los depois da atualização). Se tiver instalado popularity-contest, pode utilizar popcon-largest-unused para listar os pacotes que não utiliza e que ocupam mais espaço. Pode encontrar os pacotes que tomam o maior espaço em disco com dpigs (disponível no pacote debian-goodies) ou com wajig (correndo wajig size). Também podem ser encontrados com aptitude. Inicie o aptitude em modo full-terminal, selecione Vistas > Nova Lista Plana de Pacotes, pressione l e introduza ~i, e depois pressione S e introduza ~installsize. Isto irá dar ter uma boa lista para trabalhar.

  • Remover traduções e ficheiros de localizações do sistema se não forem necessárias. Pode instalar o pacote localepurge e configurá-lo para que sejam mantidos apenas alguns 'locales' selecionados. Isto irá reduzir o espaço de disco consumido em /usr/share/locale.

  • Mover temporariamente para outro sistema, ou remover permanentemente, os logs do sistema que estão em /var/log/.

  • Utilizar um /var/cache/apt/archives temporário: pode utilizar um diretório de cache temporário de outro sistema de ficheiros (dispositivo de armazenamento USB, disco rígido temporário, sistema de ficheiros já em uso, ...).

    Nota

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

    Por exemplo, se tiver um dispositivo USB montado em /media/usbkey:

    1. remover os pacotes que foram previamente descarregados para instalação:

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

      # cp -ax /var/cache/apt/archives /media/usbkey/
      
    3. montar o diretório de cache temporário no que está presente:

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

      # umount /var/cache/apt/archives
      
    5. remover o que resta em /media/usbkey/archives.

    Pode criar o diretório de cache temporário em qualquer sistema de ficheiros que esteja montado no seu sistema.

  • Fazer uma atualização mínima do sistema (veja a Atualização Miníma Manual) ou atualizações parciais do sistema seguidas por uma atualização completa. Isto irá tornar possível atualizar o sistema parcialmente, e permitir-lhe limpar a cache de pacotes antes da atualização completa.

Note que, de modo a remover pacotes em segurança, é aconselhável mudar os seus ficheiros sources-list do APT novamente para bookworm conforme é descrito na Verificar os seus ficheiros source-list APT.

4.4.4. Parar de serviços de monitorização

Já que apt pode necessitar de temporariamente parar serviços a correr no seu computador, provavelmente será boa ideia parar serviços de monitorização que possam reiniciar outros serviços que sejam terminados durante a atualização. Em Debian, monit é um exemplo de tal serviço.

4.4.5. Atualização mínima do sistema

Em alguns casos, fazer a atualização completa (conforme descrito abaixo) diretamente pode remover um grande número de pacotes que poderá querer manter. Portanto recomendamos um processo de atualização em duas partes: primeiro uma atualização mínima para ultrapassar estes conflitos, e depois uma atualização completa conforme descrito em Atualizar o sistema.

Para fazer isto, primeiro corra:

# apt upgrade --without-new-pkgs

Isto tem o efeito de atualizar os pacotes que podem ser atualizados sem que necessitem que nenhum outro pacote seja removido ou instalado.

A atualização mínima do sistema também pode ser útil quando o sistema tiver pouco espaço disponível e não for possível fazer uma atualização completa devido à restrição de espaço.

Se o pacote apt-listchanges estiver instalado, este irá mostrar (na sua configuração predefinida), num pager, informação importante sobre os pacote atualizados após os descarregar. Para continuar o upgrade após a leitura, carregue em q para sair do pager.

4.4.6. Atualizar o sistema

Após ter executado os passos anteriores, agora está pronto para continuar com a parte principal da atualização. Execute:

# apt full-upgrade

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

Ao atualizar a partir de um conjunto de CDs/DVDs/BDs, provavelmente ser-lhe-á pedido para insirir discos específicos em várias alturas durante a atualização. Poderá ter que inserir o mesmo disco várias vezes, isto é devido a pacotes inter-relacionados que ficaram espalhados pelos discos.

As novas versões dos pacotes atualmente instalados que não possam ser atualizadas sem alterar o estado de instalação de outro pacote serão deixadas na sua versão atual (mostradas como "held back"). Isto pode ser resolvido utilizando o aptitude para escolher estes pacotes para instalação ou tentando apt install pacote.

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

As seguinte secções descrevem problemas conhecidos que podem aparecer durante uma atualização para trixie.

4.5.1. Full-upgrade falha com "Não pode executar a configuração imediata"

Em alguns casos a etapa apt full-upgrade pode falhar após fazer o download dos pacotes com:

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

Se isso acontecer, se em vez disso correr apt full-upgrade -o APT::Immediate-Configure=0 deverá permitir que a atualização continue.

Outra forma possível de contornar este problema é temporariamente acrescentar ambas as fontes bookworm e de trixie aos seus ficheiros source-list do APT e correr apt update.

4.5.2. Remoções esperadas

O processo de atualização para trixie poderá pedir a remoção de pacotes no sistema. A lista exacta de pacotes irá variar consoante o conjunto de pacotes que está instalado. Estas notas de lançamento dão conselhos gerais acerca destas remoções, mas em caso de dúvida, é recomendado que examine as remoções de pacotes propostas por cada método antes de prosseguir. Para mais informações acerca de pacotes obsoletos em trixie, veja Pacotes obsoletos.

4.5.3. Conflitos ou Ciclos de Pré-Dependências

Por vezes é necessário ativar a opção APT::Force-LoopBreak no APT para ser possível remover temporariamente um pacote essencial devido a um ciclo vicioso de Conflicts/Pre-Depends. O apt irá alertá-lo disto e abortar a atualização. Pode contornar isto especificando a opção -o APT::Force-LoopBreak=1 na linha de comandos do apt.

É possível que uma estrutura de dependências do sistema se torne tão corrompida que seja necessário intervenção manual. Normalmente isto significa utilizar o apt ou

# dpkg --remove package_name

para eliminar alguns dos pacotes que estão a criar problemas, ou

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

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

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

4.5.4. Conflitos de ficheiros

Os conflitos de ficheiros não devem ocorrer se estiver a atualizar a partir de um sistema bookworm "puro", mas podem acontecer se tiver instalado 'backports' não-oficiais. Um conflito de ficheiros irá resultar num 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>

Pode tentar resolver um conflito de ficheiros forçando a remoção do pacote mencionado na última linha da mensagem de erro:

# dpkg -r --force-depends package_name

Depois de corrigir, deverá ser capaz de continuar a atualização ao repetir os comandos do apt descritos anteriormente.

4.5.5. Alterações de configuração

Durante a atualização, ser-lhe-ão colocadas questões acerca da configuração ou da re-configuração de vários pacotes. Quando lhe for perguntado se algum ficheiro no diretório /etc/init.d, ou no ficheiro /etc/manpath.config, deve ser substituído pela versão do 'maintainer' do pacote, normalmente é necessário responder "sim" para garantir a consistência do sistema. Pode sempre reverter para as versões anteriores, já que estas serão guardadas com uma extensão .dpkg-old.

Se não tiver a certeza acerca do que fazer, anote o nome do pacote ou do ficheiro e resolva isso mais tarde. Pode procurar o ficheiro transcrito de modo a rever a informação que esteve no ecrã durante a atualização.

4.5.6. Mudar a sessão para a consola

Se estiver a correr a atualização usando a consola local do sistema, pode descobrir que em certos pontos durante a atualização a consola é mudada para uma vista diferente e perder a visibilidade do processo de atualização. Por exemplo, isto pode acontecer em sistemas com um interface gráfico quando o gestor de display for reiniciado.

Para recuperar a consola onde a atualização estava a correr tem de usar Ctrl+Alt+F1 (se estiver no ecrã de arranque gráfico) ou usar Alt+F1 (se estiver na consola local de modo de texto) para voltar 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 a correr. Posw também utilizar Alt+Seta-Esquerda ou Alt+Seta-Direita para mudar entre os diferentes terminais em modo de texto.

4.7. Preparar para o próximo lançamento

Após a atualização existem várias coisas que pode fazer para se preparar para o próximo lançamento.

4.7.1. Purgar pacotes removidos

Geralmente é aconselhável purgar os pacotes removidos. Isto é especialmente verdadeiro se estes foram removidos numa atualização de lançamento anterior (p.e. a partir da atualização para bookworm) ou se estes foram fornecidos por pacotes de terceiros. Em particular, scripts de init.d antigos são conhecidos por causarem problemas.

Cuidado

Purgar um pacote geralmente irá também purgar os seus ficheiros de log, por isso poderá querer fazer cópias de segurança primeiro.

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

$ apt list '~c'

Os pacotes podem ser removidos utilizando apt purge. Assumindo que deseja purgá-los todos de uma vez, pode usar o seguinte comando:

# apt purge '~c'

4.8. Pacotes obsoletos

Ao introduzir imensos novos pacotes, a trixie também remove e omite alguns pacotes antigos que estavam na bookworm. Não fornece um caminho de atualização para estes pacotes obsoletos. Nada impede de continuar a utilizar um pacote obsoleto enquanto for desejado, o projecto Debian irá normalmente descontinuar o suporte de segurança para o mesmo um ano após do lançamento de trixie [5], e normalmente não irá disponibilizar outro suporte. É recomendado substituí-los por alternativasdisponíveis, se existirem.

Existem muitas razões para que possam ter sido retirados pacotes da distribuição: por já não serem mantidos pelos autores; por já não haver um Debian Developer interessado em manter os pacotes; por a funcionalidade que estes fornecem ter sido ultrapassada por outro software diferente (ou por nova versão); ou por deixarem de serem considerados adequados para trixie devido a bugs neles. No último caso, os pacotes podem no entanto continuar a estarem presentes na distribuição "unstable".

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

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

O Debian Bug Tracking System fornece frequentemente informação adicional sobre a razão da remoção do pacote. Deverá rever os relatórios de bugs dos pacotes arquivados e os relatórios de bugs de ftp.debian.org pseudo-package.

Para uma lista de pacotes obsoletos para trixie, por favor refira-se a Pacotes relevantes obsoletos.

4.8.1. Pacotes dummy transitórios

Alguns pacotes de bookworm podem ter sido substituidos por pacotes dummy de transição em trixie, que são marcadores vazios desenhados para simplificar os upgrades. Se por exemplo uma aplicação que era um pacote único e que agora foi dividida em vários pacotes, agora pode ser disponibilizado um pacote de transição com o mesmo nome que o pacote antigo com as dependências apropriadas para fazer com que sejam instalados os novos pacotes. Depois disto acontecer o pacote dummy é redundante e pode ser removido em segurança.

As descrições de pacotes dummy de transição normalmente indicam o seu propósito. No entanto, estas não são uniformes; em particular, alguns pacotes "dummy" são desenhados para serem mantidos instalados, de modo a puxarem um conjunto completo de software, ou acompanhar a versão mais recente de algum programa. Pode também achar útil o deborphan com as opções --guess-* (p.e. --guess-dummy) para detectar pacotes dummy de transição no seu sistema.