Jak zainstalować pakiety Snap za serwerem proxy na Ubuntu 16.04

31

Wiem, jak skonfigurować APT do korzystania z serwera proxy sieci. Ale co z przystawką?

Carlos Estrada
źródło

Odpowiedzi:

24

snapdczyta /etc/environment, więc ustawienie tam zwykłych zmiennych środowiskowych proxy działa. W systemie Ubuntu jest to wykonywane automatycznie przez Ustawienia → Sieć → Proxy sieciowe, więc tak długo, jak uruchomisz ponownie snapdpo zmianie tego pliku, powinieneś być ustawiony.

Chipaca
źródło
2
Bardziej konkretnie, plik snapd.service znajduje się tutaj: /lib/systemd/system/snapd.service
julian-alarcon
1
@ darkhole nie należy edytować /lib/systemd/system/snapd.service, ale używać systemctl edit snapd.service. Zobacz moją odpowiedź: askubuntu.com/questions/659267/…
muru
1
A jeśli ktoś chce zautomatyzować tę konfigurację?
pmatulis,
2
Pamiętaj, że musisz ponownie uruchomić usługę snapd, zanim zmiany zostaną wprowadzone.
Seth
2
Metoda, którą tutaj opublikowałeś, również nie działa z uwierzytelnianiem. Snap powinien używać zwykłych zmiennych $ http_proxy i $ https_proxy env tak jak wszyscy inni. Oto link do śledzenia błędów Ubuntu dla tego problemu.
Teque5
27

W przystawce 2.28 dodano opcję systemową określającą serwer proxy.

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

Dokumentacja

Beta Kuang
źródło
1
To prawdopodobnie powinna być zaakceptowana odpowiedź.
Mygod
Używam snap / snapd 2.34.2na Ubuntu 16.04.5 i te opcje nie działają. Musiałem iść z askubuntu.com/a/1084862/75760 , zmieniając ustawienia
systemowe
1
To powinna być zaakceptowana odpowiedź
sayem siam
10

Istnieje inny sposób dodania zmiennych środowiskowych do usług systemowych:

Utwórz folder dla demona Snap i utwórz pliki konfiguracyjne dla zmiennych środowiskowych:

$ 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

Następnie możesz sprawdzić, czy zmienne środowiskowe są ustawione dla 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
źródło
6

Snap używa snapddemona. Wystarczy tylko określić http_proxyi https_proxyw /etc/environmenti ponownie uruchomić usługę: systemctl restart snapd.

mmartin
źródło
2

Usługa Snap jest skonfigurowana do korzystania ze specjalnego pliku środowiska, więc możesz po prostu dodać do niej zmienną http_proxy, jeśli twoje bieżące zmienne środowiskowe nie zostaną wykryte przez przyciąganie.

Otwórz plik:

sudo vim /etc/sysconfig/snapd

Dodaj:

http_proxy=http://127.0.0.1:3128
https_proxy=http://127.0.0.1:3128
Alexander
źródło
W sysconfigsystemie Ubuntu nie ma folderu.
smartmouse
1

Bądź ostrożny, ponieważ snapd czyta plik środowiskowy / etc / zamiast pobierać zmienną ENV. Poniższy przykład nie działa:

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

musisz użyć:

http://<your.ip.here>:3128
Zoltan Szabo
źródło