Capítulo 4. Actualizações a partir de lançamentos anteriores

Índice

4.1. Preparar para a actualização
4.1.1. Salvaguardar quaisquer dados ou informação de configuração
4.1.2. Informar os utilizadores com antecedência
4.1.3. Preparar para recuperação
4.1.4. Preparar um ambiente seguro para a actualização
4.1.5. Prepara o initramfs para o LILO
4.2. Verificar o estado do sistema
4.2.1. Rever as acções pendentes no gestor de pacotes
4.2.2. Desactivar o APT pinning
4.2.3. Verificar o estado dos pacotes
4.2.4. Secção de actualizações propostas (proposed-updates)
4.2.5. Fontes não oficiais e 'backports'
4.3. Desmarcar pacotes manualmente
4.4. Preparar as fontes para o APT
4.4.1. Acrescentar fontes APT da Internet
4.4.2. Acrescentar fontes APT para um 'mirror' local
4.4.3. Acrescentar uma fonte APT de CD-ROM ou DVD
4.5. Actualizar pacotes
4.5.1. Gravar a sessão
4.5.2. Actualizar a lista de pacotes
4.5.3. Certificar-se que possui espaço suficiente para a actualização
4.5.4. Actualizar o apt e/ou o aptitude primeiro
4.5.5. Usando a lista do aptitude de pacotes automaticamente instalados com o apt
4.5.6. Actualização mínima do sistema
4.5.7. Actualizar o resto do sistema
4.5.8. Possíveis problemas durante a actualização
4.6. Actualizar o seu kernel e pacotes relacionados
4.6.1. Instalar o meta-pacote do kernel
4.6.2. Reordenação da enumeração de dispositivos
4.6.3. Problemas de timing no arranque
4.7. Coisas a fazer antes de reiniciar a máquina
4.7.1. Correr novamente o lilo
4.8. O arranque do sistema pendura em Waiting for root file system
4.8.1. Como evitar o problema antes da actualização
4.8.2. Como recuperar do problema após a actualização
4.9. Preparar para o próximo lançamento
4.10. Pacotes obsoletos
4.10.1. Pacotes fictícios

4.1. Preparar para a actualização

Nós sugerimos que antes de actualizar também leia a informação em Capítulo 5, Problemas a estar atento na lenny. 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.

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

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 a que não se pode 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.

A principal informação que quererá salvaguardar é o conteúdo de /etc, /var/lib/dpkg, /var/lib/aptitude/pkgstates e saída de dpkg --get-selections "*" (as aspas são importantes).

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 conhecidos 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.

4.1.1.1. Certificar-se que está com um kernel apropriado

A versão lenny do glibc não irá funcionar com kernels anteriores ao 2.6.8 em nenhuma arquitectura e algumas arquitecturas têm requisitos mais altos. Nós recomendamos fortemente que actualize e teste um kernel 2.6.18 ou 2.6.24 da etch ou um kernel personalizado de pelo menos a versão 2.6.18 antes de iniciar o processo de actualização.

4.1.2. Informar os utilizadores com antecedência

É 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ê provavelmente terá de fazer uma actualização do kernel para lenny, por isso normalmente será necessário reiniciar a máquina. Tipicamente, isto será feito após a actualização ter terminado.

4.1.3. Preparar para recuperação

Devido às muitas alterações no kernel entre etch e lenny no que diz respeito a drivers, descoberta de hardware e nomeação e ordenação de ficheiros de dispositivos, há um risco real que experimente problemas quando reiniciar o sistema depois da actualização. Muitos dos problemas potenciais conhecidos estão documentados neste e nos próximos capítulos destas Notas de Lançamento.

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

Se está a actualizar remotamente através de uma ligação ssh é altamente 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 actualizar o kernel e reiniciar, alguns dispositivos sejam renomeados (conforme é descrito em Secção 4.6.2, “Reordenação da enumeração de dispositivos”) e você terá 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 de fazer a recuperação utilizando uma consola local.

A coisa mais óbvia a tentar primeiro é reiniciar com o antigo kernel. No entanto, devido a várias razões documentadas noutro sítio deste documento, não é garantido que funcione.

Se isso falhar, precisará de um modo alternativo de arrancar o seu sistema para que possa aceder-lhe e repará-lo. Uma opção é utilizar uma imagem especial de recuperação ou um live CD de Linux. Após arrancar com ele, deverá ser capaz de montar o seu sistema de ficheiros raiz e chroot nele para investigar e resolver o problema.

Outra opção que gostaríamos de recomendar é a utilização do modo de recuperação do instalador Debian lenny. A vantagem de utilizar o instalador é que pode escolher de entre os seus muitos modos de instalação o que melhor se adequa à 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 as FAQ do instalador Debian.

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

O initramfs-tools inclui uma 'shell' de depuração[2] nos initrds que gera. Se por exemplo o initrd é 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 no ponto 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 de novo.

4.1.4. Preparar um ambiente seguro para a actualização

A actualização da distribuição deve ser efectuada localmente a partir de uma consola virtual de texto (ou directamente ligada a um terminal série), ou remotamente através de uma ligação ssh.

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.

[Importante]Importante

Você Não deve actualizar usando telnet, rlogin, rsh, ou a partir de uma sessão X gerida pelo xdm, pelo gdm ou pelo kdm etc na máquina que estiver a actualizar. Isto porque cada um desses serviços podem ser terminados durante esta actualização, o que pode resultar num sistema inacessível que ficou apenas meio actualizado.

4.1.5. Prepara o initramfs para o LILO

Utilizadores que usem o gestor de arranque LILO devem notar que as configurações predefinidas para o initramfs-tools agora geram uma initramfs que é muito grande para o LILO carregar. Esses utilizadores devem ou mudar para o grub, ou editar o ficheiro /etc/initramfs-tools/initramfs.conf, e alterar a linha

MODULES=most

