web-dev-qa-db-fra.com

Comment utiliser l'option miroir d'apt-cacher-ng pour debootstrap?

Je lance debootstrap comme ceci:

Sudo debootstrap --verbose --Arch=AMD64 zesty chroot

J'ai déjà installé apt-cacher-ng.

Comment est-ce que je les fais fonctionner ensemble pour que, lorsque j'exécute debootstrap, j'utilise le cache au lieu de télécharger plusieurs fois les mêmes packages?

J'ai essayé d'utiliser l'option MIRROR et de définir la variable http_proxy, mais l'erreur est générée lorsque j'exécute en mode hors connexion:

$ 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

J'ai utilisé http://localhost:3142/uburep parce que c'est ce que j'ai trouvé dans le cache:

$ 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

J'ai essayé d'ajouterDefaults env_keep += "http_proxy https_proxy ftp_proxy" à/etc/sudoers (via Sudo visudo) mais cela n'a pas aidé non plus.

Si je supprime l'option MIRROR et exécute debootstrap en mode déconnecté, il ne semble pas utiliser apt-cacher-ng du tout (remarquez qu'il ne recherche plus localhost).

E: Failed getting release file http://archive.ubuntu.com/ubuntu/dists/zesty/Release
2
opticyclic

Il y a une astuce pour que cela fonctionne sans paramètres de proxy explicites. Vous pouvez utiliser votre apt-cacher-ng configuré comme une URL miroir comme suit:

http://localhost:3142/us.archive.ubuntu.com/ubuntu/

Donc, comme vous pouvez le voir après avoir spécifié l'URL de base de votre instance apt-cacher-ng, vous pouvez ensuite donner un serveur et un chemin d'accès comme indiqué dans cet article du wiki . J'ai utilisé cette méthode dans mes propres scripts bootstrap et cela fonctionne comme un charme.

Remarque: vous souhaiterez peut-être vérifier que votre instance apt-cacher-ng est en cours d'exécution en vérifiant avec lsof -i :3142 (requiert le package lsof.).

4
0xC0000022L