Aller au contenu principal
~/GiwiSoft
P59sq6p59sq6p59s

apt-get derrière un proxy

Giwi 2 min de lecture Linux, Ubuntu

Parce que Oracle commence à me sortir par les trous de nez, j’ai décidé d’abandonner OpenOffice au profit de LibreOffice (le fork d’OO). Cependant, comme LibreOffice ne fera sans doute partie que de la prochaine version d’Ubuntu, il n’est pas disponible dans la logithèque. Cependant, il est présent sur launchpad. La procédure d’installation depuis les dépôts PPA n’a rien de sorcier sauf quand on est derrière un proxy. Voici le truc et astuce.

Depuis un terminal :

$ sudo -i
$ export https_proxy="http://proxy.mes.genoux.fr:8080"
$ export http_proxy="http://proxy.mes.genoux.fr:8080"
$ LANG=C add-apt-repository ppa:libreoffice/ppa

Un autre solution consiste à modifier le fichier /etc/apt/apt.conf

Acquire::http::Proxy "http://user:pass@proxy.mes.genoux.fr:3128";
Acquire::https::Proxy "http://user:pass@proxy.mes.genoux.fr:3128";

Configuration système globale via /etc/environment

Pour que tous les utilisateurs et toutes les applications (pas seulement apt) utilisent le proxy, ajoutez ces lignes dans /etc/environment :

http_proxy="http://proxy.mes.genoux.fr:8080"
https_proxy="http://proxy.mes.genoux.fr:8080"
ftp_proxy="http://proxy.mes.genoux.fr:8080"
no_proxy="localhost,127.0.0.1,192.168.0.0/16"

Les variables seront lues au prochain redémarrage de session.

Fichier de configuration dédié à APT

Plutôt que /etc/apt/apt.conf, la méthode recommandée est d’utiliser un fichier séparé dans /etc/apt/apt.conf.d/ :

$ echo 'Acquire::http::Proxy "http://user:pass@proxy.mes.genoux.fr:3128";' | sudo tee /etc/apt/apt.conf.d/01proxy
$ echo 'Acquire::https::Proxy "http://user:pass@proxy.mes.genoux.fr:3128";' | sudo tee -a /etc/apt/apt.conf.d/01proxy

Cela évite d’écraser les autres configurations système.

Contourner le proxy pour les dépôts locaux

Si vous avez un miroir local sur le réseau interne, ajoutez une exceptions Acquire::http::Proxy::mirror.local "DIRECT"; dans le même fichier de configuration :

Acquire::http::Proxy::192.168.1.* "DIRECT";
Acquire::https::Proxy::internal.repo.local "DIRECT";

Proxy dans les builds Docker

Lors de la construction d’une image Docker, passez les variables de proxy aux instructions RUN sans les graver dans l’image :

ARG http_proxy
ARG https_proxy
ARG no_proxy
RUN apt-get update && apt-get install -y paquet

Ou via le fichier de config apt dans un COPY temporaire que vous supprimez après l’install. La méthode la plus propre reste de passer --build-arg au moment du build :

$ docker build --build-arg http_proxy=http://proxy.mes.genoux.fr:8080 \
--build-arg https_proxy=http://proxy.mes.genoux.fr:8080 \
--build-arg no_proxy=localhost,127.0.0.1 -t mon-image .