para ler

MODULES=dep

No entanto, note que fazendo isto irá causar com que o initramfs-tools instale no initramfs apenas aqueles módulos que são requisitados para o hardware particular em que está a correr. Se deseja gerar uma média de arranque que irá funcionar em mais hardware do que apenas aquele da máquina em que está a gerá-la, deverá deixar a linha como

MODULES=most

e certifique-se que não usa o LILO.

4.2. Verificar o estado do sistema

O processo de actualização descrito neste capítulo foi desenhado para actualizações de sistemas etch “puros” sem pacotes de terceiros. Para uma maior fiabilidade do processo de actualização, pode querer remover pacotes de terceiros do seu sistema antes de começar a actualização.

Este procedimento também assume que o seu sistema foi actualizado até ao último ponto da versão etch. Se não tiver feito esta actualização ou não tem a certeza, siga as instruções em Secção A.1, “Actualizar o seu sistema etch”.

4.2.1. Rever as acções pendentes no gestor de pacotes

Em alguns casos, a utilização do apt-get para instalar pacotes em vez do aptitude pode fazer o aptitude considerar um pacote como “não utilizado” e marcá-lo para remoção. De um modo geral, você deve assegurar-se que o sistema está totalmente actualizado e “limpo” antes de proceder com a actualização.

Devido a disto você deve verificar novamente se existem acções pendentes no gestor de pacotes aptitude. Se um pacote estiver marcado para remoção ou para actualização no gestor de pacotes, poderá ter um impacto negativo no procedimento de actualização. Note que para corrigir isto apenas é possível se o seu sources.list ainda apontar para etch; e não para stable ou lenny; veja Secção A.2, “Verificar a sua lista de fontes”.

Para fazer esta revisão, arranque o aptitude em “modo visual” e carregue em g (“Go”). Se mostrar quaisquer acções, você deve revê-las e, ou corrigi-las ou implementar as acções sugeridas. Se não forem sugeridas acções ser-lhe-á apresentada uma mensagem a dizer “Nenhum pacote está marcado para ser instalado, removido ou actualizado”.

4.2.2. Desactivar o APT pinning

Se configurou o APT para instalar determinados pacotes a partir de uma distribuição que não a estável (por ex. a partir da testing), pode ter que alterar a sua configuração de APT pinning (armazenada em /etc/apt/preferences) 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).

4.2.3. Verificar o estado dos pacotes

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 dselect, aptitude, ou com comandos como

# dpkg -l | pager

ou

# dpkg --get-selections "*" > ~/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.

Note que o aptitude utiliza um método diferente para registar os pacotes bloqueados que o apt-get e dselect. Pode identificar pacotes bloqueados para o aptitude com

# aptitude search "~ahold" | grep "^.h"

Se quiser verificar que pacotes tem bloqueados para o apt-get deverá utilizar

# dpkg --get-selections | grep hold

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 aptitude pode ser alterado utilizando:

# aptitude hold nome_do_pacote

Substitua hold por unhold para remover o estado “hold”.

Se existe alguma coisa que necessita de corrigir, o melhor é certificar-se que o seu ficheiro sources.list continua a apontar para a etch conforme é explicado em Secção A.2, “Verificar a sua lista de fontes”.

4.2.4. Secção de actualizações propostas (proposed-updates)

Se você listou a secção proposed-updates no seu ficheiro /etc/apt/sources.list, deverá removê-la desse ficheiro antes de tentar actualizar o seu sistema. Isto é uma precaução para reduzir a probabilidade de conflitos.

4.2.5. Fontes não oficiais e 'backports'

Se possuir pacotes que não sejam da Debian no seu sistema, deverá saber que estes podem ser removidos durante a actualização, devido a conflitos entre dependências. Se estes pacotes foram instalados adicionando um arquivo de pacotes extra ao seu /etc/apt/sources.list, deverá verificar se aquele arquivo também oferece pacotes compilados para a lenny e altere a linha 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 que estão em Debian instalados no seu sistema etch. Tais pacotes irão provavelmente criar problemas durante a actualização, pois podem criar conflitos de ficheiros[3]. Secção 4.5.8, “Possíveis problemas durante a actualização” tem alguma informação em como lidar com conflitos de ficheiros caso eles possam ocorrer.

4.2.5.1. Usando pacotes backports.org

backports.org é um repositório semi-oficial disponibilizado por desenvolvedores Debian GNU/Linux, o qual disponibiliza novos pacotes para a distribuição estável, baseados na reconstrução de pacotes do arquivo “testing”.

O repositório backports.org principalmente contém pacotes da “testing”, com números de versão reduzidos para que o caminho de actualização de backports etch para lenny continue a funcionar. No entanto, existem alguns backports que são feitos da instável: actualizações de segurança mais as seguintes excepções: Firefox, o kernel Linux, OpenOffice.org, e o X.Org.

If you do not use one of these exceptions, you can safely upgrade to lenny. If you use one of these exceptions, set the Pin-Priority (see apt_preferences(5)) temporarily to 1001 for all packages from lenny, and you should be able to do a safe dist-upgrade too.

4.3. Desmarcar pacotes manualmente

Para prevenir o aptitude de remover alguns pacotes que foram pedidos através das dependências, você necessita de manualmente desmarcá-los como pacotes auto. Isto inclui o OpenOffice e o Vim para instalações de desktop:

# aptitude unmarkauto openoffice.org vim

E as imagens do kernel 2.6 se as instalou utilizando um meta-pacote de kernel:

# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6.*' | cut -f1)
[Nota]Nota

Você pode rever quais os pacotes que estão marcados como auto no aptitude, ao correr:

# aptitude search '~i~M'

4.4. Preparar as fontes para o APT

Antes de iniciar a actualização deverá configurar o ficheiro de configuração do apt para listas de pacotes, o /etc/apt/sources.list.

