Как установить мгновенные пакеты за веб-прокси в Ubuntu 16.04

31

Я знаю, как настроить APT для использования веб-прокси. Но как насчет оснастки?

Карлос Эстрада
источник

Ответы:

24

snapdчитает /etc/environment, так что установка обычных переменных окружения прокси там работает. В Ubuntu это делается автоматически для вас через Настройки → Сеть → Сетевой прокси, поэтому при перезапуске snapdпосле изменения этого файла вы должны быть настроены.

Chipaca
источник
2
Более конкретно, файл snapd.service находится здесь: /lib/systemd/system/snapd.service
julian-alarcon
1
@ darkhole не нужно редактировать /lib/systemd/system/snapd.service, но использовать systemctl edit snapd.service. Смотрите мой ответ: askubuntu.com/questions/659267/…
muru
1
Ну что, если кто-то хочет автоматизировать эту конфигурацию?
pmatulis
2
Помните, что вам нужно будет перезапустить сервис Snapd, прежде чем эти изменения вступят в силу.
Сет
2
Метод, который вы разместили здесь, также не работает с аутентификацией. Snap должен использовать обычные переменные $ http_proxy и $ https_proxy env, как и все остальные. Вот ссылка для отслеживания ошибок Ubuntu для этой проблемы.
Teque5
27

Системная опция была добавлена ​​в оснастке 2.28 для указания прокси-сервера.

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

Документация

Бета Куанг
источник
1
Вероятно, это должен быть принятый ответ.
Mygod
Я использую snap / snapd 2.34.2в Ubuntu 16.04.5, и эти опции не работают. Пришлось идти с askubuntu.com/a/1084862/75760 , меняя настройки systemd
hanxue
1
Это должен быть принятый ответ
Саям Сиам
10

Есть еще один способ добавить переменные окружения в сервисы systemd:

Создайте папку для демона snap и создайте файлы конфигурации для переменных среды:

$ 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

После этого вы можете проверить, установлены ли переменные окружения для 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 использует snapdдемон. Вам нужно только определить http_proxyи https_proxyв /etc/environmentи перезапустить службу: systemctl restart snapd.

mmartin
источник
2

Служба моментальных снимков настроена на использование специального файла среды, поэтому вы можете просто добавить в нее переменную http_proxy, если ваши текущие переменные среды не будут получены моментальным снимком.

Открыть файл:

sudo vim /etc/sysconfig/snapd

Добавлять:

http_proxy=http://127.0.0.1:3128
https_proxy=http://127.0.0.1:3128
Александр
источник
В sysconfigUbuntu нет папки.
Smartmouse
1

Будьте осторожны, потому что snapd читает файл / etc / environment вместо получения переменной ENV. Этот пример ниже не работает:

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

Вы должны использовать:

http://<your.ip.here>:3128
Золтан Сзабо
источник