
                            Usando o APT Offline


-----------------------------------------------------------------------------
                                      
                               Jason Gunthorpe

                              <jgg@debian.org>

                                Versão 3.3.1

-----------------------------------------------------------------------------

Copyright © 1999 Jason Gunthorpe

Aviso de Licença

    "APT" e este documento são software livre; você pode distribuí-lo e/ou
    modifica-lo sob os termos da GNU General Public License como publicada
    pela Free Software Foundation; seja na versão 2 da Licença, ou (por sua
    opção) qualquer versão posterior.

    Para mais detalhes em sistemas Debian, veja o ficheiro /usr/share/
    common-licenses/GPL para a licença completa.

Resumo

Este documento descreve como usar o APT num ambiente sem rede,
especificamente uma aproximação 'sneaker-net' para executar actualizações.

-----------------------------------------------------------------------------

Índice

1. Introdução
    1.1. Visão geral
2. Usando o APT em ambas máquinas
    2.1. Visão geral
    2.2. O ficheiro de configuração
3. Usando APT e wget
    3.1. Visão geral
    3.2. Operação

Capítulo 1. Introdução

Índice

1.1. Visão geral

1.1. Visão geral

    Normalmente o APT requer acesso direto a um arquivo Debian, seja duma
    media local ou através de rede. Outra queixa comum e que uma máquina
    Debian está numa ligação lenta, como um modem e outra máquina tem uma
    ligação muito rápida mas estão fisicamente distantes.

    A solução para isto é usar grandes médias amovíveis como um disco Zip ou
    um disco SuperDisk. Estes discos não são suficientemente grandes para
    armazenar o arquivo Debian inteiro mas podem facilmente conter um
    subconjunto suficientemente grande para a maioria dos utilizadores. A
    ideia é usar o APT para gerar uma lista de pacotes que são necessários e
    depois obter-los para o disco usando outra máquina com boa ligação. É até
    possível usar outra máquina Debian com APT ou usar um SO completamente
    diferente e uma ferramenta de download como o wget. Deixe remote host
    representar a máquina que descarrega os pacotes, e target host aquela com
    má ou nenhuma ligação.

    Isto é conseguido ao manipular com criatividade o ficheiro de
    configuração do APT. A premissa essencial para dizer ao APT para procurar
    num disco pelos seus ficheiros de arquivo. Note que o disco deve estar
    formatado com um sistema de ficheiros que saiba lidar com nomes de
    ficheiros longos como o ext2, fat32 ou vfat.

Capítulo 2. Usando o APT em ambas máquinas

Índice

2.1. Visão geral
2.2. O ficheiro de configuração

2.1. Visão geral

    Estando o APT disponível em ambas máquinas dá a configuração mais
    simples. A ideia básica é colocar uma cópia do ficheiro de estado no
    disco e usar a máquina remota para obter os ficheiros de pacotes mais
    recentes e decidir quais pacotes descarregar. A estrutura de directórios
    do disco deverá parecer-se com:

      /disc/
        archives/
           partial/
        lists/
           partial/
        status
        sources.list
        apt.conf

