So installieren Sie Snap-Pakete hinter dem Web-Proxy unter Ubuntu 16.04

31

Ich kann APT für die Verwendung eines Web-Proxys konfigurieren. Aber was ist mit Schnappen?

Carlos Estrada
quelle

Antworten:

24

snapdliest /etc/environment, so dass das Setzen der üblichen Proxy-Umgebungsvariablen dort funktioniert. Unter Ubuntu geschieht dies automatisch über Einstellungen → Netzwerk → Netzwerk-Proxy. Solange Sie snapdnach dem Ändern dieser Datei einen Neustart durchführen , sollten Sie die Einstellungen vornehmen .

Chipaca
quelle
2
Genauer gesagt befindet sich die Datei snapd.service hier: /lib/systemd/system/snapd.service
julian-alarcon
1
@darkhole sollte man nicht bearbeiten /lib/systemd/system/snapd.service, sondern benutzen systemctl edit snapd.service. Siehe meine Antwort: askubuntu.com/questions/659267/…
muru
1
Was ist, wenn man diese Konfiguration automatisieren möchte?
Pmatulis
2
Denken Sie daran, dass Sie den snapd-Dienst neu starten müssen, damit diese Änderungen wirksam werden.
Seth
2
Die Methode, die Sie hier gepostet haben, funktioniert auch nicht mit der Authentifizierung. Snap sollte nur die normalen env-Dateien $ http_proxy und $ https_proxy verwenden, wie alle anderen auch. Hier ist der Ubuntu Bug Tracker Link für dieses Problem.
Teque5
27

In Snap 2.28 wurde eine Systemoption hinzugefügt, um den Proxy-Server anzugeben.

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

Dokumentation

Beta Kuang
quelle
1
Dies sollte wahrscheinlich die akzeptierte Antwort sein.
Mygod
Ich verwende snap / snapd 2.34.2unter Ubuntu 16.04.5 und diese Optionen funktionieren nicht. Musste mit askubuntu.com/a/1084862/75760 gehen und die systemd Einstellungen
ändern
1
Dies sollte die akzeptierte Antwort sein
sayem siam
10

Es gibt eine andere Möglichkeit, Umgebungsvariablen zu systemd-Diensten hinzuzufügen:

Erstellen Sie einen Ordner für den Snap-Daemon und erstellen Sie Konfigurationsdateien für die Umgebungsvariablen:

$ 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

Danach können Sie überprüfen, ob die Umgebungsvariablen für Folgendes festgelegt sind 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
quelle
6

Snap verwendet einen snapdDaemon. Sie müssen nur definieren , http_proxyund https_proxyin /etc/environmentund starten Sie den Dienst: systemctl restart snapd.

mmartin
quelle
2

Der Snap-Service ist für die Verwendung einer speziellen Umgebungsdatei konfiguriert. Sie können also einfach eine http_proxy-Variable hinzufügen, wenn Ihre aktuellen Umgebungsvariablen nicht vom Snap erfasst werden.

Datei öffnen:

sudo vim /etc/sysconfig/snapd

Hinzufügen:

http_proxy=http://127.0.0.1:3128
https_proxy=http://127.0.0.1:3128
Alexander
quelle
Es gibt kein sysconfig Ordner auf Ubuntu.
Smartmouse
1

Seien Sie vorsichtig, da der Snapd die Datei / etc / environment liest, anstatt die Variable ENV abzurufen. Das folgende Beispiel funktioniert nicht:

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

du musst benutzen:

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