Я работаю debootstrap
как это:
sudo debootstrap --verbose --arch=amd64 zesty chroot
Я уже установил apt-cacher-ng
.
Как я заставляю их сотрудничать так, чтобы, когда я выполняю debootstrap многократно, я использовал кэш вместо того, чтобы неоднократно загрузить те же пакеты?
Я попытался использовать опцию MIRROR и установить http_proxy переменную, но это ошибки, когда я работаю офлайн:
$ sudo http_proxy="http://localhost:3142" debootstrap --verbose --arch=amd64 zesty chroot http://localhost:3142/uburep
I: Retrieving InRelease
I: Failed to retrieve InRelease
I: Retrieving Release
E: Failed getting release file http://localhost:3142/uburep/dists/zesty/Release
Я использовал http://localhost:3142/uburep
потому что, именно это я нашел в кэше:
$ find /var/cache/apt-cacher-ng -name Release
/var/cache/apt-cacher-ng/security.ubuntu.com/ubuntu/dists/zesty-security/Release
/var/cache/apt-cacher-ng/uburep/dists/zesty-updates/Release
/var/cache/apt-cacher-ng/uburep/dists/zesty-backports/Release
/var/cache/apt-cacher-ng/uburep/dists/zesty/Release
Я пытался добавить Defaults env_keep += "http_proxy https_proxy ftp_proxy"
к/etc/sudoers (через sudo visudo), но это не помогло также.
Если я удаляю опцию MIRROR и выполняю debootstrap офлайн, это затем, кажется, не использует apt-cacher-ng вообще (примечание, как это не ищет localhost больше).
E: Failed getting release file http://archive.ubuntu.com/ubuntu/dists/zesty/Release
Существует прием, чтобы заставить это работать без явных настроек прокси. Можно на самом деле использовать настроенный apt-cacher-ng
как зеркальный URL как так:
http://localhost:3142/us.archive.ubuntu.com/ubuntu/
Таким образом, поскольку Вы видите после определения базового URL к Вашему apt-cacher-ng
экземпляр можно затем дать сервер и путь согласно этой статье Wiki. Я использовал этот метод в своих собственных сценариях начальной загрузки, и он работает как очарование.
Примечание: можно хотеть проверить что Ваш apt-cacher-ng
экземпляр работает путем сверения lsof -i :3142
(требует lsof
пакет).