Índice
Sugerimos que antes de actualizar que leia também a informação na Capítulo 5, Problemas a estar atento em bookworm. Esse capítulo cobre potenciais problemas não directamente relacionados com o processo de actualização mas que podem no entanto ser importantes conhecer antes de começar.
Antes de actualizar o seu sistema é fortemente recomendado que efectue 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 actualização e o processo são bastante fiáveis, mas uma falha de hardware durante a actualização poderia resultar num sistema extremamente 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 '*' # (as plicas são importantes)
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 actualização em si não modifica nada no directório
/home
. No entanto, algumas aplicações (e.g. partes do
conjunto Mozilla, e dos ambientes de desktop 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, você pode querer fazer uma cópia de
segurança dos ficheiros e directórios ocultos (“dotfiles”) nos
directórios dos utilizadores. Esta cópia de segurança pode ajudar a
restaurar ou recriar as antigas configurações. Pode também querer 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 actualização possui poucas condições prévias, deverá verificá-las antes de iniciar a actualização.
É sensato informar todos os utilizadores com antecedência sobre qualquer actualização que estiver a planear, apesar dos utilizadores que acedam ao sistema através uma ligação ssh pouco devem notar durante a actualizaçã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 actualização.
Você terá de fazer uma actualização do kernel ao actualizar para bookworm, por isso será necessário reiniciar a máquina. Tipicamente, isto será feito após terminar a actualização.
Podem existir serviços associados a pacotes que serão incluídos na actualização. Se for este o caso, note que, durante a actualização, esses serviços serão parados enquanto os pacotes a ser actualizados 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 actualizados no sistema, e também inclui o tempo que o administrador do sistema demora a responder às questões de configuração das diferentes actualizações de pacotes. Note que se o processo de actualização for deixado desacompanhado e o sistema solicitar alguma entrada durante toda a actualização, existe uma grande possibilidade dos serviços ficarem indisponíveis[1] durante um período significativo de tempo.
Se o sistema a ser actualizado disponibilizar serviços críticos para os seus utilizadores ou para a sua rede [2], pode reduzir o tempo de indisponibilidade se fizer uma actualização mínima ao sistema, conforme descrito na Secção 4.4.5, “Actualização mínima do sistema”, seguida de uma actualização ao kernel e de reiniciar. De seguida actualize os pacotes associados aos seus serviços críticos. Actualize estes pacotes antes de fazer a actualização completa descrita na Secção 4.4.6, “Actualizar o sistema”. Deste modo pode assegurar que estes serviços críticos estão a funcionar e disponíveis durante todo o processo de actualização e dessa forma o tempo de indisponibilidade é reduzido.
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 actualização. 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 activar a rede.
Se estiver a actualizar 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 actualizaçã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 actualização existe a hipótese de que você 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 bookworm. A vantagem de 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 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.
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 que 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 precisará de resolver o problema
subjacente e gerar de novo a initrd para que o próximo arranque não falhe
novamente.
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. Você
terá que fazê-lo 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.
Importante | |
---|---|
Se estiver a utilizar alguns serviços VPN (tal como |
De modo a ganhar uma margem extra de segurança quando actualizar remotamente, nós sugerimos que corra os processos de actualização na consola virtual disponibilizada pelo programa screen, o qual permite uma re-ligação segura e assegura que o processo de actualização não é interrompido mesmo que o processo da ligação remota falhe temporariamente.
O processo de upgrade 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 bullseye, 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 que
fontes deve obter os pacotes é /etc/apt/sources.list
,
no entanto também pode utilizar ficheiros no directó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.
Apenas são suportados upgrades de Debian 11 (bullseye). 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 11 para primeiro actualizar para Debian 11, se necessário.
Este procedimento assume que o seu sistema foi actualizado até ao último lançamento pontual da versão bullseye. Se não o tiver feito, ou se não tiver a certeza, siga as instruções na Secção A.1, “Actualizar o seu sistema bullseye”.
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 bullseye-backports têm números de versão menores do que os da versão em bookworm, por isso devem atualizar normalmente para bookworm da mesma forma que pacotes “puros” de bullseye na atualização da distribuição. Apesar de não haverem problemas potenciais 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 APPT source-list que referenciam bullseye-backports-sloppy). |
Tal como com Secção 4.2.10, “Fontes não oficiais”, os utilizadores são aconselhados a removerem as entradas de bullseye-backports dos seus ficheiros de fontes APT antes da atualização. Após esta ter sido completada, podem considerar acrescentar bookworm-backports.
Para mais informação, consulte a página Backports Wiki.
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 o synaptic
, reveja quaisquer ações pendentes. Um
pacote que esteja planeado para instalação ou para remoção, poderá
interferir com o procedimento de actualização. Note que para corrigir isto
apenas é possível se os seus ficheiros source-list APT ainda apontarem para
bullseye; e não para
stable ou para bookworm; veja
a Secção A.2, “Verificar os seus ficheiros source-list APT”.
É 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.
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
Um upgrade anterior poderá ter deixado cópias de ficheiros de configuração que já não são utilizadas; 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'
Se tiver instalado firmware non-free é recomendado acrescentar
non-free-firmware
é lista de fontes APT. Para detalhes
veja Secção 2.2, “Áreas do arquivo” e Secção 5.1.1, “
O software non-free foi movido para o seu próprio componente no arquivo
”.
Se você listou a secção proposed-updates
nos seus
ficheiros source-list APT, deverá removê-la antes de tentar actualizar o seu
sistema. Isto é uma precaução para reduzir a probabilidade de conflitos.
Se possuir pacotes no seu sistema que não sejam de Debian, deverá saber que estes poderão ser removidos durante a actualização devido a conflitos entre dependências. Se estes pacotes foram instalados adicionando um arquivo de pacotes extra aos seus ficheiros sources-list do APT, deverá verificar se esse arquivo também oferece pacotes compilados para bookworm 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 bullseye. Tais pacotes irão provavelmente criar problemas durante a actualização, pois destes poderão resultar em conflitos de ficheiros[4]. A Secção 4.5, “Possíveis problemas durante a actualização” tem alguma informação sobre como lidar com conflitos de ficheiros à medida que aparecem.
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 a actualização
de pacotes para versões existentes na nova versão estável. Mais informação
acerca do APT pinning pode ser encontrada em apt_preferences(5).
APT necessita de gpgpv versão 2 ou superior para
verificar as chaves utilizadas para assinar os lançamentos de
bookworm. 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
Independentemente do método utilizado para a actualização, é recomendado que primeiro verifique o estado de todos os pacotes, e verificar que todos os pacotes estão em modo de actualização. O seguinte comando listará todos os pacotes que possuem o estado Metade-Instalado (Half-Installed) ou Configuração-Falhada (Failed-Config), e aqueles que apresentem qualquer erro no estado.
$ dpkg --audit
Pode também inspeccionar 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 actualização. Se algum pacote essencial à actualização estiver bloqueado, a actualização irá falhar.
$ apt-mark showhold
Se alterar e recompilar localmente um pacote e não o renomear ou colocar numa versão modificada, terá que o bloquear para prevenir que o mesmo seja alterado.
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 bullseye conforme é explicado na Secção A.2, “Verificar os seus ficheiros source-list APT”.
Antes de iniciar a actualizaçã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 as fontes
para bookworm
e tipicamente para remover as fontes
para bullseye
.
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. bullseye
, bookworm
) e
pelo seu nome de 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 carregamentos de actualizações para os
pacotes disponíveis assim que acontecer um lançamento.
Debian disponibiliza duas mailing lists de anúncios para ajudar a manter-se actualizado acerca de informação relevante relacionada com os lançamentos Debian:
Ao subscrever a
mailing list de anúncios Debian, irá receber uma notificação cada
vez que Debian fizer um novo lançamento. Tal como, por exemplo, quando
bookworm
mudar de testing
para
stable
.
Ao subscrever a mailing list de anúncios de segurança Debian irá receber uma notificação de cada vez que Debian publicar um anúncio de segurança.
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 bookworm main contrib
Depois de adicionar as suas novas fontes, desactive as linhas
“deb
” previamente existentes 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.
Podem ser encontrados endereços de mirrors Debian em https://iwawocd.cewmufwd.tk/distrib/ftplist (veja na secção “Lista de mirrors Debian”).
Por exemplo, suponha que o mirror Debian mais perto de si é
http://mirrors.kernel.org/
. Quando inspeccionar esse mirror
com um navegador web irá notar que os directórios principais estão
organizados desta forma:
http://mirrors.kernel.org/debian/dists/bookworm/main/binary-arm64/... http://mirrors.kernel.org/debian/dists/bookworm/contrib/binary-arm64/...
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 bookworm 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 directórios.
Novamente, depois de adicionar as suas novas fontes, desactive as linhas de arquivos previamente existentes.
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 directórios principais
como estes:
/var/local/debian/dists/bookworm/main/binary-arm64/... /var/local/debian/dists/bookworm/contrib/binary-arm64/...
Para utilizar isto com o apt
,
acrescente esta linha ao seu ficheiro sources.list
:
deb file:/var/local/debian bookworm 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 directórios.
Depois de adicionar as suas novas fontes, desactive as linhas de arquivos
previamente existentes nos ficheiros source-list do APT colocando um
cardinal (#
) à frente das mesmas.
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 tal funciona, insira um CD e tente correr
# mount /media/cdrom # isto fará mount ao CD no ponto de montagem # ls -alF /media/cdrom # isto deverá mostrar o directório raiz do CD # umount /media/cdrom # isto fará unmount ao 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.
A forma recomendada de actualizar a partir de lançamentos anteriores de Debian é utilizar a feramenta 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, o qual 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
“bookworm
” ou a
“stable
”. Não deverão existir quaisquer
entradas de fontes que apontem para bullseye.
Nota | |
---|---|
As linhas de fontes de um CD-ROM poderão por vezes referirem-se a
“ |
É-lhe fortemente recomendado que utilize o programa /usr/bin/script para gravar uma transcrição da sessão de actualizaçã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-bookwormstep
.time -a ~/upgrade-bookwormstep
.script
ou algo 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
actualização que está a registar. Não coloque o ficheiro transcrito num
directório temporário como /tmp
ou
/var/tmp
(os ficheiros nesses directórios podem ser
apagados durante a actualização ou durante qualquer reinicio).
O transcrito permitir-lhe-á também rever informação que tenha sido deslocada
para fora do ecrã. Se está na consola do sistema, mude para VT2 (utilizando
Alt+F2)
e, depois de iniciar a sessão, utilize less -R
~root/upgrade-bookworm.script
para visualizar o ficheiro.
Depois de ter completado a actualizaçã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 também irá registar as alterações dos
estados em /var/log/aptitude
.
Se você utilizou a opção -t para o script você pode utilizar o programa scriptreplay para ver uma repetição de toda a sessão:
# scriptreplay ~/upgrade-bookwormstep
.time ~/upgrade-bookwormstep
.script
Primeiro tem de ser obtida a lista de pacotes disponíveis para o novo lançamento. Isto é feito executando:
# 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. |
Antes de fazer a actualização do seu sistema você terá que se certificar que
existe espaço suficiente em disco quando iniciar a actualização completa do
sistema descrita na Secção 4.4.6, “Actualizar o sistema”. Primeiro, qualquer
pacote necessário para a instalação que é obtido a partir da rede é guardado
em /var/cache/apt/archives
(e no subdirectório
partial/
durante o download), por isso tem de assegurar
que tem espaço suficiente no sistema de ficheiros da partição onde está 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 actualizados (que podem conter binários
maiores ou mais dados) e os novos pacotes que serão obtidos para a
actualização. Se o seu sistema não possuir espaço suficiente, poderá acabar
com uma actualização incompleta que pode 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 efectuar a actualização do sistema, pode ver esta estimativa ao correr:
# apt -o APT::Get::Trivial-Only=true full-upgrade [ ... ] XXX actualizados, XXX novos instalados, XXX a remover e XXX não actualizados. Necessário obter xx.xMB de arquivos. Depois desta operação, será utilizado AAAMB de espaço adicional de disco.
Nota | |
---|---|
Correr este comando no inicio do processo de actualização pode dar um erro, pelas razões descritas nas secções seguintes. Nesse caso terá de aguardar até ter feito a actualização mínima ao sistema conforme na Secção 4.4.5, “Actualização mínima do sistema” antes de correr este comando para estimar o espaço em disco. |
Se não tiver espaço suficiente para a actualização, o apt irá alertá-lo com uma mensagem como esta:
E: Não tem espaço livre suficiente em /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 santeriormente.
Remova os pacotes esquecidos. Se utilizou o aptitude ou o apt para instalar manualmente pacotes em bullseye, ele irá seguir esses pacotes que instalou manualmente e será capaz de marcar como obsoletos os pacotes obtidos apenas por dependências e que já não são necessários se o pacote foi removido. Não irá marcar para remoção 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 o 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, dimensão e descrição) antes de os remover.
Remova os pacotes que ocupam demasiado espaço e não são actualmente
necessários (pode sempre reinstalá-los depois da actualização). Se tiver
instalado o popularity-contest
, pode
utilizar o popcon-largest-unused para listar os pacotes
que não utiliza e que ocupam mais espaço. Pode encontrar pacotes que tomam o
maior espaço com o dpigs (disponível no pacote
debian-goodies
) ou com o
wajig (correndo wajig size
). Podem
também ser encontrados com a aptitude
. Inicie o aptitude
em modo full-terminal, seleccione
→ , pressione l e insira
~i
, depois pressione S e introduza
~installsize
. Isto irá dar ter uma boa lista para
trabalhar.
Remova ficheiros de localizações e traduções do seu sistema se não forem
necessárias. Você pode instalar o pacote localepurge
e configurá-lo para que sejam
mantidos apenas os 'locales' selecionados. Isto irá reduzir o espaço de
disco consumido em /usr/share/locale
.
Mova temporariamente para outro sistema, ou remova permanentemente, os
relatórios do sistema residentes em /var/log/
.
Utilizar um /var/cache/apt/archives
temporário: pode
utilizar um directó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 actualização. |
Por exemplo, se tiver um dispositivo USB montado em
/media/usbkey
:
remover os pacotes que foram previamente descarregados para instalação:
# apt clean
copiar o directório /var/cache/apt/archives
para o
dispositivo USB:
# cp -ax /var/cache/apt/archives /media/usbkey/
montar o directório de cache temporário no que está presente:
# mount --bind /media/usbkey/archives /var/cache/apt/archives
após a actualização, restaurar o directório
/var/cache/apt/archives
original:
# umount /var/cache/apt/archives
remover o restante /media/usbkey/archives
.
Pode criar o directório de cache temporário em qualquer sistema de ficheiros que esteja montado no seu sistema.
Fazer uma actualização mínima do sistema (veja a Secção 4.4.5, “Actualização mínima do sistema”) ou actualizações parciais do sistema seguidas por uma actualização completa. Isto irá tornar possível actualizar o sistema parcialmente, e permitir-lhe limpar a cache de pacotes antes da actualização completa.
Note que, de modo a remover pacotes em segurança, é aconselhável mudar os seus ficheiros sources-list do APT novamente para bullseye conforme é descrito na Secção A.2, “Verificar os seus ficheiros source-list APT”.
Já que apt pode necessitar de temporariamente parar
serviços em execução no seu computador, provavelmente será boa ideia parar
serviços de monitorização que possam reiniciar outros serviços que sejam
terminados durante a actualização. Em Debian, monit
é um exemplo de tal serviço.
Em alguns casos, fazer a actualização completa (conforme descrito abaixo) directamente pode remover grandes quantidades de pacotes que poderá querer manter. Portanto recomendamos um processo de actualização em duas partes: primeiro uma actualização mínima para ultrapassar estes conflitos, e depois uma actualização completa conforme descrito na Secção 4.4.6, “Actualizar o sistema”.
Para fazer isto, primeiro correr:
# apt upgrade --without-new-pkgs
Isto tem o efeito de actualizar os pacotes que podem ser actualizados sem que nenhum outro pacote seja removido ou instalado.
A actualização mínima ao sistema também pode ser útil quando o sistema tem pouco espaço disponível e não se pode executar uma actualização completa devido a restrições 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 actualizados após os descarregar. Para
continuar o upgrade após a leitura, carregue em q para sair
do pager.
Após ter executado os passos anteriores, agora está pronto para continuar com a parte principal da actualização. Execute:
# apt full-upgrade
Isto irá executar uma actualizaçã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 actualizar a partir de um conjunto de CDs/DVDs/BDs, provavelmente ser-lhe-á pedido que insira discos específicos em determinados pontos durante a actualização. Pode ter que inserir o mesmo disco várias vezes, isto devido a pacotes inter-relacionados que estão espalhados pelos discos.
As novas versões dos pacotes actualmente instalados que não possam ser
actualizadas sem alterar o estado de instalação de outro pacote serão
deixadas na sua versão actual (mostradas como “held
back”). Isto pode ser resolvido ou utilizando o
aptitude de modo a escolher estes pacotes para instalação
ou tentando apt install
.
pacote
As seguinte secções descrevem problemas conhecidos que podem aparecer durante uma actualização para bookworm.
Em alguns casos a etapa apt full-upgrade pode falhar após fazer o download dos pacotes com:
E: Não pode executar a configuração imediata em 'pacote
'. Para detalhes por favor veja man 5 apt.conf em APT::Immediate-Configure.
Se isso acontecer, se em vez disso correr apt full-upgrade -o APT::Immediate-Configure=0 deverá permitir que a actualização continue.
Outra forma possível de contornar este problema é temporariamente acrescentar ambas as fontes bullseye e de bookworm aos seus ficheiros source-list do APT e correr apt update.
O processo de actualização para bookworm pode pedir a remoção de pacotes no sistema. A lista exacta de pacotes irá variar dependendo do 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 propostas de remoção de pacotes de cada método antes de prosseguir. Para mais informações acerca de pacotes tornados obsoletos em bookworm, veja a Secção 4.8, “Pacotes obsoletos”.
Por vezes é necessário activar a opção
APT::Force-LoopBreak
no APT para ser possível remover
temporariamente um pacote essencial devido a um ciclo vicioso de
Conflitos/Pré-Dependências. O apt irá alertá-lo disto e
abortará a actualização. Você 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 corrupta de modo a necessitar de intervenção manual. Normalmente isto significa utilizar o apt ou
# dpkg --remove nome_do_pacote
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 /caminho/para/nome_do_pacote.deb
Os conflitos de ficheiros não devem ocorrer se estiver a actualizar a partir de um sistema bullseye “pure”, mas podem acontecer se tiver instalado 'backports' não-oficiais. Um conflito de ficheiros irá resultar num erro como:
A desempacotar<pacote-foo>
(de<ficheiro-de-pacote-foo>
) ... dpkg: erro ao processar<pacote-foo>
(--install): tentando sobrescrever `<algum-nome-de-ficheiro>
', o qual está também no pacote<pacote-bar>
dpkg-deb: sub-processo de colagem morto por sinal (pipe quebrado) Foram encontrados erros enquanto se processava:<pacote-foo>
Pode tentar resolver um conflito de ficheiro, efectuando a remoção forçada do pacote mencionado na última linha da mensagem de erro:
# dpkg -r --force-depends nome_do_pacote
Depois de corrigir, deverá ser capaz de continuar a actualização repetindo os comandos do apt descritos atrás.
Durante a actualizaçã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 directó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 os problemas mais tarde. Pode procurar o ficheiro transcrito de modo a rever a informação que esteve no ecrã durante a actualização.
Se estiver a correr a actualização usando a consola local do sistema, pode descobrir que em certos pontos durante a actualização a consola é mudada para uma vista diferente e perder a visibilidade do processo de actualizaçã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 actualização estava a correr você tem de usar Ctrl+Alt+F1 (se estiver no ecrã de arranque gráfico) ou usar Alt+F1 (se estiver em consola local de modo de texto) para mudar de novo para o terminal virtual 1. Substitua F1 pela tecla de função com o mesmo número do terminal virtual onde a actualização estava a correr. também pode usar Alt+Seta Esquerda ou Alt+Seta Direita para mudar entre os diferentes terminais de modo de texto.
Esta secção explica como actualizar o seu kernel e identifica potenciais
problemas relacionados com esta actualização. Tanto pode instalar um dos
pacotes linux-image-*
fornecidos
pela Debian, como compilar um kernel personalizado a partir do código fonte.
Note que muita da informação nesta secção é baseada na premissa que irá
utilizar um dos kernels modulares da Debian, juntamente com os pacotes
initramfs-tools
e udev
. Se escolher utilizar um kernel
personalizado que não necessite de initrd ou se utilizar um gerador de
initrds diferente, alguma da informação poderá não ser relevante.
Quando fizer full-upgrade de bullseye para bookworm, é fortemente recomendado que instale um meta-pacote linux-image-*, se ainda não o tiver feito anteriormente. Estes meta-pacotes irão puxar automaticamente uma versão mais recente do kernel durante as actualizações. Pode verificar se tem um instalado ao correr:
$ dpkg -l 'linux-image*' | grep ^ii | grep -i meta
Se não vir nenhuma saída, então poderá ter de ou instalar manualmente um novo pacote linux-image ou instalar um meta-pacote linux-image. Para ver uma lista de meta-pacotes linux-image disponíveis, corra:
$ apt-cache search linux-image- | grep -i meta | grep -v transition
Se não tiver a certeza sobre qual o pacote a selecionar, corra
uname -r
e procure um pacote com um nome similar. Por
exemplo, se vir “4.9.0-8-amd64
”, é
recomendado que instale o linux-image-amd64
. Pode também utilizar o
apt-cache para ver a descrição longa acerca de cada
pacote de modo a ajudar a escolher o melhor dos disponíveis. Por exemplo:
$ apt show linux-image-amd64
Deverá então utilizar apt install
para o instalar. Uma
vez que este novo kernel esteja instalado deverá reinicializar na primeira
oportunidade para obter os benefícios disponibilizados pela nova versão do
kernel, por favor veja a Secção 5.1.16, “Coisas a fazer após a actualização e antes de reiniciar” antes de
reiniciar pela primeira vez após a actualização.
Para os mais aventureiros existe uma forma fácil de compilar o seu próprio
kernel personalizado em Debian. Instale o código-fonte do kernel,
disponibilizado pelo pacote linux-source
. Você pode fazer uso do alvo
deb-pkg
disponível no makefile do código-fonte para
compilar um pacote binário. Pode ser encontrada mais informação no Debian Linux
Kernel Handbook, o qual também pode ser encontrado como o pacote
debian-kernel-handbook
.
Se possível, é vantajoso para si actualizar o pacote do kernel separadamente
do full-upgrade
principal para reduzir as probabilidades
de ter temporariamente um sistema incapaz de arrancar. Note que isto deve
apenas ser feito após o processo mínimo de actualização descrito na Secção 4.4.5, “Actualização mínima do sistema”.
Após a actualização existem várias coisas que pode fazer para se preparar para o próximo lançamento.
Remover os novos pacotes obsoletos e não utilizados conforme descrito na Secção 4.8, “Pacotes obsoletos” e na Secção 4.8, “Pacotes obsoletos”. Você deve rever que ficheiros de configuração eles utilizam e considerar purgar os pacotes para remover os seus ficheiros de configuração. Veja também a Secção 4.7.1, “Purgar pacotes removidos”.
Geralmente é aconselhável purgar os pacotes removidos. Isto é especialmente verdadeiro se estes foram removidos numa actualização de lançamento anterior (ex. a partir da actualização para bullseye) 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 irá geralmente também purgar os seus ficheiros de relatório (log), poderá querer fazer-lhes 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 existentes):
$ apt list '~c'
Os pacotes podem ser removidos ao usar apt purge. Assumindo que deseja purgá-los todos de uma vez, pode usar o seguinte comando:
# apt purge '~c'
Ao introduzir imensos novos pacotes, a bookworm também remove e omite alguns pacotes antigos que estavam na bullseye. Não fornece um caminho de actualização para estes pacotes obsoletos. Ao mesmo tempo que nada o impede de continuar a utilizar um pacote obsoleto enquanto o desejar, o projecto Debian irá normalmente descontinuar o suporte de segurança para o mesmo um ano depois do lançamento da bookworm[5], e entretanto não irá disponibilizar outro suporte como normalmente. É recomendado substituí-los por alternativas, se existirem.
Existem muitas razões para que pacotes possam ter sido retirados da distribuição: já não serem mantidos pelos autores; já não haver um Debian 'Developer' interessado em manter os pacotes; a funcionalidade que estes fornecem ter sido ultrapassada por outro software diferente (ou nova versão); ou deixados de serem considerados adequados para bookworm 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 frequentemente fornece informação adicional sobre a razão da remoção do pacote. Deverá rever os relatórios de erro do pacote e os relatórios arquivados para o ftp.debian.org pseudo-package.
Para uma lista de pacotes obsoletos para Bookworm, por favor refira-se a Secção 5.3.1, “Pacotes relevantes obsoletos”.
Alguns pacotes de bullseye podem ter sido substituidos por pacotes dummy de transição em bookworm, os quais são apenas marcadores vazios desenhados para simplificar os upgrades. Se por exemplo uma aplicação que era um pacote único e que foi dividido em vários, pode ser agora disponibilizado um pacote de transição com o mesmo nome do que o pacote antigo com as dependências apropriadas para fazer com que os novos pacotes sejam instalados. 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 puxar 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.
[1] Se a prioridade de debconf estiver definida para um nível muito alto pode prevenir avisos de configuração, mas os serviços que se regem em respostas predefinidas que não estão aplicáveis no seu sistema irão falhar o arranque.
[2] Por exemplo: os serviços DNS ou DHCP, especialmente quando não houver redundância ou alta disponibilidade. No caso do DHCP, os utilizadores finais podem ficar desligados da rede se o tempo de lease for menor que o tempo que durar a completar o processo de actualização.
[3] Esta função pode ser desactivada ao adicionar o parâmetro
panic=0
aos parâmetros de arranque.
[4] O sistema de gestão de pacotes da Debian normalmente não permite que um pacote remova ou substitua um ficheiro pertencente a outro pacote, a não ser que tenha definido para substituir esse pacote.
[5] Ou enquanto não for feito outro lançamento durante esse periodo de tempo. Tipicamente apenas dois lançamentos estáveis são suportados em qualquer altura.