Índice
Nós sugerimos que antes de atualizar você também leia as informações na Capítulo 5, Problemas a serem considerados para a stretch. 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.
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 principais coisas que você terá que fazer backup são os conteúdos do
/etc
, /var/lib/dpkg
,
/var/lib/apt/extended_states
e a saída do dpkg
--get-selections "*"
(as aspas são importantes). Caso você utilize
o aptitude para gerenciar pacotes em seu sistema, você
também terá que fazer backup do
/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.
É 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 stretch, então, uma reinicialização será necessária. Normalmente, isso será feito depois que a atualização for concluída.
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.
Se o sistema que está sendo atualizado fornecer serviços críticos para os seus usuários ou para a rede[2], você pode reduzir o tempo de indisponibilidade caso você faça uma atualização mínima do sistema, como descrito na Seção 4.4.4, “Atualização mínima do sistema”, seguida de uma atualização do kernel e reinicialização, e então atualizar os pacotes associados aos seus serviços críticos. Atualize esses pacotes antes de fazer a atualização completa descrita na Seção 4.4.5, “Atualizando o sistema”. Dessa forma, você pode garantir que esses serviços essenciais estejam funcionando e disponíveis durante o processo de atualização completa, e o seu tempo de indisponibilidade seja reduzido.
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 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 stretch. 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 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 um live CD de Linux. Após a inicialização a partir dele, você deverá ser capaz de montar o seu sistema de arquivos raiz e fazer chroot nele para investigar e corrigir o problema.
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.
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 /
Mais informações sobre depuração de uma inicialização quebrada sob systemd podem ser encontradas no artigo Diagnosticando problemas de inicialização.
A atualização da distribuição deve ser feita localmente a partir de um console virtual em modo texto (ou um terminal serial conectado diretamente), ou remotamente através de um link ssh.
![]() | Importante |
---|---|
Caso você esteja usando alguns serviços VPN (tais como |
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.
![]() | Importante |
---|---|
Você não deve atualizar utilizando telnet, rlogin, rsh, ou a partir de uma sessão X gerenciada por xdm, gdm ou kdm, etc., na máquina que você estiver atualizando. Isso é porque cada um desses serviços pode muito bem ser terminado durante a atualização, o que pode resultar em um sistema inacessível que está apenas parcialmente atualizado. O uso do aplicativo update-manager do GNOME é fortemente desencorajado para atualizações para novas versões, pois essa ferramenta precisa que a sessão da área de trabalho se mantenha ativa. |
O processo de atualização descrito neste capítulo foi idealizado para atualizações a partir de sistemas jessie “puros” sem pacotes de terceiros. Para uma maior confiabilidade do processo de atualização, você pode remover pacotes de terceiros do seu sistema antes de começar a atualização.
Abaixo, há dois métodos para encontrar tais pacotes, usando aptitude ou apt-forktracer. Por favor, note que nenhum deles é 100% preciso (por exemplo: o método usando aptitude listará pacotes que já foram fornecidos pelo Debian no passado, mas não são mais, tais como pacotes de kernels antigos).
$ aptitude search '~i(!~ODebian)' $ apt-forktracer | sort
Atualizações diretas a partir de versões do Debian mais antigas do que a 8 (jessie) não são suportadas. Por favor, siga as instruções nas Notas de lançamento para Debian 8 para atualizar para 8 primeiro.
Esse procedimento também assume que o seu sistema foi atualizado para a versão pontual mais recente do jessie. Caso você não tenha feito isso ou não tenha certeza, siga as instruções na Seção A.1, “Atualizando seu sistema jessie”.
Em alguns casos, o uso do apt-get para instalação de pacotes, em vez do aptitude, pode fazer o aptitude considerar um pacote como “não usado” e agendá-lo para remoção. Em geral, você deve certificar-se que o sistema está totalmente atualizado e “limpo” antes de proceder com a atualização.
Por causa disso, você deve rever se existem quaisquer ações pendentes no
gerenciador de pacotes aptitude. Se um pacote estiver
agendado para remoção ou atualização no gerenciador de pacotes, ele pode
impactar negativamente no procedimento de atualização. Note que só é
possível corrigir isso se o seu sources.list
ainda
apontar para o jessie e não para
stable ou stretch; veja a
Seção A.2, “Verificando sua lista de fontes (sources list)”.
Para fazer essa revisão, inicie o aptitude em modo terminal cheio e pressione g (“Go”). Se ele mostrar quaisquer ações, você deve revê-las e corrigi-las ou implementar as ações sugeridas. Se nenhuma ação for sugerida, será apresentada uma mensagem dizendo “Nenhum pacote está agendado para ser instalado, removido ou atualizado”.
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).
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
É 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á.
Note que o aptitude usa um método para registrar os pacotes que estão retidos diferente do apt-get e do dselect. Você pode identificar pacotes retidos pelo aptitude com
# aptitude search "~ahold"
Caso você queira verificar quais pacotes você tem retidos pelo apt-get, você deve usar
# dpkg --get-selections | grep 'hold$'
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-get pode ser alterado usando:
# echo nome_do_pacote
hold | dpkg --set-selections
Substitua hold
por install
para
remover o estado de “hold”.
Se existir alguma coisa que você precisa corrigir, é melhor certificar-se
que o seu sources.list
ainda se refere a
jessie como explicado na Seção A.2, “Verificando sua lista de fontes (sources list)”.
Caso você tenha a seção “proposed-updates
”
presente no seu arquivo /etc/apt/sources.list
, você
deve removê-la desse arquivo antes de tentar atualizar o seu sistema. Essa é
uma precaução para reduzir a probabilidade de conflitos.
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 no seu /etc/apt/sources.list
, você
deve verificar se tal repositório também oferece pacotes compilados para
stretch e alterar a linha da fonte correspondente ao mesmo tempo que
alterar as suas linhas das fontes para os pacotes Debian.
Alguns usuários podem ter versões atualizadas retroativamente (“backported”) não-oficiais “mais novas” dos pacotes que estão no Debian instaladas no seu sistema jessie. Tais pacotes são mais prováveis de causar problemas durante a atualização, pois podem resultar em conflitos de arquivo[4]. A Seção 4.5, “Possíveis problemas durante a atualização” tem algumas informações sobre como lidar com conflitos de arquivo caso eles devam ocorrer.
Antes de iniciar a atualização você deve ajustar as listas de pacote no
arquivo de configuração do apt
,
/etc/apt/sources.list
.
O apt
considerará todos os pacotes
que possam ser encontrados através de qualquer linha iniciada por
“deb
”, e instalará o pacote com o número de
versão mais elevado, dando prioridade à primeira linha do arquivo (assim,
onde você tiver múltiplas localizações de espelhos, você normalmente
indicará primeiro um disco rígido local, depois CD-ROMs,
e então os espelhos remotos).
Uma versão pode frequentemente ser referida tanto pelo seu codinome (por
exemplo, jessie
,
stretch
) 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, verá apenas 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:
Ao se inscrever na
lista de e-mail de anúncios do Debian, você receberá uma notificação
a cada vez que o Debian fizer um novo lançamento. Tal como quando a
stretch
trocar de, por exemplo,
stable
para oldstable
.
Ao se inscrever na lista de e-mail de anúncios de segurança do Debian, você receberá uma notificação a cada vez que o Debian publicar um anúncio de segurança.
A configuração padrão é definida para instalação a partir dos principais
servidores do Debian na Internet, mas é possível que você deseje modificar o
/etc/apt/sources.list
para usar outros espelhos,
preferencialmente um espelho que esteja localizado o mais próximo de você em
termos de rede.
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”). Note que os espelhos FTP estão sendo descontinuados - veja Seção A.2, “Verificando sua lista de fontes (sources list)”.
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/stretch/main/binary-mips64el/... http://mirrors.kernel.org/debian/dists/stretch/contrib/binary-mips64el/...
Para usar esse espelho com o apt
,
você adiciona esta linha ao seu arquivo sources.list
:
deb http://mirrors.kernel.org/debian stretch 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 linhas
“deb
” previamente existentes em
sources.list
pondo um sinal de cerquilha
(#
) no início delas.
Em vez de usar espelhos de pacotes HTTP, é possível que você deseje
modificar o /etc/apt/sources.list
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/stretch/main/binary-mips64el/... /var/local/debian/dists/stretch/contrib/binary-mips64el/...
Para usar isso com o apt
, adicione
esta linha ao seu arquivo sources.list
:
deb file:/var/local/debian stretch 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 linhas
“deb
” previamente existentes em
sources.list
pondo um sinal de cerquilha
(#
) no início delas.
Caso você queira usar apenas CDs (ou mídias de DVDs ou
Blu-ray), comente as linhas “deb
” já
existentes em /etc/apt/sources.list
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 # isso montará o CD no ponto de montagem # ls -alF /media/cdrom # isso deverá exibir o diretório raiz do CD # umount /media/cdrom # isso desmontará o 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.
A forma recomendada para atualizar a partir de versões anteriores do Debian é usar a ferramenta de gerenciamento de pacotes apt-get. Nos lançamentos anteriores, o aptitude era recomendado para esse propósito, mas as versões recentes do apt-get fornecem uma funcionalidade equivalente e também têm provado dar de forma mais consistente os resultados desejados nas atualizações.
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 /ponto-de-montagem
Em seguida, você deve confirmar novamente se as entradas das fontes do APT
(em /etc/apt/sources.list
) referem-se a
“stretch
” ou a
“stable
”. Não devem haver quaisquer entradas
de fontes que apontem para jessie
![]() | Nota |
---|---|
As linhas de fontes de um CD-ROM podem às vezes se referir à
“ |
É 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-stretch-etapa
.hora -a ~/upgrade-stretch-etapa
.script
ou semelhante. Caso você tenha que reexecutar a transcrição (por exemplo,
caso você tenha que reinicializar o sistema) use valores diferentes para
etapa
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).
A transcrição também permitirá que você reveja informações que rolaram para
fora da tela. Caso você esteja no console do sistema, apenas mude para VT2
(usando Alt+F2) e, após
se autenticar, use less -R
~root/upgrade-stretch-etapa.script
para ver o arquivo.
Depois que você tiver completado a atualização, pode parar o
script digitando exit
no prompt.
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-stretch-etapa.hora ~/upgrade-stretch-etapa.script
Primeiro, a lista de pacotes disponíveis para a nova versão precisa ser obtida. Isso é feito executando:
# apt-get update
Você tem que se certificar, antes de atualizar o seu sistema, que você terá
espaço em disco rígido suficiente quando iniciar a atualização completa do
sistema descrita na Seção 4.4.5, “Atualizando o sistema”. Primeiro, qualquer
pacote necessário para instalação que for obtido pela rede é armazenado em
/var/cache/apt/archives
(e no subdiretório
partial/
, durante o download), então você deve
certificar-se que tem espaço suficiente na partição do sistema de arquivos
que contém o /var/
para download temporário dos pacotes
que serão instalados em seu sistema. Após o download, você provavelmente
precisará de mais espaço em outras partições de sistemas de arquivos, tanto
para instalação de pacotes atualizados (que podem conter executáveis maiores
ou mais dados) quanto para novos pacotes que serão puxados pela
atualização. Caso o seu sistema não tenha espaço suficiente, você pode
acabar com uma atualização incompleta que pode ser difícil de recuperar.
O apt-get 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-get -o APT::Get::Trivial-Only=true dist-upgrade [ ... ] XXX atualizados, XXX novos instalados, XXX para remover e XXX não atualizados. Necessário obter xx.xMB de arquivos. Após essa operação, AAAMB de espaço de disco adicional serão usados.
![]() | Nota |
---|---|
Ao executar esse comando no início do processo de atualização, pode ocorrer um erro, devido às razões descritas nas próximas seções. Nesse caso, você precisará esperar até que tenha feito a atualização mínima do sistema, como na Seção 4.4.4, “Atualização mínima do sistema”, antes de executar esse comando para estimar o espaço em disco. |
Caso você não tenha espaço suficiente em disco para a atualização, o apt-get o avisará com uma mensagem como esta:
E: Você não tem espaço livre suficiente em /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-get clean removerá todos os arquivos de
pacote previamente baixados.
Remover pacotes esquecidos. Caso você tenha utilizado o aptitude ou apt-get para instalar pacotes manualmente no jessie, 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-get 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
→ , 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
:
remova os pacotes que tenham sido previamente baixados para instalação:
# apt-get clean
copie o diretório /var/cache/apt/archives
para o drive
USB:
# cp -ax /var/cache/apt/archives /media/pendrive/
monte o diretório de cache temporário no lugar do atual:
# mount --bind /media/pendrive/archives /var/cache/apt/archives
após a atualização, restaure o diretório
/var/cache/apt/archives
original:
# umount /media/pendrive/archives
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.
Fazer uma atualização mínima do sistema (veja a Seção 4.4.4, “Atualização mínima do sistema”) ou atualizações parciais do sistema seguidas por uma atualização completa. Isso permitirá atualizar o sistema parcialmente, e permite limpar o cache de pacotes antes da atualização completa.
Note que para remover pacotes com segurança, é aconselhável mudar o seu
sources.list
de volta para jessie como
descrito na Seção A.2, “Verificando sua lista de fontes (sources list)”.
Em alguns casos, fazer a atualização completa (como descrito abaixo) diretamente pode remover um grande número de pacotes que você queira manter. Nós portanto recomendamos um processo de atualização em duas partes: primeiro uma atualização mínima para superar esses conflitos, depois uma atualização completa como descrito na Seção 4.4.5, “Atualizando o sistema”.
Para fazer isso, primeiro execute:
# apt-get upgrade
![]() | Nota |
---|---|
O processo de atualização para algumas versões anteriores recomendava o uso do aptitude para a atualização. Essa ferramenta não é recomendada para atualizações do jessie para a stretch. |
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. Pressione q após
a leitura para sair do paginador e continue a atualização.
Uma vez que você tenha cumprido os passos anteriores, agora está pronto para continuar com a parte principal da atualização. Execute:
# apt-get dist-upgrade
![]() | Nota |
---|---|
O processo de atualização para algumas versões anteriores recomendava o uso do aptitude para a atualização. Essa ferramenta não é recomendada para atualizações do jessie para a stretch. |
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-get
install
.
pacote
As seções seguintes descrevem problemas conhecidos que podem aparecer durante uma atualização para a stretch.
Em alguns casos a etapa apt-get dist-upgrade pode falhar após baixar os pacotes com:
E: Não foi possível realizar a configuração imediata no 'pacote
'. Por favor, veja man 5 apt.conf sob APT::Immediate-Configure para detalhes.
Caso isso ocorra, executar apt-get dist-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 jessie e stretch ao seu
sources.list
e executar apt-get
update.
O processo de atualização para a stretch pode solicitar a remoção de pacotes no sistema. A lista exata dos pacotes variará dependendo do conjunto de pacotes que você tenha instalado. Estas notas de lançamento dão conselhos gerais sobre essas remoções, mas se estiver em dúvida, é recomendado que você examine as remoções de pacotes propostas por cada método antes de prosseguir. Para mais informações sobre pacotes obsoletos no stretch, veja Seção 4.8, “Pacotes obsoletos”.
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-get 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-get.
É 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-get ou
# dpkg --remove nome_do_pacote
para eliminar alguns dos pacotes problemáticos, ou
# apt-get -f install # dpkg --configure --pending
Em casos extremos, você poderá ter que forçar a reinstalação com um comando como
# dpkg --install /caminho/para/nome_do_pacote.deb
Os conflitos de arquivo não devem ocorrer caso você atualize a partir de um sistema “puro” jessie, mas podem ocorrer caso você tenha portes retroativos não oficiais instalados. Um conflito de arquivo resultará em um erro como:
Descompactando<pacote-foo>
(de<arquivo-de-pacote-foo>
) ... dpkg: erro processando<pacote-foo>
(--install): tentando sobrescrever '<algum-nome-de-arquivo>
', que também está no pacote<pacote-bar>
dpkg-deb: sub-processo de colagem morto pelo sinal (pipe quebrado) Erros foram encontrados enquanto processando:<pacote-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 nome_do_pacote
Após consertar as coisas, você deve ser capaz de continuar a atualização repetindo os comandos do apt-get descritos anteriormente.
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.
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 desktop 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.
Esta seção explica como atualizar o seu kernel e identifica potenciais
problemas relacionados com essa atualização. Você pode instalar um dos
pacotes linux-image-*
fornecidos
pelo Debian, ou compilar um kernel customizado a partir do fonte.
Note que muitas das informações nesta seção são baseadas na suposição de que
você usará um dos kernels modulares do Debian, juntamente com o initramfs-tools
e o udev
. Caso você escolha utilizar um kernel
customizado que não requeira uma initrd ou se você utilizar um gerador de
initrd diferente, algumas das informações podem não ser relevantes para
você.
Quando você fizer dist-upgrade do jessie para a stretch, é fortemente recomendado que você instale um metapacote linux-image-*, caso você não tenha feito isso antes. Esses metapacotes trarão automaticamente uma nova versão do kernel durante as atualizações. Você pode verificar se você tem um instalado executando:
# dpkg -l "linux-image*" | grep ^ii | grep -i meta
Caso você não veja nenhuma saída, então você precisará instalar um novo pacote linux-image manualmente ou instalar um metapacote linux-image. Para ver uma lista dos metapacotes linux-image disponíveis, execute:
# apt-cache search linux-image- | grep -i meta | grep -v transition
Caso você esteja inseguro sobre qual pacote selecionar, execute
uname -r
e procure um pacote com um nome semelhante. Por
exemplo, caso você veja “2.6.32-5-amd64
”, é
recomendado que você instale linux-image-amd64
. Você também pode usar
apt-cache para ver uma descrição longa de cada pacote a
fim de ajudar a escolher o melhor disponível. Por exemplo:
# apt-cache show linux-image-amd64
Você deve então usar apt-get install
para instalá-lo. Uma
vez que o novo kernel esteja instalado, você deverá reinicializar assim que
for possível para obter os benefícios oferecidos pela nova versão do
kernel. Porém, por favor, consulte Seção 5.1.4, “Coisas para fazer depois da atualização e antes de reinicializar”
antes de realizar a primeira reinicialização após a atualização.
Para os mais aventureiros, existe uma forma fácil de compilar seu próprio
kernel customizado no Debian. Instale os fontes do kernel, fornecidos no
pacote linux-source
. Você pode fazer
uso do alvo deb-pkg
disponível no makefile dos fontes
para construir um pacote binário. Mais informações podem ser encontradas no
Debian Linux Kernel
Handbook, o qual também pode ser encontrado como o pacote
debian-kernel-handbook
.
Se possível, é vantajoso atualizar o pacote do kernel separadamente do
dist-upgrade
principal para reduzir as chances de ter um
sistema temporariamente não-inicializável. Note que isso deve ser feito
somente após o processo de atualização mínima descrito na Seção 4.4.4, “Atualização mínima do sistema”.
Após a atualização, existem diversas coisas que você pode fazer para preparar para a próxima versão.
Remova pacotes redundantes recentemente ou obsoletos como descrito na Seção 4.4.3, “Certifique-se que você tem espaço suficiente para a atualização” e Seção 4.8, “Pacotes obsoletos”. Você deve rever quais arquivos de configuração eles usam e considerar expurgar os pacotes para remover seus arquivos de configuração. Veja também Seçã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 jessie) ou foram fornecidos por terceiros. Em particular, scripts antigos init.d têm sido conhecidos por causarem problemas.
![]() | Cuidado |
---|---|
Ao expurgar um pacote, geralmente também expurgará os seus arquivos de log, 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 arquivos de configuração deixados no sistema (se houver):
# dpkg -l | awk '/^rc/ { print $2 }'
Os pacotes podem ser removidos utilizando apt-get purge. Supondo que você queira expurgar todos eles de uma vez, você pode usar o seguinte comando:
# apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
Caso você utilize o aptitude
, você
também pode usar a seguinte alternativa para os comandos acima:
$ aptitude search '~c' $ aptitude purge '~c'
Ao introduzir vários novos pacotes, a stretch também aposenta e omite muitos pacotes antigos que estavam na jessie. 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 stretch[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 stretch devido a bugs nos mesmos. Nesse último caso, os pacotes podem ainda estar presentes na distribuição “unstable”.
A detecção de quais pacotes são “obsoletos” em um sistema atualizado é fácil, já que as interfaces de gerenciamento de pacotes os marcarão como tal. Caso você esteja utilizando o aptitude, você verá uma lista desses pacotes na entrada “Pacotes Criados Localmente e Obsoletos”.
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 Stretch, por favor, consulte Seção 5.1.3, “Pacotes obsoletos dignos de nota”.
Alguns pacotes do jessie foram separados em diversos pacotes no stretch, muitas vezes para melhorar a manutenção do sistema. Para facilitar o caminho de atualização em tais casos, a stretch geralmente fornece pacotes “fictícios”: pacotes vazios que têm o mesmo nome como nos antigos pacotes do jessie, com dependências que fazem com que os novos pacotes sejam instalados. Esses pacotes “fictícios” são considerados redundantes após a atualização e podem ser seguramente removidos.
A maioria (mas não todas) das descrições dos pacotes fictícios indica o seu
propósito. As descrições de pacotes para pacotes fictícios não são
uniformes, porém, você pode também considerar útil o
deborphan com as opções
--guess-
(por exemplo,
*
--guess-dummy
) para detectá-los em seu sistema. Note que
alguns pacotes fictícios não têm como finalidade serem removidos após uma
atualização mas são, em vez disso, usados para acompanhar a atual versão
disponível de um programa ao longo do tempo.
[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.