O apt irá considerar todos os pacotes que podem ser encontrados através de qualquer linha “deb”, e instalará o pacote com o número de versão mais elevado, dando prioridade às primeiras linhas no ficheiro (assim onde tiver múltiplas localizações de 'mirrors', tipicamente deverá ter primeiro um disco local, depois CD-ROMs e então 'mirrors' HTTP/FTP).

[Dica]Dica

Talvez precise de adicionar uma excepção à verificação GPG para os DVDs e CD-ROMs. Adicione a seguinte linha ao /etc/apt/apt.conf, se não estiver já em /etc/apt/apt.conf.d/00trustcdrom:

APT::Authentication::TrustCDROM "true";

No entanto isto não funciona com ficheiros imagem de DVD/CD-ROM

Um lançamento pode ser normalmente referido pelo seu nome de código (por ex. etch;, lenny) 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.

4.4.1. Acrescentar fontes APT da Internet

A configuração predefinida é definida para instalação a partir de um servidor principal de Debian na Internet, mas poderá desejar modificar o /etc/apt/sources.list para utilizar outros 'mirrors', de preferência um 'mirror' localizado mais perto de si.

Endereços de 'mirrors' Debian HTTP ou FTP podem ser encontrados em http://www.debian.org/distrib/ftplist (veja na secção “Lista de 'mirrors' Debian”). OS 'mirrors' HTTP geralmente são mais rápidos do que os 'mirrors' FTP.

Por exemplo, suponha que o 'mirror' Debian mais perto de si é http://mirrors.kernel.org/. Quando inspeccionar aquele 'mirror' com um navegador web ou um programa FTP, irá notar que os directórios principais estão organizados desta forma:

http://mirrors.kernel.org/debian/dists/lenny/main/binary-amd64/...
http://mirrors.kernel.org/debian/dists/lenny/contrib/binary-amd64/...

Para utilizar este 'mirror' com o apt, adicione esta linha ao seu ficheiro sources.list:

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

Note que o `dists' é implicitamente acrescentado, 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 “deb” previamente existentes em sources.list, colocando um cardinal (#) à frente das mesmas.

4.4.2. Acrescentar fontes APT para um 'mirror' local

Em vez de utilizar os 'mirrors' de pacotes HTTP ou FTP, pode desejar modificar o /etc/apt/sources.list de modo a utilizar um 'mirror' num disco local (possivelmente montado sobre NFS).

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

/var/ftp/debian/dists/lenny/main/binary-amd64/...
/var/ftp/debian/dists/lenny/contrib/binary-amd64/...

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

deb file:/var/ftp/debian lenny main contrib

Note que o `dists' é implicitamente acrescentado, 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 “deb” previamente existentes em sources.list, colocando um cardinal (#) à frente das mesmas.

4.4.3. Acrescentar uma fonte APT de CD-ROM ou DVD

Se quiser utilizar apenas CDs, comente as linhas “deb”existentes em /etc/apt/sources.list colocando um cardinal (#) à frente das mesmas.

Certifique-se que existe uma linha em /etc/fstab que permita a montagem do seu leitor de CD-ROM no ponto de montagem /cdrom (o ponto exacto de montagem /cdrom é necessário para o apt-cdrom). Por exemplo, se /dev/hdc for o seu leitor de CD-ROM, o /etc/fstab deverá conter uma linha como esta:

/dev/hdc /cdrom auto defaults,noauto,ro 0 0

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

Para verificar que tal funciona, insira um CD e tente correr

# mount /cdrom    # irá montar o conteúdo do CD no ponto de montagem
# ls -alF /cdrom  # irá mostrar o directório raiz do CD
# umount /cdrom   # irá desmontar o CD

A seguir, corra:

# apt-cdrom add

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

4.5. Actualizar pacotes

A forma recomendada para actualizar a partir de lançamentos anteriores Debian GNU/Linux é usar a ferramenta de gestão de pacotes aptitude. Este programa toma decisões mais seguras sobre as instalações de pacotes do que correr o apt-get directamente.

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 /ponto_de_montagem

De seguida você deverá confirmar novamente que as entradas das fontes do APT (em /etc/apt/sources.list), se referem a “lenny” ou a “stable”. Não deverão existir quaisquer entradas de fontes que apontem para etch.

[Nota]Nota

Linhas de fontes de um CD-ROM irão muitas vezes referir-se a “unstable”; e embora isto possa ser confuso, você não deverá alterá-las.

4.5.1. Gravar a sessão

É-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-lenny.time -a ~/upgrade-lenny.script

ou semelhante. 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 reiniciação).

O transcrito permitir-lhe-á também rever informação que tenha sido deslocada para fora do ecrã. Alterne para VT2 (utilizando Alt+F2) e, depois de iniciar a sessão, utilize less -R ~root/upgrade-lenny.script para visualizar o ficheiro.

Depois de ter completado a actualização, pode parar o script escrevendo exit na aviso de comando.

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-lenny.time ~/upgrade-lenny.script

4.5.2. Actualizar a lista de pacotes

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

# aptitude update

Ao correr isto pela primeira vez as novas fontes são actualizadas, irão aparecer alguns avisos relacionados com a disponibilidade das fontes. Estes avisos são inofensivos e não irão aparecer se correr novamente o comando.

4.5.3. Certificar-se que possui espaço suficiente para a actualização

Você terá de se certificar, antes de fazer a actualização do seu sistema, que possui espaço suficiente em disco quando iniciar a actualização completa descrita em Secção 4.5.7, “Actualizar o resto do sistema”. Primeiro, qualquer pacote necessário para a instalação que seja obtido a partir da rede é guardado em /var/cache/apt/archives (e no subdirectório partial/ durante o download), por isso você tem de se 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 de os descarregar, provavelmente necessitará de mais espaço nos outros sistemas de ficheiros das partições de modo a instalar quer os pacotes actualizados (que podem conter binários maiores ou mais dados), quer os novos pacotes que serão juntados para a actualização. Se o seu sistema não possui espaço suficiente, você pode acabar com uma actualização incompleta que da qual pode ser difícil recuperar.

