Ubuntu / apt-get: faz o download de todas as dependências de pacotes extras / sugeridas

1

Eu tenho dois computadores: um online e totalmente atualizado, o outro offline. Eu quero baixar arquivos .deb específicos para implantá-los em computadores off-line manualmente. Por exemplo, eu quero instalar o libapache2-mod-php5 .

O problema é que no computador online, todas as dependências já estão instaladas e não são selecionadas pelo switch de reinstalação. build-essential é particularmente problemático a esse respeito porque é essencialmente um meta-pacote.

No on-line:

root@online:~/temp# apt-get install libapache2-mod-php5 --reinstall --yes -s
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Inst libapache2-mod-php5 [5.4.15-1~lucid+1] (5.4.15-1~lucid+1 PPA for PHP5:10.04/lucid)
Conf libapache2-mod-php5 (5.4.15-1~lucid+1 PPA for PHP5:10.04/lucid)

No offline (o que fiz on-line pelo argumento)

root@offline:~# apt-get --print-uris install libapache2-mod-php5 --reinstall --yes -s
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap php5-common
Suggested packages:
  apache2-doc apache2-suexec apache2-suexec-custom php-pear php5-suhosin
The following NEW packages will be installed:
  apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap php5-common
0 upgraded, 10 newly installed, 0 to remove and 96 not upgraded.
Inst libapr1 (1.3.8-1ubuntu0.3 Ubuntu:10.04/lucid-updates)
Inst libaprutil1 (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates)
Inst libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates)
Inst libaprutil1-ldap (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates)
Inst apache2.2-bin (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Inst apache2-utils (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Inst apache2.2-common (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Inst apache2-mpm-prefork (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Inst php5-common (5.3.2-1ubuntu4.19 Ubuntu:10.04/lucid-updates)
Inst libapache2-mod-php5 (5.3.2-1ubuntu4.19 Ubuntu:10.04/lucid-updates)
Conf libapr1 (1.3.8-1ubuntu0.3 Ubuntu:10.04/lucid-updates)
Conf libaprutil1 (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates)
Conf libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates)
Conf libaprutil1-ldap (1.3.9+dfsg-3ubuntu0.10.04.1 Ubuntu:10.04/lucid-updates)
Conf apache2.2-bin (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Conf apache2-utils (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Conf apache2.2-common (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Conf apache2-mpm-prefork (2.2.14-5ubuntu8.10 Ubuntu:10.04/lucid-updates)
Conf php5-common (5.3.2-1ubuntu4.19 Ubuntu:10.04/lucid-updates)
Conf libapache2-mod-php5 (5.3.2-1ubuntu4.19 Ubuntu:10.04/lucid-updates)

Eu gostaria de poder baixar todos esses arquivos deb no computador on-line sem precisar especificá-los um por um.

    
por Jeff 16.05.2013 / 19:34

1 resposta

1

Há um presente esperando por você em /var/cache/apt/archives no computador on-line. Mais especificamente, uma cópia de cada pacote baixado (a menos que você os tenha excluído). Você pode pegá-los sem ter que baixá-los.

Pode ser um pouco mais complicado criar um gráfico de dependência completo para saber quais são especificamente necessários, mas nada o impede de colocar todos eles em um disco rígido e movê-los para os computadores off-line.

Esta postagem detalha como criar um Packages.gz para a pasta de arquivos .deb , de modo que você possa adicionar o caminho ao seu /etc/apt/sources.list em cada máquina e instalar pacotes a partir dele:

  1. Copie todo o .debs para o seu pen drive ou drive USB. Usaremos /media/flash_drive como um caminho de exemplo.
  2. Executar dpkg-scanpackages /media/flash_drive file | gzip > /media/flash-drive/Packages.gz
  3. Em cada computador off-line, adicione deb file:/media/flash_drive ao /etc/apt/sources.list
  4. Conecte e instale a unidade flash e, em seguida, use apt-update para carregar a lista de pacotes.

No futuro, repita as etapas 1, 2 e 4 para adicionar / atualizar pacotes. Se você puder montar um compartilhamento de arquivos pela rede entre os computadores off-line, poderá usar esse caminho em vez de uma unidade flash para distribuir o .deb s! Muitas empresas grandes com muitas máquinas linux criam esses espelhos de repositórios para reduzir a largura de banda.

    
por 16.05.2013 / 19:39