1

У меня есть два компьютера: один в сети и полностью обновлен, другой в автономном режиме. Я хочу загрузить определенные файлы .deb, чтобы вручную развернуть их на автономных компьютерах. Например, я хочу установить libapache2-mod-php5 .

Проблема в том, что на онлайн-компьютере все зависимости уже установлены и не перехвачены переключателем переустановки. build-essential особенно проблематичен в этом отношении, потому что это по сути метапакет.

На сайте:

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)

В оффлайне (который я сделал онлайн ради аргумента)

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)

Я хотел бы иметь возможность загружать все эти файлы deb на онлайн-компьютер без необходимости указывать их один за другим.

1 ответ1

1

На онлайн-компьютере вас ждет подарок в /var/cache/apt/archives - точнее, копия каждого загруженного пакета (если вы не удалили его). Вы можете получить их, не загружая их.

Может быть немного сложнее построить полный граф зависимостей, чтобы узнать, какие именно вам нужны, но ничто не мешает вам поместить их все на жесткий диск и перенести их на автономные компьютеры.

В этом посте подробно рассказывается, как создать Packages.gz для папки .deb файлов, чтобы вы могли добавить путь к вашему /etc/apt/sources.list на каждом компьютере и установить с него пакеты:

  1. Скопируйте все .debs на флэш-накопитель или USB-накопитель. Мы будем использовать /media/flash_drive в качестве примера пути.
  2. Запустите dpkg-scanpackages /media/flash_drive file | gzip > /media/flash-drive/Packages.gz
  3. На каждом автономном компьютере добавьте deb file:/media/flash_drive в /etc/apt/sources.list
  4. Подключите и смонтируйте флешку, а затем используйте apt-update для загрузки списка пакетов.

В будущем повторите шаги 1, 2 и 4, чтобы добавить / обновить пакеты. Если вы можете смонтировать общий ресурс по сети между автономными компьютерами, то вы можете использовать этот путь вместо флэш-диска для распространения .deb s! Многие крупные компании с большим количеством машин Linux будут создавать эти зеркала репозитория, чтобы уменьшить пропускную способность.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .