Índice
Nós sugerimos que antes de actualizar que também leia a informação em Capítulo 5, Problemas a estar atento na wheezy. Esse capítulo cobre potenciais problemas não directamente relacionados com o processo de actualização mas que podem no entanto ser importantes conhecer antes de começar.
Antes de actualizar o seu sistema é fortemente recomendado que efectue uma cópia de segurança total, ou que pelo menos salvaguarde quaisquer dados ou informações de configuração 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/apt/extended_states e o resultado de
dpkg --get-selections "*" (as aspas são importantes). Se
você usa o aptitude para gerir os pacotes no seu sistema,
vai querer também salvaguardar
/var/lib/aptitude/pkgstates.
O processo de actualização em si não modifica nada no directório
/home.No entanto, algumas aplicações (e.g. partes do
conjunto Mozilla, e dos ambientes de desktop GNOME e KDE) são 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.
É sensato informar todos os utilizadores com antecedência sobre qualquer actualização que estiver a planear, apesar dos utilizadores que acedam ao sistema através uma ligação ssh pouco devem notar durante a actualização, e devem conseguir continuar a trabalhar.
Se quiser tomar precauções extra, faça uma cópia de segurança ou desmonte a
partição /home antes de fazer a actualização.
Você terá de fazer uma actualização do kernel ao actualizar para wheezy, por isso será necessário reiniciar a máquina. Tipicamente, isto será feito após terminar a actualização.
Podem existir serviços associados a pacotes que serão incluídos na actualização. Se for este o caso, note que, durante a actualização, esses serviços serão parados enquanto os pacotes a ser actualizados estão a ser substituídos e configurados. Durante este tempo, estes serviços não estarão disponíveis.
O tempo exacto que estes serviços estarão desligados irá variar dependendo do número de pacotes a serem actualizados no sistema, e também inclui o tempo que o administrador do sistema demora a responder às questões de configuração das diferentes actualizações de pacotes. Note que se o processo de actualização for deixado desacompanhado e o sistema solicitar alguma entrada durante toda a actualização, existe uma grande possibilidade dos serviços ficarem indisponíveis[1] durante um período significativo de tempo.
Se o sistema a ser actualizado disponibilizar serviços críticos para os seus utilizadores ou para a sua rede [2], pode reduzir o tempo de indisponibilidade se fizer uma actualização mínima ao sistema, conforme descrito em Secção 4.4.4, “Actualização mínima do sistema”, seguida de uma actualização ao kernel e de reiniciar. De seguida actualize os pacotes associados aos seus serviços críticos. Actualize estes pacotes antes de fazer a actualização completa descrita em Secção 4.4.5, “Actualizar o sistema”. Deste modo pode assegurar que estes serviços críticos estão a funcionar e disponíveis durante todo o processo de actualização e dessa forma o tempo de indisponibilidade é reduzido.
Embora Debian tente assegurar que o seu sistema se mantenha funcional em todos os momentos, há sempre a hipótese que experimente problemas ao reiniciar o seu sistema após uma grande actualização. Problemas potenciais conhecidos estão documentados neste e nos próximos capítulos destas Notas de Lançamento.
Por esta razão faz sentido assegurar que será capaz de recuperar o seu sistema não conseguir reiniciar ou, para sistemas geridos remotamente, não conseguir activar a rede.
Se estiver a actualizar remotamente através de uma ligação ssh é recomendado que tome as precauções necessárias para ser capaz de aceder ao servidor através de um terminal série remoto. Existe uma hipótese de que, após a actualização do kernel e de reiniciar, você tenha de corrigir a configuração do sistema através duma consola local. Além disso, se o sistema for reiniciado acidentalmente a meio de uma actualização existe a hipótese de que você necessite de fazer a recuperação utilizando uma consola local.
A coisa mais óbvia a tentar primeiro é reiniciar com o antigo kernel. No entanto 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 wheezy. 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 a FAQ do Instalador Debian.
O pacote initramfs-tools inclui uma
shell de depuração[3] nos initrds que
gera. Se, por exemplo, o initrd for incapaz de montar o sistema de ficheiros
raiz, você será deixado nesta shell de depuração que tem comandos básicos
para ajudar a descobrir e talvez resolver o problema.
Coisas básicas a verificar são: a presença dos ficheiros de dispositivo
correctos em /dev; que módulos estão carregados
(cat /proc/modules); mensagens do
dmesg que podem ter erros no carregamento de drivers. As
mensagens do dmesg também irão mostrar que ficheiros de
dispositivo estão associados a que discos; deve verificar isso com a
mensagem de echo $ROOT para se certificar que o sistema
de ficheiros raiz está no dispositivo esperado.
Se conseguir resolver o problema, escrever exit irá
terminar a shell de depuração e continuar o processo de arranque 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.
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.
![]() | Importante |
|---|---|
Se você está a usar alguns serviços VPN (como o |
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 |
|---|---|
Você não deve actualizar usando telnet, rlogin, rsh, ou a partir de uma sessão do 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. O uso da aplicação do GNOME update-manager é fortemente desaconselhado para as actualizações para novos lançamentos, pois esta ferramenta necessita que a sessão de ambiente de trabalho permaneça activa. |
O processo de actualização descrito neste capítulo foi desenhado para actualizações de sistemas squeeze “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.
As actualizações directas a partir de lançamentos Debian mais antigos que 6.0 (squeeze) não são suportados. Por favor siga as instruções nas Notas de Lançamento para Debian 6.0 para primeiro actualizar para 6.0.
Este procedimento também assume que o seu sistema foi actualizado até ao último ponto da versão squeeze. 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 squeeze”.
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 squeeze; e não para
stable ou wheezy; 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”.
Se configurou o APT para instalar determinados pacotes a partir de uma
distribuição que não a stable (e,g,. a partir da testing), pode ter que
alterar a sua configuração de APT pinning (guardada em
/etc/apt/preferences e em
/etc/apt/preferences.d/) para permitir a actualização
de pacotes para versões existentes na nova versão estável. Mais informação
acerca do APT pinning pode ser encontrada em apt_preferences(5).
Independentemente do método utilizado para a actualização, é recomendado que primeiro verifique o estado de todos os pacotes, e verificar que todos os pacotes estão em modo de actualização. O seguinte comando listará todos os pacotes que possuem o estado Metade-Instalado (Half-Installed) ou Configuração-Falhada (Failed-Config), e aqueles que apresentem qualquer erro no estado.
# dpkg --audit
Pode também inspeccionar o estado de todos os pacotes no seu sistema utilizando o aptitude ou com comandos como
# dpkg -l | pager
ou
# dpkg --get-selections "*" > ~/curr-pkgs.txt
É 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"
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 apt-get pode ser alterado utilizando:
# echo nome_do_pacote hold | dpkg --set-selections
Substitua hold por install 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 squeeze conforme é explicado em Secção A.2, “Verificar a sua lista de fontes”.
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.
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
wheezy 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 de backports não oficiais, que estejam instalados no seu sistema Debian squeeze. Tais pacotes irão provavelmente criar problemas durante a actualização, pois destes poderão resultar em conflitos de ficheiros[4]. Secção 4.5, “Possíveis problemas durante a actualização” tem alguma informação sobre como lidar com conflitos de ficheiros à medida que aparecem.
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).
Um lançamento pode ser normalmente referido pelo seu nome de código (por
ex. squeeze;, wheezy)
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.
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' mais próximo de si em termos de rede.
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/wheezy/main/binary-s390/... http://mirrors.kernel.org/debian/dists/wheezy/contrib/binary-s390/...
Para utilizar este 'mirror' com o apt, adicione esta linha ao seu ficheiro
sources.list:
deb http://mirrors.kernel.org/debian wheezy main contrib
Note que dists' é acrescentado implicitamente, e que os
argumentos que se seguem ao nome do lançamento são utilizados para expandir
o caminho em múltiplos directórios.
Depois de adicionar as suas novas fontes, desactive as linhas
“deb” previamente existentes em
sources.list, colocando um cardinal
(#) à frente das mesmas.
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/wheezy/main/binary-s390/... /var/ftp/debian/dists/wheezy/contrib/binary-s390/...
Para utilizar isto com o apt,
acrescente esta linha ao seu ficheiro sources.list:
deb file:/var/ftp/debian wheezy main contrib
Note que dists' é acrescentado implicitamente, e que os
argumentos que se seguem ao nome do lançamento são utilizados para expandir
o caminho em múltiplos directórios.
Depois de adicionar as suas novas fontes, desactive as linhas
“deb” previamente existentes em
sources.list, colocando um cardinal
(#) à frente das mesmas.
Se quiser utilizar apenas CDs (ou DVDs, ou discos
Blu-ray), comente as linhas “deb”existentes
em /etc/apt/sources.list colocando um cardinal
(#) à frente das mesmas.
Certifique-se que existe uma linha no /etc/fstab que
permita a montagem do seu leitor de CD-ROM no ponto de montagem
/cdrom (o ponto de montagem /cdrom
é necessário para o funcionamento do apt-cdrom). Por
exemplo, se o seu leitor de CD-ROM for o dispositivo
/dev/scd0, o /etc/fstab deverá
conter uma linha como esta:
/dev/scd0 /cdrom auto 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 # isto irá montar o CD no ponto de montagem # ls -alF /cdrom # isto irá mostrar o directório raiz do CD # umount /cdrom # isto 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.
A forma recomendada para actualizar a partir de lançamentos anteriores Debian é usar a ferramenta de gestão de pacotes apt-get. Em lançamentos anteriores, o aptitude era recomendado para este objectivo, mas as versões recentes do apt-get disponibilizam funcionalidades equivalentes e também têm mostrado serem mais consistentes a dar os resultados de actualização desejados.
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
“wheezy” ou a
“stable”. Não deverão existir quaisquer
entradas de fontes que apontem para squeeze.
![]() | Nota |
|---|---|
As linhas de fontes de um CD-ROM poderão por vezes referirem-se a
“ |
É-lhe fortemente recomendado que utilize o programa /usr/bin/script para gravar uma transcrição da sessão de actualização. Assim caso ocorra qualquer problema, terá o relatório sobre o que aconteceu, e se necessário poderá fornecer informação exacta sob a forma de um relatório de erro. Para iniciar a gravação, escreva:
# script -t 2>~/upgrade-wheezystep.time -a ~/upgrade-wheezystep.script
ou semelhante. Se tiver que re-executar o ficheiro transcrito (ex., se tiver
que reiniciar o sistema) use valores step
diferentes para indicar qual passo da actualização está a registar. Não
coloque o ficheiro transcrito num directório temporário como
/tmp ou /var/tmp (os ficheiros
nesses directórios podem ser apagados durante a actualização ou durante
qualquer reinicio).
O transcrito permitir-lhe-á também rever informação que tenha sido deslocada
para fora do ecrã. Se está na consola do sistema, mude para VT2 (utilizando
Alt+F2)
e, depois de iniciar a sessão, utilize less -R
~root/upgrade-wheezy.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-wheezy.time ~/upgrade-wheezy.script
Primeiro precisa de ser obtida a lista de pacotes disponíveis para o novo lançamento. Isto é feito executando:
# apt-get update
Você terá de se certificar antes de fazer a actualização do seu sistema, que
existe espaço suficiente em disco quando iniciar a actualização completa do
sistema descrita em Secção 4.4.5, “Actualizar o sistema”. Primeiro, qualquer
pacote necessário para a instalação que é obtido a partir da rede é guardado
em /var/cache/apt/archives (e no subdirectório
partial/ durante o download), por isso 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 do download,
provavelmente irá necessitar de mais espaço nos sistemas de ficheiros das
outras partições de modo a instalar quer os pacotes actualizados (que podem
conter binários maiores ou mais dados) e os novos pacotes que serão obtidos
para a actualização. Se o seu sistema não possui espaço suficiente, você
poderá acabar com uma actualização incompleta que da qual pode ser difícil
recuperar.
O apt-get pode mostrar-lhe informação detalhada sobre o espaço em disco necessário para a instalação. Antes de efectuar a actualização do sistema, pode ver esta estimativa ao correr:
# apt-get -o APT::Get::Trivial-Only=true dist-upgrade [ ... ] XXX actualizados, XXX novos instalados , XXX a remover e XXX não actualizados. Necessário obter xx.xMB de arquivos. Após esta operação serão usados AAAMB de espaço de disco adicional.
![]() | Nota |
|---|---|
Correr este comando no inicio do processo de actualização pode dar um erro, pelas razões descritas nas secções seguintes. Nesse caso terá de aguardar até ter feito a actualização mínima ao sistema como em Secção 4.4.4, “Actualização mínima do sistema” antes de correr este comando para estimar o espaço em disco. |
Se não tiver espaço suficiente para a actualização, o apt-get irá alertá-lo com uma mensagem como esta:
E: Você não tem espaço livre suficiente em /var/cache/apt/archives/.
Nesta situação, certifique-se que liberta espaço antes de continuar. Você pode:
Remover pacotes que tenham sido previamente descarregados para instalação
(em /var/cache/apt/archives). Limpar a 'cache' de
pacotes ao correr apt-get clean irá remover todos os
ficheiros de pacotes anteriormente descarregados.
Remova os pacotes esquecidos. Se utilizou o aptitude ou o apt-get para instalar manualmente pacotes na squeeze, ele irá seguir esses pacotes que instalou manualmente e será capaz de marcar como obsoletos os pacotes obtidos apenas por dependências e que já não são necessários se o pacote foi removido. Não irá marcar para remoção pacotes que você instalou manualmente. Para remover os pacotes instalados automaticamente e que já não são utilizados, execute:
# apt-get autoremove
Para descobrir pacotes redundantes pode também utilizar o deborphan, debfoster ou cruft. Não remova cegamente os pacotes que estas ferramentas apresentam, especialmente se estiver a utilizar opções agressivas e não-predefinidas que são sujeitas a gerarem falsos positivos. É altamente recomendado que reveja manualmente os pacotes sugeridos para remoção (por ex. o seu conteúdo, dimensão e descrição) antes de os remover.
Remova os pacotes que ocupam demasiado espaço e não são actualmente
necessários (pode sempre reinstala-los depois da actualização). Se tiver
instalado o popularity-contest, pode
utilizar o popcon-largest-unsed para listar os pacotes
que não utiliza e que ocupam mais espaço. Pode encontrar pacotes que tomam o
maior espaço com o dpigs (disponível no pacote
debian-goodies) ou com o
wajig (correndo wajig size). Podem
também ser encontrados com a aptitude. Inicie o aptitude
em “visual mode”, seleccione
→ , pressione l e insira
~i, pressione S e insira
~installsize, então irá ter uma boa lista para trabalhar.
Remova ficheiros de localizações e traduções do seu sistema se não forem
necessárias. Você pode instalar o pacote localepurge e configurá-lo para que 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 |
|---|---|
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:
remove os pacotes que foram descarregados préviamente para instalação:
# apt-get clean
copia o directório /var/cache/apt/archives para o
dispositivo USB:
# cp -ax /var/cache/apt/archives /media/usbkey/
monta o directório de cache temporário no que está presente:
# mount --bind /media/usbkey/archives /var/cache/apt/archives
após a actualização, restaura o directório
/var/cache/apt/archives original:
# umount /media/usbkey/archives
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.
Faça uma actualização mínima do sistema (veja Secção 4.4.4, “Actualização mínima do sistema”) ou actualizações parciais do sistema seguido de uma actualização completa. Isto irá tornar possível actualizar o sistema parcialmente, e permitir-lhe limpar a cache de pacotes antes da actualização completa.
Note que, de modo para remover pacotes em segurança, é aconselhável mudar o
seu sources.list de novo para squeeze conforme
é explicado em Secção A.2, “Verificar a sua lista de fontes”.
Em alguns casos, fazer a actualização completa (conforme descrito abaixo) directamente pode remover grandes quantidades de pacotes que poderá querer manter. Portanto recomendamos um processo de actualização em duas partes: primeiro uma actualização mínima para ultrapassar estes conflitos, e depois uma actualização completa conforme descrito em Secção 4.4.5, “Actualizar o sistema”.
Para fazer isto, primeiro correr:
# apt-get upgrade
Isto tem o efeito de actualizar os pacotes que podem ser actualizados sem que nenhum outro pacote seja removido ou instalado.
A actualização mínima ao sistema também pode ser útil quando o sistema tem pouco espaço disponível e não se pode executar uma actualização completa devido a restrições de espaço.
Se o pacote apt-listchanges estiver
instalado, irá mostrar (na sua configuração predefinida), num pager, a
informação importante sobre os pacote actualizados.
Após ter executado os passos anteriores, você está agora pronto para continuar com a parte principal da actualização. Execute:
# apt-get dist-upgrade
![]() | Nota |
|---|---|
O processo de actualização para alguns lançamentos anteriores recomendava o uso do aptitude para a actualização. Esta ferramenta não é recomendada para actualizações de squeeze para wheezy. |
Isto irá executar uma actualização completa do sistema, instalando as versões disponíveis mais recentes de todos os pacotes, e resolvendo todas as possíveis alterações de dependências entre pacotes em diferentes lançamentos. Se necessário, irá instalar alguns pacotes novos (normalmente novas versões de bibliotecas, ou pacotes renomeados), e remover quaisquer pacotes em conflito e obsoletos.
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.
As novas versões dos pacotes actualmente instalados que não possam ser
actualizadas sem alterar o estado de instalação de outro pacote serão
deixadas na sua versão actual (mostradas como “held
back”). Isto pode ser resolvido ou utilizando o
aptitude de modo a escolher estes pacotes para instalação
ou tentando apt-get -f install
.
pacote
As seguinte secções descrevem problemas conhecidos que podem aparecer durante uma actualização para wheezy.
Nalguns casos a etapa apt-get dist-upgrade pode falhar após fazer o download dos pacotes com:
E: Não pode executar a configuração imediata em 'pacote'. Para detalhes por favor veja man 5 apt.conf em APT::Immediate-Configure.
Se isso acontecer, se em vez disso correr apt-get dist-upgrade -o APT::Immediate-Configure=0 deverá permitir que a actualização aconteça.
Outra forma possível de contornar este problema é temporariamente
acrescentar ambas as fontes de squeeze e de wheezy ao seu
sources.list e correr apt-get
update.
O processo de actualização para wheezy pode pedir a remoção de pacotes no sistema. A lista exacta de pacotes irá variar dependendo do conjunto de pacotes que está instalado. Estas notas de lançamento dão conselhos gerais acerca destas remoções, mas em caso de dúvida, é recomendado que examine as propostas de remoção de pacotes de cada método antes de prosseguir.
Por vezes é necessário activar a opção
APT::Force-LoopBreak no APT para ser possível remover
temporariamente um pacote essencial devido a um ciclo vicioso de
Conflitos/Pré-Dependências. O apt-get irá alertá-lo disto
e abortará a actualização. Você pode contornar isto especificando a opção
-o APT::Force-LoopBreak=1 na linha de comandos do
apt-get.
É possível que uma estrutura de dependências do sistema se torne corrupta de modo a necessitar de intervenção manual. Normalmente isto significa utilizar o apt-get ou
# dpkg --remove nome_do_pacote
para eliminar alguns dos pacotes que estão a criar problemas, ou
# apt-get -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 squeeze “pure”, mas podem acontecer se tiver instalado 'backports' não-oficiais. Um conflito de ficheiros irá resultar num erro como:
A desempacotar<pacote-foo>(de<ficheiro-de-pacote-foo>) ... dpkg: erro ao processar<pacote-foo>(--install): tentando sobrescrever `<algum-nome-de-ficheiro>', o qual está também no pacote<pacote-bar>dpkg-deb: sub-processo de colagem morto pelo sinal ('pipe' quebrado) Foram encontrados erros enquanto se processava:<pacote-foo>
Pode tentar resolver um conflito de ficheiro, efectuando a remoção forçada do pacote mencionado na última linha da mensagem de erro:
# dpkg -r --force-depends nome_do_pacote
Depois de corrigir as coisas, deverá ser capaz de continuar a actualização repetindo os comandos do apt-get descritos atrás.
Durante a actualização, ser-lhe-ão colocadas questões acerca da configuração
ou da re-configuração de vários pacotes. Quando lhe for perguntado se algum
ficheiro no directório /etc/init.d, ou no ficheiro
/etc/manpath.config deve ser substituído pela versão do
'maintainer' do pacote, normalmente é necessário responder 'sim' para
garantir a consistência do sistema. Pode sempre reverter para as versões
anteriores, já que estas serão guardadas com uma extensão
.dpkg-old.
Se não tiver a certeza acerca do que fazer, anote o nome do pacote ou do ficheiro e resolva os problemas mais tarde. Pode procurar o ficheiro transcrito de modo a rever a informação que esteve no ecrã durante a actualização.
Se estiver a correr a actualização usando a consola local do sistema, pode descobrir que em certos pontos durante a actualização a consola é mudada para uma vista diferente e você perde a visibilidade do processo de actualização. Por exemplo, isto pode acontecer em sistemas de ambiente de trabalho quando o gestor de ecrã for reiniciado.
Para recuperar a consola onde a actualização estava a correr você tem de usar Ctrl+Alt+F1 (se estiver no ecrã de arranque gráfico) ou usar Alt+F1 (se estiver em consola local de modo de texto) para mudar de novo para o terminal virtual 1. Substitua F1 pela tecla de função com o mesmo número do terminal virtual onde a actualização estava a correr. Você também pode usar Alt+Seta Esquerda ou Alt+Seta Direita para mudar entre os diferentes terminais de modo de texto.
Na maioria dos casos, os pacotes deverão actualizar suavemente entre squeeze e wheezy. Existe um pequeno número de casos onde pode ser necessária alguma intervenção manual, seja antes ou durante a actualização; estes estão detalhados em baixo numa base de por-pacote.
Se modificou /etc/sudoers então deve estar ciente de
como o sudo lida com as alterações
de configurações. O /etc/sudoers, por omissão, agora
inclui as duas seguintes directivas:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
#includedir /etc/sudoers.d
Durante a actualização nenhuma destas entradas é acrescentada
automaticamente a /etc/sudoers. (Embora possa ainda
correr comandos sudo ao especificar o seu caminho
completo.) Por isso se desejar migrar as suas alterações para o novo
directório /etc/sudoers.d e utilizar o ficheiro
predefinido /etc/sudoers. Por exemplo:
# mv /etc/sudoers /etc/sudoers.d/mychanges # mv /etc/sudoers.dpkg-new /etc/sudoers
Poderá também necessitar de editar o seu
/etc/sudoers.d/mychanges para remover as entradas
indesejadas Defaults e
#includedir. Deve utilizar o visudo
para isto:
# visudo -f /etc/sudoers.d/mychanges
As versões do GNU Screen no squeeze e no wheezy não utilizam o mesmo
protocolo de comunicação entre o cliente screen e o
servidor SCREEN. Os pacotes screen do Wheezy foram alterados de forma que as
funcionalidades mais importantes estejam presentes mesmo que as versões de
cliente e servidor do screen não coincidam.
A funcionalidade mais proeminente que não funciona correctamente ao ligar a
uma sessão do Screen iniciada com uma versão do squeeze do screen com a versão do wheezy do screen como cliente é o redimensionamento do
terminal (sinal WINCH). Para contornar isto, é desligar e
voltar a ligar novamente para obter o tamanho dos terminais dentro da sessão
do screen correctamente ajustados.
Algumas aplicações baseadas em ncurses, e.g. aptitude, em modo visual, podem deixar restos de conteúdo anterior no ecrã. Pressionar Ctrl+L resolve o problema.
Outro simtoma (inofensivo) de semelhantes ligações entre diferentes versões é o screen lançar mensagens como "Message 40 of 12376 bytes too small".
Todos esses problemas desaparecem assim que as sessões Screen iniciadas com
a versão do squeeze do screen
terminarem.
Veja também /usr/share/doc/screen/NEWS.Debian.gz do
pacote screen do wheezy.
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.
Quando executar dist-upgrade de squeeze para wheezy, é fortemente recomendado que instale um novo meta-pacote linux-image-*, se ainda não o fez anteriormente. Este pacote pode ser instalado automaticamente pelo processo dist-upgrade. Pode verificar isto ao correr:
# dpkg -l "linux-image*" | grep ^ii
Se não vir nenhuma saída 'output', então poderá ter de instalar um novo pacote linux-image manualmente. Para ver uma lista de meta-pacotes linux-image disponíveis, corra:
# apt-cache search linux-image- | grep -v transition
Se estiver inseguro sobre que pacote seleccionar, corra uname
-r e procure um pacote com um nome semelhante. Por exemplo, se vir
'2.6.32-5-686', é recomendado que instale o linux-image-amd64. Também pode utilizar o
apt-cache para ver uma descrição longa acerca de cada
pacote de modo a ajudar a escolher o melhor dos disponíveis. Por exemplo:
# apt-cache show linux-image-amd64
Deverá então utilizar apt-get 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 mais fácil de compilar o seu
próprio kernel personalizado em Debian. Instale o código-fonte do kernel,
disponibilizado em linux-source. Você pode fazer uso do alvo do
deb-pkg disponível no makefile do código-fonte para
construir um pacote binário. Pode ser encontrada main informação no Debian Linux Kernel
Handbook, o qual também pode ser encontrado como o pacote
debian-kernel-handbook.
Se possível, é vantajoso para si 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.4.4, “Actualização mínima do sistema”.
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 irá falhar porque o sistema de ficheiros da raiz não pode ser montado e é-lhe mostrada uma shell de debug:
Desistiu de esperar pelo dispositivo da raiz. Problemas usuais:
- Argumentos de arranque (cat /proc/cmdline)
- Verifique rootdelay= (o sistema esperou o suficiente?)
- Verifique root= (o sistema esperou pelo dispositivo certo?)
- Módulos em falta (cat /proc/modules; ls /dev)
ALERTA! /dev/qualquer não existe. A ir para uma shell!
(initramfs)
Mas se verificar posteriormente, 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 for utilizado o
LILO.
Uma forma de contornar este problema é utilizar o parâmetro de arranque
rootdelay=. O valor do tempo
de espera (em segundos) pode precisar de ser ajustado.
9
Após a actualização existem várias coisas que você pode fazer para se preparar para o próximo lançamento.
Remova os novos pacotes obsoletos e não utilizados conforme descrito em Secção 4.8, “Pacotes obsoletos” e em Secção 4.8, “Pacotes obsoletos”. Você deve rever que ficheiros de configuração eles utilizam e considerar purgar os pacotes para remover os seus ficheiros de configuração.
Ao introduzir vários milhares de novos pacotes, a wheezy também remove e omite mais de quatro milhares de antigos pacotes que estavam na squeeze. 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 wheezy[5], e não irá disponibilizar como normalmente disponibilizar outro suporte entretanto. É recomendado substituí-los por alternativas, 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 wheezy 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' de gestão 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 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.
A lista de pacotes obsoletos inclui:
postgresql-8.4, o sucessor é
postgresql-9.1. O Wheezy
disponibiliza unicamente um pacote postgresql-plperl-8.4 actualizado que está
linkado contra a nova versão do libperl de modo a permitir a actualização
para a nova versão de perl no wheezy sem tornar as instalações de
postgresql-8.4 existentes não utilizáveis. Uma vez que a actualização ao
sistema operativo tenha terminado, deve também planear actualizar os seus
clusters de bases de dados PostgreSQl 8.4 para a nova versão 9.1 do
PostgreSQL utilizando a ferramenta pg_upgradecluster.
gdm, o sucessor é o gdm3. Os utilizadores de ambientes de trabalho
leves, tais como o Xfce ou o LXDE podem querer considerar o lightdm como uma alternativa mais leve.
O compiz gestor de janelas e de
composição OpenGL, ver relatos de bugs #677864 (e #698815).
Alguns dos controladores de vídeo do Xorg já não estão disponíveis na
wheezy e são obsoletos. Isto inclui xserver-xorg-video-nv e xserver-xorg-video-radeonhd. Poderão ser
removidos ao longo da actualização. Os utilizadores devem instalar
xserver-xorg-video-all em vez disso.
Todos os pacotes Horde 3, que disponibilizam software de colaboração web,
foram removidos e são obsoletos. Isto inclui ansel1, chora2, dimp1, gollem, horde-sam, horde3, imp4, ingo1, kronolith2, mnemo2, nag2, sork-forwards-h3, sork-passwd-h3, sork-vacation-h3 e turba2. Como os pacotes de Horde 4 ainda não
atingiram qualidade suficiente antes do lançamento de wheezy, ainda
não estão disponíveis. Poderão vir a estar disponíveis no repositório
testing como os pacotes de nome php-horde-*.
A maioria dos pacotes Kolab, que disponibilizam um servidor de groupware,
foram removidos. Isto inclui kolab-cyrus-imapd, kolab-webadmin, kolabd, libkolab-perl, php-kolab-filter e php-kolab-freebusy. Em 2012, o Kolab está sob
uma grande reescrita e poderá ser distribuido num lançamento Debian
posterior como o pacote kolab. NB: O
servidor SOGo (anteriormente chamado Scalable OpenGroupware.org) é
distribuido com wheezy como sogo.
Todos os pacotes de OpenERP 5 foram removidos e são obsoletos. Isto inclui
openerp-client, openerp-server, openerp-web.
Os pacotes uw-imapd e ipopd foram removidos. Para IMAP existem
alternativas melhores, por exemplo o dovecot-imapd e o courier-imap, ou o dovecot-pop3d e o courier-pop para POP3.
O pacote drupal6 já não está
disponível; foi substituido pelo drupal7. No entanto, não existe caminho de
actualização automática, os utilizadores devem ler as instruções no the Debian Wiki.
Alguns pacotes da squeeze foram separados em vários pacotes na wheezy, muitas vezes para melhorar a manutenção do sistema. Para facilitar a actualização em alguns casos, a wheezy fornece pacotes “dummy”: pacotes vazios que têm o mesmo nome que o pacote antigo na squeeze com dependências que provocam a instalação dos novos pacotes. Estes pacotes “dummy” são considerados redundantes 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 objectivo. As descrições dos pacotes para os pacotes fictícios não são
uniformes, no entanto você pode achar o deborphan com a
opção --guess-
(ex. *--guess-dummy) útil para detectá-los no seu
sistema. Note que alguns pacotes fictícios não se destinam a serem removidos
depois de uma actualização, e em vez disso, são utilizadas para seguir as
actuais versões disponíveis de um programa ao longo do tempo.
[1] Se a prioridade de debconf estiver definida para um nível muito alto pode prevenir avisos de configuração, mas os serviços que se regem em respostas predefinidas que não estão aplicáveis no seu sistema irão falhar o arranque.
[2] Por exemplo: os serviços DNS ou DHCP, especialmente quando não houver redundância ou alta disponibilidade. No caso do DHCP, os utilizadores finais podem ficar desligados da rede se o tempo de lease for menor que o tempo que durar a completar o processo de actualização.
[3] Esta função pode ser desactivada ao adicionar o parametro
panic=0 aos parametros de arranque.
[4] O sistema de gestão de pacotes da Debian normalmente não permite que um pacote remova ou substitua um ficheiro pertencente a outro pacote, a não ser que tenha definido para substituir esse pacote.
[5] Ou enquanto não for feito outro lançamento durante esse periodo de tempo. Tipicamente apenas dois lançamentos estáveis são suportados em qualquer altura.