Jak zainstalować pakiety Snap za serwerem proxy na Ubuntu 16.04


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.


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


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

6

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


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.