2.2. O ficheiro de configuração

    O ficheiro de configuração deve dizer ao APT para armazenar os seus
    ficheiro no disco e usar os ficheiros de configuração do disco também. O
    sources.list deve conter os sites apropriados que deseja usar a partir da
    máquina remota, e o ficheiro de estado deve ser uma cópia de /var/lib/
    dpkg/status a partir do target host. Por favor note, se está a usar um
    arquivo local você deve usar copy URIs, a sintaxe é idêntica a file URIs.

    apt.conf tem de conter a informação necessária para fazer o APT usar o
    disco:

     APT
     {
       /* Isto não é necessário se as duas máquinas forem da mesma arquitectura, diz
          ao APT remoto que arquitectura tem a máquina de destino */
       Architecture "i386";

       Get::Download-Only "true";
     };

     Dir
     {
       /* Usa o disco para informação de estado e redireciona o ficheiro de estado a partir de
          the /var/lib/dpkg default */
       State "/disc/";
       State::status "status";

       // Caches binárias serão armazenadas localmente
       Cache::archives "/disc/archives/";
       Cache "/tmp/";

       // Localização da lista de fontes.
       Etc "/disc/";
     };

    Mais detalhes podem ser vistos ao examinar o manual do apt.conf e o
    exemplo de ficheiro de configuração em /usr/share/doc/apt/examples/
    apt.conf.

    Na máquina de destino a primeira coisa a fazer é montar o disco e copiar 
    /var/lib/dpkg/status para ele. Você também precisa de criar os
    directórios delineados na Visão Geral, archives/partial/ e lists/partial/
    . Depois leve o disco até à máquina remota e configure o sources.list. Na
    máquina remota execute o seguinte:

     # export APT_CONFIG="/disc/apt.conf"
     # apt-get update
     [ APT obtém os ficheiros de pacotes ]
     # apt-get dist-upgrade
     [ APT obtém todos os pacotes necessários para actualizar a máquina de destino ]

    O comando dist-upgrade pode ser substituído por qualquer outro comando
    APT standard, particularmente dselect-upgrade. Você até pode usar um
    front-end do APT como o dselect. No entanto isto apresenta um problema ao
    comunicar as suas selecções de volta ao computador local.

    Agora o disco contém todos os ficheiros de índice e os arquivos
    necessários para actualizar a máquina de destino. Devolva o disco e
    corra:

      # export APT_CONFIG="/disc/apt.conf"
      # apt-get check
      [ APT gera uma cópia local dos ficheiros de cache ]
      # apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade
      [ Ou qualquer outro comando APT ]

    Para uma função apropriada é necessário re-especificar que o ficheiro de
    estado seja o ficheiro local. Isto é muito importante!

    Se está a usar dselect você pode fazer a operação muito arriscada de
    copiar disc/status para /var/lib/dpkg/status para que quaisquer selecções
    que faça na máquina remota sejam actualizadas. Eu recomendo altamente que
    as pessoas apenas façam selecções na máquina local - mas isto pode nem
    sempre ser possível. NÃO copie o ficheiro de estado se entretanto correu
    o dpkg ou o APT!!

Capítulo 3. Usando APT e wget

Índice

3.1. Visão geral
3.2. Operação

3.1. Visão geral

    wget é uma ferramenta popular e portável de download que pode correr
    praticamente em qualquer máquina. Ao contrário do método acima, este
    requer que a máquina Debian já tenha uma lista de pacotes disponíveis.

    A ideia básica é criar um disco que tem apenas os ficheiros de arquivo
    descarregados do site remoto. Isto é feito ao usar a opção --print-uris
    no apt-get e depois preparar um script wget para realmente ir buscar os
    pacotes.

3.2. Operação

    Ao contrário da técnica anterior, não são necessários ficheiros de
    configuração especiais. Nós usamos meramente os comandos standard do APT
    para gerar a lista de ficheiros.

     # apt-get dist-upgrade
     [ Escolha não quando perguntado, certifique-se que está contente com as acções ]
     # apt-get -qq --print-uris dist-upgrade > uris
     # awk '{print "wget -O " $2 " " $1}' < uris > /disc/wget-script

    Qualquer comando além do dist-upgrade pode ser usado aqui, incluindo
    dselect-upgrade.

    O ficheiro /disc/wget-script irá agora conter uma lista de comandos do
    wget para executar de modo a obter os arquivos necessários. Este script
    deve ser corrido com o directório actual sendo o ponto de montagem do
    disco para que grave os resultados no disco.

    A máquina remota deverá fazer algo como

      # cd /disc
      # sh -x ./wget-script
      [ wait.. ]

    Após os arquivos serem descarregados e o disco retornado à máquina
    Debian, a instalação pode prosseguir usando,

      # apt-get -o dir::cache::archives="/disc/" dist-upgrade

    O qual irá usar os arquivos já obtidos e que estão no disco.

