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