Где хранятся файлы apt-get?

26

На Ubuntu работает несколько виртуальных машин, и все они обновляются с помощью следующей команды:

apt-get update
apt-get upgrade

Но обновление каждой виртуальной машины в отдельности занимает много времени для загрузки необходимых пакетов, а также использует огромную полосу пропускания (из которой у меня заканчивается). Можно ли перенести обновленные файлы apt-getнапрямую в виртуальные машины?

Я знаю, что пакеты хранятся, /var/cache/apt/archivesно мне нужны файлы базы данных apt-get (список зеркал, индексы, доступные пакеты на зеркалах, ...)


Обновление: есть много решений

  1. apt-cacher-ng, как указано в ответах.
  2. Изображения Docker, созданные для кэширования apt-файлов (на самом деле они запускают squid)
  3. Просто с помощью кальмара

Кроме того, как упоминалось в ответах, см. Лучший способ кэширования подходящих загрузок в локальной сети?

hkoosha
источник

Ответы:

15

Не является четким ответом на ваш вопрос, но рассматривали ли вы возможность установки подходящего прокси? Я использую apt-cacher-ng (apt-get install apt-cacher-ng: D). Prehaps установить это на хосте VM, и сказать , виртуальные машины (и хост) , чтобы использовать это в качестве прокси - сервера (так просто , как добавление файла (например 02proxy) , чтобы /etc/apt/apt.conf.d/ содержащий

Acquire::http { Proxy "http://vm host ip:3142"; };

Таким образом, вы можете просто обойтись apt-get upgradeбез необходимости вручную копировать файлы. Когда один компьютер загрузит файлы, они будут сохранены в прокси для следующего компьютера, который его запрашивает. Может обрабатывать несколько выпусков и разных архитектур и т. Д.

Просто хоть: D

cosmorogers
источник
1
Вы даже можете установить squid-deb-proxyна прокси-сервер и squid-deb-proxy-clientдругие; это сделает прозрачное обнаружение прокси-сервера (с помощью Avahi) без настройки на стороне клиента. В качестве бонуса, если прокси-сервер не найден в локальной сети, клиент будет подключаться к репозиториям напрямую (что делает это подходящим даже для ноутбуков).
Писквор
Я второй использую Squid-deb-proxy вместо Apt-cacher. Соответствующий вопрос: Лучший способ кэширования подходящих загрузок в локальной сети?
gertvdijk
36

.Deb-файлы, которые вы уже скачали, хранятся в /var/cache/apt/archives/.

турбо
источник
Оооо, побей меня на 26 секунд :)
Нафтули Кей
6
Вот почему у меня в два раза больше репутации ;-P
turbo
1
Оооооооооо, burrrrn. :)
Нафтули Кей
14

/var/cache/apt/archives где они должны храниться.

Нафтули Кей
источник
0

Вы можете сделать резервную копию всего * .deb, затем скопировать его в VMware, вы можете скопировать его в /root/sw_backup. Папка не может быть /var/cache/apt/archives/.

Затем вы можете установить его локально с помощью synaptic. $ synaptic "файл" меню, чтобы найти локальную установку. но для этого также нужна сеть, просто нужно обновить небольшой пакет.

eric0593
источник
Обратите внимание, что это должно быть .deb not .dep
Malfist