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

Índice

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

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

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!!