Índice
Nós sugerimos que antes de atualizar você também leia as informações na Capítulo 5, Problemas a serem considerados para o squeeze. Este capítulo aborda potenciais problemas que não estão diretamente relacionados ao processo de atualização, mas que ainda podem ser importantes 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). Se você utiliza 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
. No entanto, alguns aplicativos (ex. 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 pré-condições; 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.
Se você desejar 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 squeeze, então, uma reinicialização será necessária.
Poderão haver serviços que são oferecidos pelo sistema, que estão associadas 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 estão 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 irá variar dependendo do número de pacotes sendo atualizados no sistema, e isso também inclui o tempo no qual o administrador do sistema responde às perguntas de configuração das diferentes atualizações de pacotes (se existirem). Observe que, se o processo de atualização for deixado sem acompanhamento e o sistema solicitar uma entrada ao longo da atualização, existe uma grande possibilidade dos serviços ficarem indisponíveis[4] por um período significativo de tempo.
Se o sistema que estiver sendo atualizado fornecer serviços críticos aos seus usuários ou à rede[5], você pode reduzir o tempo de indisponibilidade se fizer uma atualização mínima do sistema, como descrita na Seção 4.4.4, “Atualização mínima do sistema”, seguida de uma atualização do kernel e reinicialização (veja a Seção 4.4.5, “Atualizando o kernel e o udev”), 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.6, “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.
Por conta das inúmeras mudanças no kernel entre o lenny e o squeeze relativas a drivers, descoberta de hardware e a nomeação e ordenamento de arquivos de dispositivo, existe um risco real de você ter problemas ao reinicializar o seu sistema após a atualização. Muitos 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 conseguir levantar a rede.
Se você estiver atualizando remotamente através de um link ssh é altamente recomendado que você tome as precauções necessárias para ser capaz de acessar o servidor por meio de um terminal serial remoto. Existe uma chance de que, após atualizar o kernel e reinicializar, alguns dispositivos sejam renomeados (como descrito na Seção 4.6.2, “Reordenamento da enumeração de dispositivos” ) e 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.
A coisa mais óbvia a tentar primeiro é reinicializar com seu kernel antigo. Entretanto, por várias razões documentadas em outro lugar neste documento, não é garantido que isso funcione.
Se isso falhar, você precisará de uma forma alternativa de inicializar seu
sistema, e assim poder acessá-lo e repará-lo. Um 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.
Outra opção que nós gostaríamos de recomendar é usar o modo de recuperação do Instalador Debian do squeeze. A vantagem de usar o instalador é que você pode escolher, entre os seus vários métodos de instalação, 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.
O initramfs-tools
inclui um terminal
de depuração[6] nas initrds que ele gera. Se por exemplo a initrd for incapaz de
montar o seu sistema de arquivos raiz, você será deixado nesse terminal 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á que 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.
Se você conseguir resolver o problema, digitando exit
irá
deixar o terminal de depuração e continuar o processo de inicialização do
ponto em que falhou. Claro que você também precisará corrigir o problema
básico e gerar novamente a initrd, pois assim, a próxima inicialização não
falhará novamente.
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 |
---|---|
Se você estiver usando alguns serviços VPN (tal 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 des-recomendado para atualizações para novas versões, pois essa ferramenta precisa que a sessão da área de trabalho se mantenha ativa. |
Devido ao bug #512951, o pacote
splashy
precisa ser expurgado antes
da atualização.
# apt-get purge splashy
O processo de atualização descrito neste capítulo foi idealizado para atualizações a partir de sistemas lenny “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.
Atualizações diretas a partir de versões mais antigas do que a 5.0 (lenny) não são suportadas. Por favor, siga as instruções nas Notas de lançamento para Debian GNU/Linux 5.0 para atualizar para 5.0 primeiro.
Esse procedimento também assume que o seu sistema foi atualizado para a versão pontual mais recente do lenny. Se você não tiver feito isso ou estiver inseguro, siga as instruções na Seção A.1, “Atualizando seu sistema lenny”.
Em alguns casos, o uso do apt-get para instalação de pacotes, ao invés 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 para
corrigir isso só é possível se o seu sources.list
ainda
apontar para o lenny e não para
stable ou squeeze; veja a
Seção A.2, “Verificando sua lista de fontes (sources list)”.
Para fazer esta revisão, inicie o aptitude em “modo visual” 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”.
Se você tiver configurado o APT para instalar determinados pacotes a partir
de uma distribuição diferente da stable (ex. da testing), você pode ter que
mudar sua configuração de APT pinning (guardada em
/etc/apt/preferences
) para permitir a atualização dos
pacotes para as versões existentes na nova versão stable. Maiores
informações sobre APT pinning podem ser encontradas em apt_preferences(5).
Independentemente do método usado para atualização, é recomendado que você primeiro verifique o estados de todos, e verifique se todos estão em um estado atualizável. O seguinte comando irá exibir quaisquer pacotes que tenham um estado de “Half-Installed” ou “Failed-Config”, e aqueles com algum estado de erro.
# dpkg --audit
Você também pode inspecionar o estado de todos os pacotes em seu sistema usando dselect, 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 irá 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"
Se você quiser 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 package_name
hold | dpkg --set-selections
Substitua hold
por install
para
remover o o estado de “hold”.
Se existir alguma coisa que você precisa corrigir, é melhor certificar-se
que o seu sources.list
ainda se refere a
lenny como explicado na Seção A.2, “Verificando sua lista de fontes (sources list)”.
Se você tiver 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.
Se você tiver 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
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 esse repositório também oferece pacotes compilados
para o squeeze e alterar a linha da fonte de acordo, ao mesmo tempo,
assim como suas linhas dos fontes (src) para os pacotes Debian.
Alguns usuários podem ter versões “backported” (atualizadas retroativamente) “mais novas” não-oficiais dos pacotes que estão no Debian instaladas no seu sistema lenny. Tais pacotes são mais prováveis de causar problemas durante a atualização, pois podem resultar em conflitos de arquivo[7]. A Seção 4.5, “Possíveis problemas durante a atualização” tem algumas informações de como lidar com conflitos de arquivos se eles ocorrerem.
Antes de iniciar a atualização você deve ajustar as listas de pacote no
arquivo de configuração do apt
, o
/etc/apt/sources.list
.
O apt
irá considerar todos os
pacotes que possam ser encontrados através de qualquer linha iniciada por
“deb
”, e irá 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, normalmente indicará
primeiro um disco rígido, depois o CD-ROMs, e então os
espelhos HTTP/FTP).
Uma versão pode frequentemente ser referida tanto pelo seu codinome (por
exemplo, lenny
,
squeeze
) como pelo seu nome de estado (ou seja,
oldstable
, stable
,
testing
, unstable
). Referir-se a uma
uma versão pelo seu codinome tem a vantagem que você nunca será surpreendido
por uma nova versão, e por essa razão a abordagem é adotada aqui. Isso
significa certamente que você mesmo terá que ficar atento aos anúncios de
lançamento. Se ao invés disso você usar o nome de estado, verá apenas o
carregamento das atualizações dos pacotes disponíveis assim que um
lançamento acontecer.
A configuração padrão é definida para instalação a partir dos principais
servidores do Debian na Internet, mas você pode querer modificar o
/etc/apt/sources.list
para usar outros espelhos,
preferencialmente um espelho que esteja localizado o mais próximo de você.
Os endereços dos espelhos HTTP ou FTP do Debian podem ser encontrados em http://www.debian.org/distrib/ftplist (veja na seção “lista de espelhos do Debian”). Espelhos HTTP geralmente são mais rápidos do que espelhos FTP.
Por exemplo, suponha que seu espelho Debian mais próximo seja
http://mirrors.kernel.org
. Quando examinar esse espelho com
um navegador web ou programa de FTP, você notará que o diretório principal
está organizado assim:
http://mirrors.kernel.org/debian/dists/squeeze/main/binary-ia64/... http://mirrors.kernel.org/debian/dists/squeeze/contrib/binary-ia64/...
Para usar esse espelho com o apt
,
você adiciona esta linha ao seu arquivo sources.list
:
deb http://mirrors.kernel.org/debian squeeze 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
” já existentes em
sources.list
pondo um sinal de cerquilha
(#
) no início delas.
Ao invés de usar espelhos de pacotes HTTP ou FTP, você pode querer 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/ftp/debian/
, e ter diretórios principais assim:
/var/ftp/debian/dists/squeeze/main/binary-ia64/... /var/ftp/debian/dists/squeeze/contrib/binary-ia64/...
Para usar esse com o apt
, adicione
esta linha ao seu arquivo sources.list
:
deb file:/var/ftp/debian squeeze 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
” já existentes em
sources.list
pondo um sinal de cerquilha
(#
) no início delas.
Se você quiser usar apenas CDs, 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
/cdrom
(o ponto de montagem /cdrom
certo é requerido pelo apt-cdrom). Por exemplo, se
/dev/hdc
for seu drive de CD-ROM, o
/etc/fstab
deve conter uma linha como:
/dev/hdc /cdrom auto defaults,noauto,ro 0 0
Note que não deve haver nenhum espaço entre as palavras
defaults,noauto,ro
no quarto campo.
Para verificar se funciona, insira um CD e tente executar
# mount /cdrom # isso montará o CD no ponto de montagem # ls -alF /cdrom # isso deve exibir o diretório raiz do CD # umount /cdrom # isso desmontará o CD
Depois, execute:
# apt-cdrom add
para cada CD-ROM com arquivos executáveis 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 GNU/Linux é 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 se mostrado mais coerentes nos resultados obtidos 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 tanto ao
“squeeze
” quanto ao
“stable
”. Não devem haver quaisquer entradas
de fontes que apontem para o lenny
![]() | 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-squeeze-etapa
.hora -a ~/upgrade-squeeze-etapa
.script
ou semelhante. Se você tiver que reexecutar o typescript (por exemplo, se
você tiver que reinicializar o sistema) use valores diferentes para a
etapa
para indicar que 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. Se você estiver no console do sistema, apenas mude para VT2
(usando Alt+F2) e, após
se autenticar, use less -R
~root/upgrade-squeeze.script
para ver o arquivo.
Depois que você tiver completado a atualização, pode parar o
script digitando exit
no prompt.
Se você tiver usado a opção -t para o script você pode usar o programa scriptreplay para reproduzir toda a sessão:
# scriptreplay ~/upgrade-squeeze-etapa.hora ~/upgrade-squeeze-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ê tem
espaço em disco rígido suficiente quando iniciar a atualização completa do
sistema descrita na Seção 4.4.6, “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 manté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 sistema para ambas as
instalações de pacotes atualizados (que podem conter executáveis maiores ou
mais dados) e novos pacotes que serão puxados pela atualização. Se o seu
sistema não tiver 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 do 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 dar um erro, devido às razões descritas nas próximas seções. Nesse casso, você precisará esperar até que tenha feito a atualização do sistema mínimo como na Seção 4.4.4, “Atualização mínima do sistema” e atualizado o seu kernel, antes de executar esse comando para estimar o espaço em disco. |
Se você não tiver espaço suficiente em disco para a atualização, o apt-get irá avisá-lo 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
). A limpeza do chace de pacotes
executando apt-get clean irá remover todos os arquivos de
pacote previamente baixados.
Remover pacotes esquecidos. Se você tiver o popularity-contest
instalado, você pode usar o
popcon-largest-unused para listar os pacotes que você não
usa que ocupam mais espaço. Você também pode usar o
deborphan ou o debfoster para
localizar pacotes obsoletos (veja a Seção 4.9, “Pacotes obsoletos”
). Alternativamente, você pode iniciar o aptitude em
“modo visual” e localizar pacotes obsoletos em “Pacotes
Obsoletos e Criados Localmente”.
Remover pacotes que ocupam espaço demais e não são necessários atualmente
(você sempre pode reinstalá-los após a atualização). Você pode listar os
pacotes que mais ocupam espaço em disco com o dpigs
(disponível no pacote debian-goodies
) ou com o
wajig (executando wajig size
).
Você pode listar os pacotes que mais ocupam espaço em disco com o
aptitude
. Inicie o
aptitude em “modo visual”, selecione
→ , pressione l e digite
~i
, pressione S e digite
~installsize
, então terá uma boa lista 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, se você tiver um drive USB montado em
/media/pendrive
:
remove the packages that have been previously downloaded for installation:
# apt-get clean
copie o diretório /var/cache/apt/archives
para o
dispositivo 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.
Faça 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 lenny como
descrito na Seção A.2, “Verificando sua lista de fontes (sources list)”.
Em alguns casos, a atualização completa feita (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.6, “Atualizando o sistema”.
Para fazer isso primeiro, execute:
# apt-get upgrade
Isso tem o efeito de atualizar aqueles 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 espaço apertado e uma atualização completa não puder ser feita devido às restrições de espaço.
A versão do udev
no squeeze
requer um kernel da versão 2.6.26 ou mais novo com a opção
CONFIG_SYSFS_DEPRECATED
desabilitada e a opções
CONFIG_INOTIFY_USER
e CONFIG_SIGNALFD
habilitadas. Porque os kernels do Debian padrão no lenny (versão
2.6.26) têm o CONFIG_SYSFS_DEPRECATED
habilitado, e a
versão do udev
no lenny
não fornecerá todas as funcionalidades esperadas pelos kernels mais
recentes, um cuidado especial deve ser tomado quando atualizar para evitar
pôr o seu sistema em um estado não-inicializável.
Inicializar o kernel 2.6.26 a partir do lenny com o udev
do squeeze pode resultar em uma falha
na atribuição de nomes aos dispositivos de rede, e também irá falhar ao
aplicar certas permissões adicionais aos dispositivos de bloco (tal como
acesso pelo grupo disk
). O software em si parecerá estar
funcionando, mas algumas regras (por exemplo, regras baseadas em rede) não
serão carregadas corretamente. É portanto fortemente recomendado que você
atualize o kernel por conta própria neste momento, para garantir que um
kernel compatível está disponível antes da atualização do udev
.
Para proceder com essa atualização do kernel, execute:
# apt-get install linux-image-2.6-variante
Veja a Seção 4.6.1, “Instalando o meta-pacote do kernel” para ajuda na determinação de qual variante do kernel você deve instalar.
A mudança de alguns firmwares para pacotes separados no repositório non-free (veja a Seção 2.1.2, “Firmware movido para a seção non-free”) significa que pode ser necessário instalar pacotes de firmware adicionais após a atualização para o novo kernel. Tenha cuidado com as mensagens de aviso da instalação do kernel ou scripts de geração do initramfs, e certifique-se que os pacotes de firmware necessários estão instalados.
Imediatamente após a atualização do kernel, você também deve instalar o novo
udev
para minimizar o risco de outra
incompatibilidade causada por usar o udev antigo com um kernel novo
[8]. Você pode fazer isso executando:
# apt-get install udev
Você deve reinicializar o sistema [9] uma vez que você tenha atualizado o kernel e o udev
.
Once you have taken the previous steps, you are now ready to continue with the main part of the upgrade. Execute:
# apt-get dist-upgrade
![]() | Nota |
---|---|
O processo de atualização para as outras versões recomendava o uso do aptitude para a atualização. Essa ferramenta não é recomendada para atualizações do lenny para o squeeze. |
Isso irá realizar uma atualização completa do sistema, ou seja, instalar as versões mais novas disponíveis de todos os pacotes, e resolver todas as mudanças de dependências possíveis entre pacotes em lançamentos diferentes. Se necessário, irá 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 CD-ROMs (ou DVDs), será pedido para inserir CDs específicos em vários pontos durante a atualização. Você pode ter que inserir o mesmo CD várias vezes; isso é devido aos pacotes inter-relacionados que foram espalhados através dos CDs.
As novas versões dos pacotes instalados atualmente que não puderem ser
atualizadas sem mudar o estado 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 -f
install
.
pacote
As seções seguintes descrevem problemas conhecidos que podem aparecer durante uma atualização para o squeeze.
O suporte para cryptoloop foi abandonado nos pacotes do kernel Linux incluídos no Debian 6.0. Instalações já existentes que utilizem cryptoloop precisam ser transferidas para dm-crypt antes da atualização.
O processo de atualização para o squeeze pode solicitar a remoção de pacotes no sistema. A lista exata dos pacotes irá variar dependendo dos conjuntos de pacotes que você tenha instalados. 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.
Some common packages that are expected to be removed include: autofs
(replaced by autofs5
), dhcp3
(replaced by isc-dhcp
), madwifi-source
and python2.4
(replaced by python2.6
). For more information about packages
obsoleted in squeeze, see Seção 4.9, “Pacotes obsoletos”.
Se uma operação falha usando aptitude, apt-get, ou dpkg com o erro
E: Dynamic MMap ran out of room
O espaço de cache padrão está insuficiente. Você pode resolver isso tanto
removendo ou comentando linhas que você não precisa em
/etc/apt/sources.list
como aumentando o tamanho do
cache. O tamanho do cache pode ser aumentado pelo ajuste
APT::Cache-Limit
no
/etc/apt/apt.conf
. O seguinte comando irá ajustá-lo
para um valor que deverá ser suficiente para a atualização:
# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf
Isso pressupõe que você ainda não possui essa variável definida nesse arquivo.
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 irá
alertá-lo 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 arquivos não devem ocorrer se você atualizar a partir de um sistema “puro” lenny, mas podem ocorrer se você tem “backports” não oficiais instalados. Um conflito de arquivo irá resultar em um erro como:
Descompactando<pacote-foo>
(de<arquivo-do-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
.
Se você não tiver 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.
Se você estiver 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 acontece em sistemas desktop quando o gdm é reiniciado.
Para recuperar o console onde a atualização estava em execução você terá que usar Ctrl+Alt+F1 para mudar de volta para o terminal 1 se estiver na tela de inicialização gráfica ou use Alt+F1 se estiver no console local em modo texto. 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.
Na maioria dos casos, os pacotes deverão atualizar sem problemas entre lenny e squeeze. Existe um pequeno número de casos onde alguma intervenção pode ser necessária, seja antes ou durante a atualização; esses estão detalhados a seguir baseados por pacote.
Evolution (o cliente de e-mail da área de trabalho GNOME) foi atualizado da
versão 2.22
para a 2.30
. Isso muda o
formato de armazenamento usado pelo pacote para dados locais e existe uma
possibilidade de perda de dados se a atualização for feita enquanto o
evolution
estiver em execução. A
saída do próprio aplicativo pode não ser suficiente, uma vez que vários
componentes relacionados continuarão a ser executados em segundo plano. Para
evitar possíveis problemas, é recomendado que você saia completamente da seu
ambiente de área de trabalho antes de iniciar a atualização para o
squeeze.
Como parte do processo de atualização, o evolution
irá verificar se todos os processos
relacionados estão em execução e recomendará que eles sejam fechados. Uma
segunda verificação dos processo será então realizada; se necessário, será
oferecida uma escolha entre permitir que os processo remanescentes sejam
mortos ou abortar a atualização, para resolver a situação manualmente.
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ê esteja usando um dos kernels modulares do Debian, juntamente com o
initramfs-tools
e o udev
. Se você escolher utilizar um kernel
customizado que não requeira uma initrd ou se você utiliza um gerador de
initrd diferente, algumas das informações podem não ser relevantes para
você.
Quando você fizer dist-upgrade do lenny para o squeeze, é fortemente recomendado que você instale um novo meta-pacote linux-image-2.6-*. Esse pacote pode ser automaticamente instalado pelo processo dist-upgrade. Você pode verificar isso executando:
# dpkg -l "linux-image*" | grep ^ii
Caso você não veja nenhuma saída, então você precisará instalar um novo pacote linux-image manualmente. Para ver uma lista de meta-pacotes linux-image-2.6 disponíveis, execute:
# apt-cache search linux-image-2.6- | grep -v transition
Se você estiver inseguro sobre qual pacote selecionar, execute
uname -r
e procure um pacote com um nome semelhante. Por
exemplo, caso você veja '2.6.26-2-686
', é recomendado que
você instale linux-image-2.6-686
. Você também pode usar
apt-cache para ver uma longa descrição de cada pacotes a
fim de ajudar a escolher o melhor disponível. Por exemplo:
# apt-cache show linux-image-2.6-686
Você deverá 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.
Para os mais aventurosos existe uma forma fácil de compilar seu próprio
kernel customizado no Debian GNU/Linux. Instale a ferramenta kernel-package
e leia a documentação em
/usr/share/doc/kernel-package
. Alternativamente, você
também pode usar os fontes do kernel, fornecidos no pacote linux-source-2.6
. Você pode fazer uso do alvo
deb-pkg
disponível no makefile dos fontes para construir
um pacote executável. Existem algumas diferenças nessas duas abordagens, por
favor, consulte a respectiva documentação do pacote.
Se possível, é vantagem atualizar o pacote do kernel separadamente do
principal dist-upgrade
para reduzir as chances de ter um
sistema temporariamente não-inicializável. Note que isso deverá 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”.
No lenny e posteriores, um novo mecanismo do kernel para descoberta de hardware pode mudar a ordem na qual os dispositivos são descobertos no seu sistema a cada inicialização, afetando os nomes dos dispositivos que lhes forem atribuídos. Por exemplo, se você tiver duas placas de rede que são associadas a dois drivers diferentes, as referências dos dispositivos eth0 e eth1 podem ser trocadas.
Para dispositivos de rede, esse reordenamento normalmente é evitado pelas
definições em /etc/udev/rules.d/70-persistent-net.rules
para o udev
. Uma vez que essas
regras já existiam no lenny, nenhuma ação adicional deverá ser
necessária quando fizer a atualização para o squeeze para obter o
benefício dos nomes fixos nos dispositivos de rede. Por favor, note
entretanto que esse mecanismo udev significa que um nome de determinado
dispositivo de rede está amarrado a uma determinada parte do hardware; se
você, por acaso, substituir placas de rede em um sistema squeeze
implantado, a nova placa irá obter um novo nome de interface ao invés de
usar o já existente. Para reutilizar um nome de dispositivo já existente
para um novo hardware, você precisará excluir a entrada associada do
/etc/udev/rules.d/70-persistent-net.rules
.
Para dispositivos de armazenamento, você pode evitar esse reordenamento
usando o initramfs-tools
e o
configurando para carregar os módulos do driver do dispositivo de
armazenamento na mesma ordem em que estão atualmente carregados. Entretanto,
à luz de outras mudanças no subsistema de armazenamento do kernel Linux,
como descrito na Seção 5.1.1, “Migração de drivers de disco de subsistemas IDE para PATA”, geralmente isso não
merece o esforço e, ao invés disso, é recomendado usar nomes de dispositivos
que sejam fixos ao longo do tempo, tais como os pseudônimos UUID [10] no diretório /dev/disk/by-uuid/
ou nomes de
dispositivos LVM em /dev/mapper/
.
Se uma initrd criada com o initramfs-tools
for usada para inicializar o
sistema, em alguns casos a criação dos arquivos de dispositivo pelo
udev
pode ocorrer muito tarde para
que os scripts inicialização atuem.
The usual symptoms are that the boot will fail because the root file system cannot be mounted and you are dropped into a debug shell:
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/something
does not exist. Dropping to a shell!
(initramfs)
But if you check afterwards, all devices that are needed are present in
/dev
. This has been observed in cases where the root
file system is on a USB disk or on
RAID, especially if
LILO is
used.
Uma forma de contornar esse problema é usar o parâmetro de inicialização
rootdelay=
. O valor para o
timeout (em segundos) talvez precise ser ajustado.
9
Após a atualização existem diversas coisas que você pode fazer para preparar-se para a próxima versão.
Remova pacotes obsoletos e não usados como descrito na Seção 4.9, “Pacotes obsoletos”. Você deve rever que arquivos de configuração eles usam e considerar expurgar os pacotes para remover seus arquivos de configuração.
Com a próxima versão do Debian GNU/Linux 7.0 (codinome wheezy) alguns recursos estarão obsoletos. Os usuários precisarão migrar para outras alternativas para evitar aborrecimento quando atualizar para 7.0.
Isso inclui os seguintes recursos:
OpenVZ e Linux-Vserver: o Debian GNU/Linux 6.0 será a última versão a incluir conjuntos de recursos de virtualização do kernel Linux fora da linha principal. Isso significa que os conjuntos de recursos do OpenVZ e Linux-Vserver deverão ser considerados obsoletos, e os usuários deverão migrar para soluções de virtualização mescladas do upstream linux-2.6 como KVM, Contêineres Linux ou Xen.
O pacote gdm
(Gerenciador de Tela do
GNOME versão 2.20) se tornará obsoleto pelo gdm3
, uma versão reescrita. Veja a Seção 5.6, “Mudanças na área de trabalho GNOME e suporte” para mais informações.
Ao introduzir diversos milhares de novos pacotes, o squeeze também aposenta e omite mais de quatro mil pacotes antigos que estavam no lenny. Não é fornecido um caminho de atualização para esses pacotes obsoletos. Apesar de nada o impedir de continuar a usar um pacote obsoleto enquanto o desejar, o projeto Debian irá normalmente descontinuar o suporte de segurança para o mesmo um ano após o lançamento do squeeze [11], e não irá fornecer normalmente outro suporte nesse período. É recomendado substituí-los por alternativas disponíveis, se houverem.
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 squeeze 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 irão marcá-los como tal. Se você estiver usando o aptitude, você verá uma lista desses pacotes na entrada “Pacotes Criados Localmente e Obsoletos”. O dselect fornece uma seção semelhante mas a lista que ele apresenta pode ser diferente.
Além disso, se você tiver usado o aptitude ou
apt-get para instalar pacotes manualmente no
lenny, ele terá mantido o registro desses pacotes que você
instalou manualmente e será capaz de marcar como obsoletos aqueles pacotes
obtidos apenas por dependências que não são mais necessárias se um pacote
tiver sido removido. O aptitude e apt
, ao contrário do
deborphan, não marcarão para remoção pacotes que você
instalou manualmente, ao contrário dos que foram instalados automaticamente
por meio de dependências. Para remover automaticamente pacotes que não sejam
mais usados, execute:
# apt-get autoremove
Existem ferramentas adicionais que você pode usar para localizar pacotes
obsoletos tais como deborphan,
debfoster ou cruft. O
deborphan é altamente recomendado, apesar que ele irá (no
modo padrão) relatar apenas bibliotecas obsoletas: pacotes nas seções
“libs
” ou
“oldlibs
” que não sejam usados por quaisquer
outros pacotes. Não remova cegamente os pacotes que estas ferramentas
apresentarem, especialmente se você estiver usando opções agressivas
diferentes do padrão, que são propensas a produzir falsos positivos. É
altamente recomendado que você reveja manualmente os pacotes sugeridos para
remoção (ou seja, seu conteúdo, tamanho e descrição) antes que você os
remova.
O Sistema de Rastreamento de Bugs frequentemente fornece informações adicionais sobre a razão da remoção do pacote. Você deveria rever tanto os relatórios de bug arquivados quanto os relatórios de bug para o pseudo-pacote ftp.debian.org.
A lista dos pacotes obsoletos inclui:
A suíte de gerenciamento de conteúdo plone
. Isso foi feito a pedido dos
desenvolvedores para usar o Instalador Unificado para Linux, que eles
consideram sua única plataforma de implantação suportada. A ferramenta
recomendada para instalação do Plone em um sistema Debian GNU/Linux é o Instalador
Unificado, disponível para download em http://plone.org/
O nessus
, servidor de varredura de
vulnerabilidades e suas bibliotecas associadas e outros programas. Ele ficou
obsoleto em favor do software fornecido pela OpenVAS que inclui openvas-server
e openvas-client
. Como não existe caminho de
atualização automática você terá que instalar o OpenVAS e passar manualmente
as configurações do serviço Nessus (usuários, certificados, etc.) para o
OpenVAS.
O software Java 5 inclui os pacotes sun-java5-jre
e sun-java5-bin
, o sucessor é o Java 6:
sun-java6-jre
e pacotes associados.
O apt-proxy
não é mais fornecido, as
alternativas para essa ferramenta incluem apt-cacher-ng
, apt-cacher
e approx
. Embora não exista caminho de atualização
automática, os usuários do apt-proxy
podem mudar para essas alternativas instalando manualmente qualquer um
desses pacotes.
Alguns dos drivers de vídeo do Xorg não estão mais disponíveis no
squeeze e são obsoletos. Isso inclui xserver-xorg-video-cyrix
, xserver-xorg-video-i810
, xserver-xorg-video-imstt
, xserver-xorg-video-nsc
, xserver-xorg-video-sunbw2
, e xserver-xorg-video-vga
. Eles podem ser removidos
por meio da atualização. Os usuários devem instalar o xserver-xorg-video-all
como alternativa.
O utilitário usado no lenny para exibir uma imagem de abertura no
momento da inicialização, usplash
,
não está mais disponível. Ele foi substituído pelo plymouth
.
Alguns pacotes do lenny foram separados em diversos pacotes no squeeze, muitas vezes para melhorar a manutenção do sistema. Para facilitar o caminho de atualização em tais casos, o squeeze geralmente fornece pacotes “fictícios”: pacotes vazios que têm o mesmo nome como nos antigos pacotes do lenny com dependências que fazem com que os novos pacotes sejam instalados. Esses pacotes “fictícios” são considerados pacotes obsoletos 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, entretanto, assim você também pode localizar o
deborphan com as opções
--guess-
(por exemplo,
*
--guess-dummy
) úteis 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, ao invés disso, usados para
acompanhar a atual versão disponível de um programa ao longo do tempo.
[4] Se a prioridade do debconf estiver configurada em um nível muito alto você pode evitar o avisos de configuração, mas os serviços que dependem de respostas predefinidas, que não são aplicáveis aos seu sistema, irão falhar ao iniciar.
[5] Por exemplo: serviços de DNS ou DHCP, especialmente quando não há redundância ou substituto em caso se 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.
[6] Esse recurso pode ser desabilitado adicionando o parâmetro
panic=0
aos seus parâmetros de inicialização.
[7] 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 tenha sido definido para substituir esse pacote.
[8] Também existem incompatibilidades conhecidas entre o kernel antigo e o
udev
novo. Se você encontrar
problemas após a reinicialização com o kernel novo, terá que desfazer a
atualização do udev
para utilizar o
antigo.
[9] Se você estiver registrando a atualização como descrito na Seção 4.4, “Atualizando pacotes”, por favor, use novamente o script para registrar os próximos passos da atualização após a reinicialização para registrar o resultado das ações descritas na Seção 4.4.6, “Atualizando o sistema”.
[10] Alguns dispositivos, tais como aqueles usados pelo crypt, RAID ou LVM têm identificadores não-UUID fixos. Nesses casos, você deverá usar o nome dos dispositivos, que já são não-ambíguos e fixos.
[11] 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.