Comment installer des packages snap derrière un proxy Web sur Ubuntu 16.04

31

Je sais comment configurer APT pour utiliser un proxy Web. Mais qu'en est-il de la rupture?

Carlos Estrada
la source

Réponses:

24

snapdlit /etc/environment, donc la définition des variables d'environnement proxy habituelles fonctionne. Sur Ubuntu, cela se fait automatiquement pour vous par Paramètres → Réseau → Proxy réseau, donc tant que vous redémarrez snapdaprès avoir changé ce fichier, vous devez être défini.

Chipaca
la source
2
Plus précis, le fichier snapd.service se trouve ici: /lib/systemd/system/snapd.service
julian-alarcon
1
@darkhole on ne devrait pas éditer /lib/systemd/system/snapd.service, mais utiliser systemctl edit snapd.service. Voir ma réponse: askubuntu.com/questions/659267/…
muru
1
Et si on veut automatiser cette configuration?
pmatulis
2
N'oubliez pas que vous devrez redémarrer le service snapd avant que ces modifications prennent effet.
Seth
2
La méthode que vous avez publiée ici ne fonctionne pas non plus avec l'authentification. Snap devrait simplement utiliser les vars env $ http_proxy et $ https_proxy normaux comme tout le monde. Voici le lien de suivi des bogues ubuntu pour ce problème.
Teque5
27

Une option système a été ajoutée dans le snap 2.28 pour spécifier le serveur proxy.

$ sudo snap set system proxy.http="http://<proxy_addr>:<proxy_port>"
$ sudo snap set system proxy.https="http://<proxy_addr>:<proxy_port>"

Documentation

Beta Kuang
la source
1
Cela devrait probablement être la réponse acceptée.
Mygod
J'utilise snap / snapd 2.34.2sur Ubuntu 16.04.5 et ces options ne fonctionnent pas. J'ai dû aller avec askubuntu.com/a/1084862/75760 , changer les paramètres systemd
hanxue
1
Cela devrait être la réponse acceptée
sayem siam
10

Il existe une autre façon d'ajouter des variables d'environnement aux services systemd:

Créez un dossier pour le démon snap et créez des fichiers de configuration pour les variables d'environnement:

$ sudo mkdir -p /etc/systemd/system/snapd.service.d/
$ echo -e '[Service]\nEnvironment="http_proxy=http://1.2.3.4:3128/"' \
      | sudo tee /etc/systemd/system/snapd.service.d/http-proxy.conf
$ echo -e '[Service]\nEnvironment="https_proxy=http://1.2.3.4:3128/"' \
      | sudo tee /etc/systemd/system/snapd.service.d/https-proxy.conf
$ sudo systemctl daemon-reload
$ sudo systemctl restart snapd

Après cela, vous pouvez vérifier si les variables d'environnement sont définies pour snapd:

$ systemctl show snapd | grep proxy
  Environment=http_proxy=http://1.2.3.4:3128/ https_proxy=http://1.2.3.4:3128/
  DropInPaths=/etc/systemd/system/snapd.service.d/http-proxy.conf /etc/systemd/system/snapd.service.d/https-proxy.conf
Simon Sudler
la source
6

Snap utilise le snapddémon. Il vous suffit de définir http_proxyet https_proxydans /etc/environmentet redémarrez le service: systemctl restart snapd.

mmartin
la source
2

Le service d'accrochage est configuré pour utiliser un fichier d'environnement spécial, vous pouvez donc simplement y ajouter la variable http_proxy si vos variables d'environnement actuelles ne sont pas récupérées par l'accrochage.

Fichier ouvert:

sudo vim /etc/sysconfig/snapd

Ajouter:

http_proxy=http://127.0.0.1:3128
https_proxy=http://127.0.0.1:3128
Alexandre
la source
Il n'y a pas de sysconfigdossier sur Ubuntu.
smartmouse
1

Soyez prudent, car le snapd lit le fichier / etc / environment au lieu d'obtenir la variable ENV. Cet exemple ci-dessous ne fonctionne pas:

export https_proxy=http://<your.ip.here>:3128

vous devez utiliser:

http://<your.ip.here>:3128
Zoltan Szabo
la source