<chapt id="uptodate">Mantendo seu Sistema Debian Atualizado.

<p>Uma das metas do Debian é prover um caminho consistente de atualização e
um processo seguro para realizar a mesma tarefa, e sempre fazemos o possível
para que as atualizações de versões anteriores possam ser feitas da melhor forma
possível. No caso em que haja alguma nota importante para acrescentar ao
processo de atualização, o pacote irá alertar o usuário, e possivelmente
oferecer uma solução para possíveis problemas.

<p>Você também deverá ler as Release Notes (Notas de lançamento), documento que
descreve os detalhes para atualizações específicas, enviado em todos os CDs do
Debian, e disponível na WWW em
<url id="http://www.debian.org/releases/stable/i386/release-notes/">.

<sect id="libc5to6upgrade">Como posso atualizar minha distribuição Debian
1.3.1 (ou anterior), baseada na libc5, para a 2.0 (ou posterior), baseada na libc6?

<p>Há vários modos de atualizar:
<list>
  <item>Usando um simples script de shell chamado <tt>autoup.sh</tt>,
    que atualiza os pacotes mais importantes. Depois que o
    <tt>autoup.sh</tt> terminou seu serviço, você pode usar o dselect para
    instalar os pacotes restantes em massa. Este é provavelmente o método
    recomendado, mas não o único.
    <p>Atualmente, a última versão de <tt>autoup.sh</tt> pode ser encontrada
    nos seguintes lugares:
    <list>
      <item><url id="http://www.br.debian.org/releases/2.0/autoup/">
      <item><url id="http://www.taz.net.au/autoup/">
      <item><url id="http://csanders.vicnet.net.au/autoup/">
    </list>
  <item>Seguindo atentamente o <url name="libc5-libc6-Mini-HOWTO"
    id="http://ftp.debian.org/debian/doc/libc5-libc6-Mini-HOWTO.txt"> e
    atualizando os pacotes mais importantes na mão. O <tt>autoup.sh</tt>
    é baseado neste Mini-HOWTO, logo este método deve funcionar mais ou menos
    como o <tt>autoup.sh</tt>.
  <item>Usando um <tt>apt</tt> baseado em libc5. APT significa "A Package Tool"
    ("Uma Ferramenta de Pacotes"), e pode substituir o dselect algum dia.
    Atualmente, ele funciona apenas como uma interface de linha de comando,
    ou como um método de acesso para o dselect.  Você pode encontrar uma
    versão para libc5 no diretório <tt>dists/slink/main/upgrade-older-i386</tt>
    nos repositórios Debian.
  <item>Usando apenas o dselect, sem atualizar nenhum pacote à mão primeiro.
    É altamente recomendável que você NÃO use este método se puder evitar,
    porque atualmente o dselect sozinho não instala os pacotes na ordem ótima.
    O APT funciona muito melhor e é mais seguro.
    <!-- This should probably work if dpkg's max-error-before-stop internal
    variable is increased. Question: Will it be increased some day? -->
</list>

<!--
This paragraph is obsolete, but I will keep it here as a reminder in
case libc6-based dpkg happen to be some better than the one in Debian
1.3.1: Note that the version of <tt>dpkg</tt> in this directory has the
a.out binary format. The versions of <tt>dpkg</tt> in the development and
stable trees have the ELF format.
-->

<sect id="howtocurrent">Como posso manter meu sistema Debian atualizado?

<p>A pessoa poderia simplesmente fazer um ftp anônimo a um repositório Debian,
examinar os diretórios até achar o arquivo desejado, pegá-lo, e finalmente
instalá-lo usando o <tt>dpkg</tt>. Observe que o <tt>dpkg</tt> instalará os
arquivos atualizados em seu lugar correto, mesmo num sistema que esteja rodando.
Às vezes, um pacote revisado precisa da instalação de uma versão revisada de
outro pacote.  Nesse caso, a instalação falhará a menos que o outro pacote
seja instalado.