Tanto o aptitude como o apt irão mostrar 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, correndo:

# aptitude -y -s -f --with-recommends dist-upgrade
[ ... ]
XXX actualizados, XXX novos instalados , XXX a remover e XXX não actualizados.
Necessário obter xx.xMB/yyyMB de arquivos. Depois da descompressão AAAMB serão utilizados.
Serão descarregados/instalados/removidos pacotes.
[Nota]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 você vai precisar de esperar até que tenha feito a actualização mínima ao sistema como em Secção 4.5.6, “Actualização mínima do sistema” e actualizado o seu kernel antes de correr este comando para estimar o espaço do disco.

Se não tiver espaço suficiente para a actualização, certifique-se que liberta espaço suficiente antes da mesma. Poderá fazer:

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

  • Remover pacotes esquecidos. Se tiver instalado o popularity-contest, você pode utilizar o popcon-largest-unused para listar os pacotes que não utiliza e que ocupam a maioria do espaço. Você pode também utilizar o deborphan ou o debfoster para procurar pacotes obsoletos (veja Secção 4.10, “Pacotes obsoletos” ). Em alternativa você pode iniciar o aptitude em “modo visual” e procurar pacotes obsoletos sob “Pacotes Obsoletos e Criados Localmente”.

  • Remova pacotes que estejam a ocupar demasiado espaço e que não estejam a ser necessários (pode sempre reinstalá-los após a actualização). Pode listar os pacotes que ocupam o maior espaço em disco com dpigs (disponível no pacote debian-goodies) ou com wajig (correndo wajig size).

    You can list packages that take up most of the disk space with aptitude. Start aptitude into “visual mode”, select ViewsNew Flat Package List (this menu entry is available only after etch version), press l and enter ~i, press S and enter ~installsize, then it will give you nice list to work with. Doing this after upgrading aptitude should give you access to this new feature.

  • 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 apenas os 'locales' seleccionados são mantidos no sistema. 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/.

  • Use um /var/cache/apt/archives temporário: Você pode usar um directório de cache temporário de outro sistema de ficheiros (dispositivo de armazenamento USB, disco rijo temporário, sistema de ficheiros já em utilização, ...)

    [Nota]Nota

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

    Por exemplo, se você tem um dispositivo USB montado em /media/usbkey:

    1. remove os pacotes que foram descarregados préviamente para instalação:

      # apt-get clean

    2. copia o directório /var/cache/apt/archives para o dispositivo USB:

      # cp -ax /var/cache/apt/archives /media/usbkey/

    3. monta o directório de cache temporário no que está presente:

      # mount --bind /media/usbkey/archives /var/cache/apt/archives

    4. após a actualização, restaura o directório /var/cache/apt/archives original:

      # umount /media/usbkey/archives

    5. remove o restante /media/usbkey/archives.

    Você pode criar o directório de cache temporário em qualquer sistema de ficheiros que esteja montado no seu sistema.

Note que, de modo para remover pacotes em segurança, é aconselhável mudar o seu sources.list de novo para etch conforme é explicado em Secção A.2, “Verificar a sua lista de fontes”.

4.5.4. Actualizar o apt e/ou o aptitude primeiro

Several bug reports have shown that the versions of the aptitude and apt packages in etch are often unable to handle the upgrade to lenny. In lenny, apt is better at dealing with complex chains of packages requiring immediate configuration and aptitude is smarter at searching for solutions to satisfy the dependencies. These two features are heavily involved during the dist-upgrade to lenny, so it is necessary to upgrade these two packages before upgrading anything else.

The following command will upgrade both aptitude and apt:

# aptitude install aptitude apt dpkg

This step will also automatically upgrade libc6 and locales. At this point, some running services will be restarted, including xdm, gdm and kdm. As a consequence, local X11 sessions might be disconnected.

[Nota]Upgrading with apt

Please note that using apt-get is not recommended for the upgrade from etch to lenny. If you do not have aptitude installed you are recommended to install it first.

If you want to perform the upgrade with apt or if the upgrade with aptitude failed and you want to try the upgrade with apt' dependency chain resolution algorithm, you should run:

# apt-get install apt

Note that you will have to adapt other aptitude commands to use apt-get instead.

4.5.5. Usando a lista do aptitude de pacotes automaticamente instalados com o apt

O aptitude mantêm uma lista de pacotes que foram instalados automaticamente (por exemplo, como dependências de outro pacote). Em lenny, o apt tem agora esta função também.

Na primeira vez que o aptitude versão lenny é corrido, ele irá ler a sua lista de pacotes instalados automaticamente e convertê-la para ser usada pelo apt versão lenny. Se você tem o aptitude instalado, você deve pelo menos chamar um comando aptitude para fazer a conversão. Uma maneira de fazer isto é ao procurar por um pacote não existente:

# aptitude search "?false"

4.5.6. Actualização mínima do sistema

Devido a conflitos de certos pacotes necessários entre a etch e a lenny, correr aptitude dist-upgrade directamente irá muitas vezes remover muitos pacotes que irá desejar manter. Portanto recomendamos um processo de actualização em duas partes, primeiro uma actualização mínima para ultrapassar estes conflitos, e depois um dist-upgrade completo.

Primeiro, corra:

# aptitude safe-upgrade

Isto tem o efeito de actualizar os pacotes que podem ser actualizados sem que nenhum outro pacote seja removido ou instalado.

O próximo passo variará conforme o conjunto de pacotes que tiver instalado. Estas notas de lançamento dão conselhos gerais sobre que método deve ser utilizado, mas em caso de dúvida, é recomendado que examine as remoções de pacotes propostas por cada método antes de proceder.