<p>Muitas pessoas acham que essa abordagem consome muito tempo, já que o
Debian se desenvolve muito rapidamente - normalmente, uma dúzia ou
mais pacotes são atualizados toda semana. Este número é maior logo
antes do lançamento de uma nova versão. Para lidar com esta
avalanche, muitas pessoas preferem usar programas automatizados.
Vários pacotes diferentes estão disponíveis para este propósito:

<sect1 id="apt">APT

<p>O APT é um sistema de administração de pacotes de software, isto é,
binários Debian e pacotes fonte. O apt-get é a ferramenta de linha de comando
para trabalhar com pacotes, e o método APT do dselect é uma interface para o
APT através do <prgn>dselect</prgn>, ambos oferecem um modo mais simples e
seguro de instalar e atualizar pacotes.

<p>Para usar o método APT do dselect, execute o <prgn>dselect</prgn>, escolha
a opção "0" ("Choose de access method to use" - "Escolha o método de acesso a
ser usado"), destaque a opção "apt" e especifique a fonte do APT. Para fontes
FTP e HTTP, você precisará do URL onde os diretórios Debian residem, nome da
versão (você pode usar os nomes stable/unstable) e a seção da distribuição.

<p>Se você quer usar os CDs para instalar os pacotes, insira cada CD
do Debian no CD-ROM e rode o apt-cdrom. Então, quando selecionar o método
APT você não necessitará alterar a lista de fontes.

<p>As características do APT "ordenação completa de instalação", "capacidade
de múltiplas fontes" e várias outras características únicas, veja o User Guide
em <tt>/usr/share/doc/apt/guide.html/index.html</tt>.

<sect1 id="dpkg-ftp">dpkg-ftp

<p>Este é um método antigo. O APT é o método recomendado no momento.

<p>Este é um método de acesso para o <prgn>dselect</prgn>. Ele pode ser
chamado de dentro do <prgn>dselect</prgn>, permitindo assim que o usuário
baixe arquivos e os instale diretamente em um único passo. Para fazer isso,
execute o programa <prgn>dselect</prgn>, escolha a opção "0" ("Choose de
access method to use" - "Escolha o método de acesso a ser usado"), destaque
a opção "ftp" e especifique o hostname e diretório remoto. O
<prgn>dpkg-ftp</prgn> baixará automaticamente os arquivos que forem
selecionados (tanto nesta sessão do <prgn>dselect</prgn>, quanto nas anteriores).

<p>Observe que, ao contrário do programa <prgn>mirror</prgn>,
o <prgn>dpkg-ftp</prgn> não pega tudo que está num site espelho.
Ao invés disso, ele baixa apenas os arquivos que você escolheu (da
primeira vez que iniciou o <prgn>dpkg-ftp</prgn>), e que precisam ser
atualizados.

<sect1 id="mirror">mirror

<p>Este script Perl, e seu (opcional) administrador de programas chamado
<prgn>mirror-master</prgn>, pode ser usado para buscar partes específicas
de uma árvore de diretórios de um host especificado <em>via</em> FTP anônimo.

<p>O <prgn>mirror</prgn> é particularmente útil para baixar grandes volumes de
softwares. Depois da primeira vez em que os arquivos foram baixados de um site,
um arquivo chamado <tt>.mirrorinfo</tt> é armazenado no host local. Mudanças
no filesystem remoto são detectadas automaticamente pelo <prgn>mirror</prgn>,
que compara esse arquivo a um arquivo similar no sistema remoto e baixa somente
os arquivos que sofreram mudanças.

<p>O programa <prgn>mirror</prgn> é geralmente útil na atualização de cópias
locais de arvores de diretórios remotas. Os arquivos procurados não precisam
ser arquivos Debian (Como o <prgn>mirror</prgn> é um script Perl, ele pode
também rodar em sistemas não Unix). Embora o programa <prgn>mirror</prgn>
ofereça mecanismos para exclusão de nomes de arquivos que correspondam as
strings especificadas pelos usuários, esse programa é muito útil quando o
objetivo é baixar a árvore de diretórios inteira, ao invés de pacotes
selecionados.

<!-- Should we recommend GNU wget here, too? -->

<sect1 id="dftp">dftp

<p>Este script em Perl pode ser usado para buscar pacotes Debian de um
host específico. Ele começa baixando os arquivos Packages.gz dos diretórios
especificados pelo usuário (por exemplo, stable, contrib, non-free) e
mostra uma lista de pacotes. Estes são colocados em várias seções:
novos upgrades, downgrades, novos pacotes, upgrades ignorados e
pacotes ignorados. Daí, o usuário escolhe os pacotes desejados e o
dftp os baixa e os instala. Isto faz com que seja muito fácil ter seu
sistema Debian 100% atualizado sem ter que baixar os pacotes que você
não vai instalar.

<p>O <prgn>dftp</prgn> pode ser usado para chamar o <prgn>dselect</prgn>
(veja <ref id="dselect">), fornecendo assim uma maneira integrada de buscar
e atualizar os pacotes Debian de um sistema.  Após o término da instalação,
outro comando <prgn>dftp</prgn> pode ser usado para remover os arquivos de
pacotes (".deb"). Mudanças no sistema de arquivos remoto são rastreadas
automaticamente pelo <prgn>dftp</prgn>, que compara o arquivo Packages.gz
local com os arquivos no sistema remoto.

<sect1 id="dpkg-mountable">dpkg-mountable

<p>O dpkg-mountable adiciona um método de acesso chamado "muntable" a lista
do dselect, que permite você instalar de qualquer sistema de arquivos
especificado pelo /etc/fstab (por exemplo, uma partição de disco rígido
normal, ou um servidor NFS), o qual ele irá automaticamente montar ou desmontar
para você se necessário.

<p>Ele também possui algumas características extras não encontradas nos métodos
padrão do dselect, como abastecimento de uma árvore de arquivos local (tanto
paralelo à distribuição principal, quanto totalmente separado), e somente
obtendo pacotes que são necessários, ao invés do demorado exame de diretórios,
como também registrando todas as ações do dpkg no método de instalação.

<sect id="upgradesingle">Preciso mudar para o modo monousuário para atualizar um pacote?

<p>Não. Os pacotes podem ser atualizados, até em sistemas em execução.
O Debian tem um programa chamado <tt>start-stop-daemon</tt>,
que é chamado para parar, e depois reiniciar, se necessário, processos
em execução, durante a atualização de um pacote.

<sect id="savedebs">Preciso manter todos aqueles arquivos .deb em meu disco?

<p>Não. Se você tiver baixado os arquivos para seu disco (que não é
absolutamente necessário, veja acima as descrições do dpkg-ftp ou do
dftp), então, após você ter instalado os pacotes, você pode removê-los
de seu sistema.

<sect id="keepingalog">Como posso manter um registro dos pacotes que adicionei
ao sistema?

<p>O <prgn>dpkg</prgn> mantém um registro dos pacotes que foram desempacotados,
configurados, removidos, e/ou apagados, mas não mantém (atualmente) um
registro da atividade do terminal que ocorreu enquanto o pacote estava
sendo manipulado. Alguns usuários superam esse problema simplesmente
usando <tt>tee</tt>, assim:

<example>
dpkg -iGOEB -R main/binary non-free/binary contrib/binary | \
    tee -a /root/dpkg.log
</example>

O mesmo comando escrito usando opções longas:
<example>
dpkg --install --refuse-downgrade --selected-only \
  --skip-same-version --auto-deconfigure \
  --recursive main/binary non-free/binary contrib/binary | \
    tee -a /root/dpkg.log
</example>