Nalguns pacotes comuns onde é de esperar que sejam removidos inclui-se base-config, hotplug, xlibs, netkit-inetd, python2.3, xfree86-common, e xserver-common. Para uma lista mais completa de pacotes obsoletos em lenny, veja Secção 4.10, “Pacotes obsoletos”.

4.5.7. Actualizar o resto do sistema

Está agora pronto para continuar com a actualização da parte principal. Execute:

# aptitude dist-upgrade

Isto irá executar a actualização completa do sistema, i.e. instalar as versões disponíveis mais recentes de todos os pacotes, e resolver 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.

Quando a actualização for feita a partir de um conjunto de CD-ROMs (ou DVDs), ser-lhe-á pedido que insira CDs específicos em determinados pontos durante a actualização. Pode ter que inserir o mesmo CD múltiplas vezes, isto devido a pacotes inter-relacionados que foram espalhados pelos CDs.

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 (visíveis como “held back”). Isto pode ser resolvido ou utilizando o aptitude de modo a escolher estes pacotes para instalação ou tentando aptitude -f install pacote.

4.5.8. Possíveis problemas durante a actualização

Se uma operação que utilize o aptitude, apt-get ou o dpkg falhar com o erro

E: Dynamic MMap ran out of room

o espaço de cache predefinido é insuficiente. Pode resolver isto tanto pela remoção ou comentar as linhas de que não necessita em /etc/apt/sources.list ou aumentando o tamanho da cache. A dimensão da cache pode ser aumentada definindo APT::Cache-Limit em /etc/apt/apt.conf. O seguinte comando definirá para um valor que deverá ser suficiente para a actualização:

# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf

Assume que não tem ainda nenhuma variável definida neste ficheiro.

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 aptitude irá alertá-lo disto e abortará a actualização. Pode contornar o problema especificando a opção APT::Force-LoopBreak=1 na linha de comandos do aptitude.

É 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 aptitude ou

# dpkg --remove nome_do_pacote

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

# aptitude -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 etch “pure”, mas podem acontecer se tiver instalado 'backports' não-oficiais. Um conflito de ficheiros irá resultar num erro como:

A desempacotar <package-foo> (de <package-foo-file>) ...
dpkg: erro ao processar <package-foo> (--install):
 tentando sobreescrever `<some-file-name>',
 o qual está também no pacote <package-bar>
dpkg-deb: subprocesso paste morto pelo sinal ('pipe' quebrado)
 Foram encontrados erros enquanto se processava:
 <package-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 as coisas, deverá ser capaz de continuar a actualização repetindo os comandos do aptitude descritos atrás.

Durante a actualização, ser-lhe-ão colocadas questões relacionadas com a configuração ou re-configuração de vários pacotes. Quando lhe for perguntado se algum ficheiros dos directórios /etc/init.d ou /etc/terminfo, ou o ficheiro /etc/manpath.config deve ser substituído pela versão do 'maintainer' do pacote, normalmente é necessário responder afirmativamente para garantir a consistência do sistema. Pode sempre reverter à versão anterior, 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.

4.6. Actualizar o seu kernel e pacotes relacionados

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, ou 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 precisa de uma initrd ou se utiliza um gerador de initrds diferente, alguma da informação pode não ser relevante para si.

4.6.1. Instalar o meta-pacote do kernel

Quando executa uma actualização de versão (dist-upgrade) de etch para lenny, é fortemente recomendado que instale um novo meta-pacote linux-image-2.6-*. Este pacote pode ser instalado automaticamente pelo processo dist-upgrade. Pode verificar isto ao correr:

# dpkg -l "linux-image*" | grep ^ii

Se não vê nenhum 'output' poderá ter que instalar um novo pacote linux-image manualmente. Para ver uma lista de meta-pacotes linux-image-2.6 disponíveis corra:

# apt-cache search linux-image-2.6- | grep -v transition

Se estiver inseguro sobre que pacote seleccionar, corra uname -r e procure um pacote com um nome idêntico, Por exemplo, se vir '2.6.18-6-686', é-lhe recomendado que instale o linux-image-2.6-686. (Note que a variante k7 já não existe; se está actualmente a utilizar a variante k7 de kernel, deverá instalar a variante 686 em seu lugar.) Pode também utilizar o apt-cache para ver uma descrição longa sobre cada pacote de modo a ajudar a escolher o melhor disponível. Por exemplo:

# apt-cache show linux-image-2.6-686

Deverá então utilizar aptitude 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.

Para os mais aventureiros existe um modo fácil de compilar o seu kernel personalizado na Debian GNU/Linux. Instale a ferramenta kernel-package e leia a documentação em /usr/share/doc/kernel-package.

Se possível, é vantajoso para si em actualizar o pacote do kernel separadamente do dist-upgrade principal para reduzir as probabilidades de ter um sistema temporariamente incapaz de arrancar. Note que isto deve apenas ser feito após o processo mínimo de actualização descrito em Secção 4.5.6, “Actualização mínima do sistema”.

4.6.2. Reordenação da enumeração de dispositivos

A lenny oferece um mecanismo mais robusto para a descoberta de hardware do que nos lançamentos anteriores. No entanto, isto poderá causar alterações na ordem pela qual os dispositivos são descobertos no seu sistema, afectando a ordem na qual os nomes dos mesmos são atribuídos. Por exemplo, se possuir duas placas de rede que estejam associadas a dois controladores diferentes, os dispositivos a que se referem eth0 e eth1 podem ser trocados. Por favor note que o novo mecanismo significa que se por ex. trocar as placas de rede num sistema lenny existente, a nova placa de rede também obterá um novo nome de interface.

Para dispositivos de rede, você pode evitar esta reordenação usando regras do udev, mais especificamente, através de definições em /etc/udev/rules.d/70-persistent-net.rules[4]. Alternativamente você por usar o utilitário ifrename para ligar dispositivos físicos a nomes específicos durante o arranque da máquina. Veja ifrename(8) e iftab(5) para mais informação. As duas alternativas (udev e ifrename) não deve ser usadas em simultâneo.

Para dispositivos de armazenamento, pode evitar esta reordenação ao utilizar o initramfs-tools e configurá-los de modo a carregar os módulos do driver do dispositivo de armazenamento na mesma ordem em que estão actualmente carregados. Para fazer isto, identifique a ordem por que foram carregados os módulos de armazenamento no seu sistema ao ver o 'output' de lsmod. O lsmod lista os módulos na ordem inversa em que foram carregados, i.e., o primeiro modulo na lista foi o último a ser carregado. Note que isto apenas irá funcionar para dispositivos que o kernel enumere numa ordem estável (como os dispositivos PCI).

No entanto, remover e voltar a carregar os módulos após o arranque inicial afectará esta ordem. O kernel pode também ter alguns controladores ligados ('linked') estaticamente, e estes nomes podem não aparecer no 'output' de lsmod. Pode conseguir decifrar estes nomes de controladores e a ordem de carga deles, ao ver o ficheiro /var/log/kern.log, ou o 'output' de dmesg.

Adicione estes nomes de módulos a /etc/initramfs-tools/modules pela ordem em que os mesmos deverão ser carregados durante o arranque. Alguns nomes de módulos podem ter mudado entre a etch e a lenny. Por exemplo, sym53c8xx_2 mudou para sym53c8xx.

Terá então de gerar novamente a(s) sua(s) imagem(s) initramfs ao executar update-initramfs -u -k all.

Assim que estiver a correr um kernel da lenny e o udev, pode reconfigurar o seu sistema de modo a aceder aos discos através de um 'alias' que não é dependente da ordem em que os controladores são carregados. Estes 'aliases' residem na hierarquia /dev/disk/.

4.6.3. Problemas de timing no arranque

Se é utilizada uma initrd criada com o initramfs-tools para arrancar o sistema, em alguns casos a criação de ficheiros de dispositivo pelo udev pode acontecer demasiado tarde para que os scripts de arranque actuem.

Os sintomas usuais são que o arranque falha devido ao sistema de ficheiros raiz não poder ser montado e você é deixado numa shell de depuração. Mas quando verifica depois, todos os dispositivos necessários estão presentes em /dev. Isto foi observado em casos em que o sistema de ficheiros raiz está num disco USB ou num RAID, especialmente se é utilizado o LILO.

Uma forma de contornar este problema é utilizar o parâmetro de arranque rootdelay=9. O valor do tempo de espera (em segundos) pode precisar de ser ajustado.

4.7. Coisas a fazer antes de reiniciar a máquina

Quando o aptitude dist-upgrade tiver terminado, a actualização “formal” estará completa, mas existem algumas coisas com as quais é preciso ter atenção antes da próxima reiniciação.

4.7.1. Correr novamente o lilo

Se está a utilizar o lilo como o seu gestor de arranque (é o gestor de arranque predefinido para algumas instalações da etch) é fortemente recomendado que você corra novamente o lilo após a actualização:

# /sbin/lilo

Note que isto é necessário mesmo que você não tenha actualizado o kernel do seu sistema, já que a segunda etapa do lilo irá mudar devido à actualização do pacote.

Além disso, reveja o conteúdo do seu /etc/kernel-img.conf e assegure-se que tem nele do_bootloader = Yes. Dessa forma o gestor de arranque irá sempre ser corrido novamente após uma actualização do kernel.

Se você encontrar quaisquer problemas quando correr o lilo, reveja os links simbólicos em / para vmlinuz e initrd, assim como o conteúdo do seu /etc/lilo.conf por discrepâncias.

Se você se esqueceu de correr novamente o lilo antes de reiniciar ou se o sistema for acidentalmente reiniciado antes de você o poder fazer manualmente, o seu sistema pode falhar o arranque. Em vez da prompt do lilo, você apenas verá LI quando arrancar o sistema[5]. Veja Secção 4.1.3, “Preparar para recuperação” para informação em como recuperar de esta situação.

4.8. O arranque do sistema pendura em Waiting for root file system

Procedimento para recuperar de /dev/hda ter-se tornado /dev/sda

Alguns utilizadores reportaram que uma actualização pode causar que o kernel não encontre a partição raiz do sistema após o reiniciar do sistema.

Neste caso, o arranque do sistema irá pendurar na seguinte mensagem:

Waiting for root file system ...

e após alguns segundos é mostrado um aviso de ocupado.

Este problema pode acontecer quando a actualização do kernel introduz o uso da nova geração de drivers IDE. A nomeação convencional de discos IDE era hda, hdb, hdc, hdd. As novas drivers irão nomear os mesmos disco respectivamente sda, sdb, sdc, sdd. O problema aparece quando a actualização não gera um novo ficheiro /boot/grub/menu.lst a tomar a nova convenção de nomeações em conta. Durante o arranque, o Grub irá informar uma partição raiz de sistema ao kernel que o kernel não a encontrará.

Se você deparar com este problema após actualização, salta para Secção 4.8.2, “Como recuperar do problema após a actualização”. Para evitar este problema antes de actualizar, leia mais à frente.

4.8.1. Como evitar o problema antes da actualização

É possível evitar este problema inteiramente ao usar um identificador para o sistema de ficheiros raiz que não altere de um arranque para o próximo. Existem dois métodos possíveis de o fazer - rotular o sistema de ficheiros, ou usar o identificador único universal (UUID). Estes métodos são suportados em Debian desde o lançamento da 'etch'.

A duas aproximações têm vantagens e desvantagens. A aproximação por rotulagem é mais legível, mas pode haver problemas se outro sistema de ficheiros na sua máquina tiver o mesmo rótulo (label). A aproximação UUID é mais feia, mas ter dois UUIDs em colisão é altamente improvável.

Para os exemplos abaixo nós assumimos que o sistema de ficheiros raiz está em /dev/hda6. Também assumimos que o seu sistema tem uma instalação udev funcional e sistemas de ficheiros ext2 ou ext3.

Para implementar a aproximação de 'rótulos' (labelling):

  1. Dê um rótulo (label) (o nome tem que ser < 16 caracteres) ao sistema de ficheiros correndo o comando: e2label /dev/hda6 rootfilesys

  2. Edite o /boot/grub/menu.lst e altere a linha:

    # kopt=root=/dev/hda6 ro

    para

    # kopt=root=LABEL=rootfilesys ro

    [Nota]Nota

    Não remova o # no inicio da linha, ele precisa estar lá.

  3. Actualize as linhas kernel em menu.lst correndo o comando update-grub.

  4. Edite o /etc/fstab e modifique a linha que monta a partição /, ex.:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    para

    LABEL=rootfilesys     /     ext3  defaults,errors=remount-ro 0 1

    A alteração que aqui interessa é a primeira coluna, você não precisa alterar as outras colunas desta linha.

Para implementar a aproximação UUID:

  1. Find out the universally unique identifier of your filesystem by issuing: ls -l /dev/disk/by-uuid | grep hda6. You can also use vol_id --uuid /dev/hda6 (in etch) or blkid /dev/hda6 (if already upgraded to lenny).

    Deverá obter uma linha semelhante a esta:

    lrwxrwxrwx 1 root root 24 2008-09-25 08:16 d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6

    O UUID é o nome do link simbólico que aponta para /dev/hda6 ex.: d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.

    [Nota]Nota

    O UUID do seu sistema de ficheiros será uma sequência diferente.

  2. Edite o /boot/grub/menu.lst e altere a linha:

    # kopt=root=/dev/hda6 ro

    para

    # kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro

    [Nota]Nota

    Não remova o # no inicio da linha, ele precisa estar lá.

  3. Actualize as linhas kernel em menu.lst correndo o comando update-grub.

  4. Edite o /etc/fstab e modifique a linha que monta a partição /, ex.:

    /dev/hda6     /     ext3  defaults,errors=remount-ro 0 1

    para

    UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8  /  ext3  defaults,errors=remount-ro 0 1

    A alteração que aqui interessa é a primeira coluna, você não precisa alterar as outras colunas desta linha.

4.8.2. Como recuperar do problema após a actualização

4.8.2.1. Solução 1

Isto é aplicável quando o Grub mostra-lhe a interface menu para seleccionar a entrada por onde que arrancar. Se tal menu não aparecer, tente pressionar a tecla Esc antes que o kernel arranque de modo a fazê-lo aparecer. Se não consegue chegar a este menu, tente Secção 4.8.2.2, “Solução 2” ou Secção 4.8.2.3, “Solução 3”.

  1. No menu do Grub, seleccione a entrada pela qual quer arrancar. Pressione a tecla e para editar as opções relativas a esta entrada. Irá ver algo como:

    root (hd0,0)
    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd /initrd.img-2.6.26-1-686

  2. Seleccione a linha

    kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro

    pressione a tecla e e substitua hdX por sdX (X sendo a letra a, b, c or d dependente do seu sistema). No meu exemplo a linha fica:

    kernel /vmlinuz-2.6.26-1-686 root=/dev/sda6 ro

    Depois pressione Enter para salvar a informação. Se outras linhas mostrarem hdX, mude essa linha também. Não modifique a entrada semelhante a root (hd0,0). Uma vez todas as modificações feitas, pressione a tecla b. E o seu sistema deverá agora arrancar como usualmente.

  3. Agora que o seu sistema arrancou, você precisa de corrigir este problema de de modo permanente. Salte para Secção 4.8.1, “Como evitar o problema antes da actualização” e aplique um dos dois procedimentos propostos.

4.8.2.2. Solução 2

Arranque com a média de instalação Debian GNU/Linux (CD/DVD) e quando questionado, escolha rescue para lançar o modo de recuperação. Seleccione a sua linguagem, localização, e mapeamento do teclado, depois deixe-o configurar a rede (não importando se o faz com sucesso ou não). Após uns momentos, deverá ser-lhe pedido a seleccionar uma partição que deseja usar como sistema de ficheiros raiz. As opções propostas irão parecer algo como:

/dev/ide/host0/bus0/target0/lun0/part1
/dev/ide/host0/bus0/target0/lun0/part2
/dev/ide/host0/bus0/target0/lun0/part5
/dev/ide/host0/bus0/target0/lun0/part6

Se souber qual partição é o seu sistema de ficheiros raiz, escolha o correcto. Se não sabe, tente o primeiro. Se ele se queixar acerca de umapartição com sistema de ficheiros raiz inválida, tente o próximo, e seguintes. Tentar uma após a outra não deverá danificar as suas partições e se tiver apenas um sistema operativo instalado nos seus discos, deverá facilmente encontrar a partição com sistema de ficheiros raiz correcta. Se você vários sistemas operativos instalados nos seus discos, será melhor saber exactamente qual é a partição certa.

Uma vez escolhida a partição, ser-lhe-ão propostas um leque de opções. Tome a opção de executar uma 'shell' na partição seleccionada. Se ele se queixar que não o consegue fazer então tente com outra partição.

Agora deverá ter acesso à 'shell' como utilizador root no seu sistema de ficheiros raiz montado em /target. Você precisa aceder ao conteúdo dos directórios /boot, /sbin e /usr do seu disco, os quais deverão estar agora disponíveis em /target/boot, /target/sbin e /target/usr. Se estes directórios precisarem ser montados de outras partições, faça-o. (veja /etc/fstab se não tem ideia de qual partição montar).

Vá até Secção 4.8.1, “Como evitar o problema antes da actualização” e aplique um dos dois procedimentos propostos para resolver o problema permanentemente. Depois escreva exit para abandonar a 'shell' de recuperação e seleccione reboot para reiniciar o sistema normalmente (não se esqueça de remover a média de arranque).

4.8.2.3. Solução 3

  1. Arranque pela sua distribuição LiveCD favorita, como a Debian Live, Knoppix, ou Ubuntu Live.

  2. Monte a partição onde o seu directório /boot está. Se não sabe qual deles é, use a saída do comando dmesg para descobrir se o seu disco é conhecido como hda, hdb, hdc, hdd ou sda, sdb, sdc, sdd. Assim que souber em que disco deverá trabalhar, por exemplo sdb, emita o seguinte comando para ver a tabela de partições do disco e para encontrar a partição correcta: fdisk -l /dev/sdb

  3. Assumindo que montou a partição correcta em /mnt e esta partição contém o directório /boot no seu conteúdo, edite o ficheiro /mnt/boot/grub/menu.lst.

    Encontre a secção semelhante a:

    ## ## End Default Options ##
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
    initrd          /initrd.img-2.6.26-1-686
    
    title           Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
    root            (hd0,0)
    kernel          /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro single
    initrd          /initrd.img-2.6.26-1-686
    
    ### END DEBIAN AUTOMAGIC KERNELS LIST

    e substitua todos os hda, hdb, hdc, hdd por sda, sdb, sdc, sdd, como apropriado. Não modifique a linha semelhante a:

    root            (hd0,0)

  4. Reinicie o sistema, remova o LiveCD e o seu sistema deverá arrancar correctamente.

  5. Quando o arranque estiver concluído, aplique um dos dois procedimentos propostos em Secção 4.8.1, “Como evitar o problema antes da actualização” para resolver o problema permanentemente.

4.9. Preparar para o próximo lançamento

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

  • Se o novo meta-pacote da imagem do kernel foi obtida como uma dependência do antigo, será marcado como instalado automaticamente, o que deve ser corrigido:

    # aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
    
  • Remova os pacotes obsoletos e não utilizados conforme é descrito em Secção 4.10, “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.

4.10. Pacotes obsoletos

Ao introduzir vários milhares de novos pacotes, a lenny também remove e omite mais de dois milhares de antigos pacotes que estavam na etch. 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 lenny [6], e normalmente não irá disponibilizar outro suporte durante esse tempo. É recomendado substitui-los por alternativas disponíveis, se existirem.

Existem muitas razões para que pacotes possam ter sido retirados da distribuição: não serem mais mantida uma evolução; não existir mais um Debian 'Developer' interessado em manter os pacotes; a funcionalidade que estes fornecem ter sido ultrapassada por outro software diferente (ou uma nova versão); ou deixados de serem considerados adequados para a lenny devido a bugs neles. No último caso, os pacotes podem no entanto continuar a estarem presentes na distribuição “unstable”.

A detecção dos pacotes que num sistema actualizado são “obsoletos” é fácil pelo facto dos 'front-ends' do gestor de pacotes os marcarem como tal. Se estiver a utilizar o aptitude, verá a lista destes pacotes na entrada “Pacotes obsoletos e criados localmente”. O dselect disponibiliza uma secção idêntica mas a lista que apresenta pode ser diferente.

Do mesmo modo se usou o aptitude para instalar manualmente pacotes na etch, ele irá seguir o caminho desses 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árias se o pacote foi removido. Também o aptitude, ao contrário do deborphan, não irá marcar como pacotes obsoletos os que instalou manualmente, em oposição aos que foram instalados automaticamente através de dependências.

Existem ferramentas adicionais que pode utilizar para descobrir pacotes obsoletos tais como deborphan, debfoster ou cruft. O deborphan é fortemente recomendado, no entanto este irá (em modo predefinido) apenas relatar as bibliotecas obsoletas: pacotes nas secções “libs” ou “oldlibs” que não sejam utilizada por outros pacotes. 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 à produção de falsos positivos. É altamente recomendável que reveja manualmente os pacotes sugeridos para remoção (por ex. o seu conteúdo, dimensão e descrição) antes de os remover.

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

The list of obsolete packages includes:

  • apache (1.x), sucessor é o apache2

  • bind (8), successor is bind9

  • php4, successor is php5

  • postgresql-7.4, successor is postgresql-8.1

  • exim (3), successor is exim4

4.10.1. Pacotes fictícios

Alguns pacotes da etch foram separados em vários pacotes na lenny, principalmente para melhorar a manutenção do sistema. Para facilitar a actualização em alguns casos, a lenny fornece pacotes “fictícios”: pacotes vazios que têm o mesmo nome que o pacote antigo na etch com dependências que provocam a instalação dos novos pacotes. Estes pacotes “fictícios” são considerados pacotes obsoletos depois da actualização e podem ser removidos em segurança.

A maior parte (mas nem todas) das descrições dos pacotes fictícios indicam o seu propósito. As descrições dos pacotes para os pacotes fictícios não são uniformes, no entanto pode achar as opções --guess do deborphan úteis para os detectar no seu sistema. Note que alguns pacotes fictícios não têm como fim serem removidos depois de uma actualização, em vez disso, são utilizadas para seguir o caminho das actuais versões disponíveis de um programa ao longo do tempo.



[2] Esta função pode ser desactivada ao adicionar o parametro panic=0 aos parametros de arranque.

[3] 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.

[4] As regras que lá estão são geradas automaticamente pelo script /etc/udev/rules.d/75-persistent-net-generator.rules para ter nomes persistentes para dispositivos de rede. Apague este link simbólico para desactivar a nomeação persistente de dispositivos para NICs pelo udev.

[5] Para mais informação sobre códigos de erro no arranque do lilo por favor veja The Linux Bootdisk HOWTO.

[6] 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.