Як я розумію, встановлення проксі-серверів через систему GUI робить три речі:
- Встановіть відповідні значення в базі даних dconf.
- Встановіть значення в
/etc/environment
.
- Встановіть значення в
/etc/apt/apt.conf
.
1 і 3 набирають чинності негайно. /etc/environment
аналізується при вході в систему, тому для вступу в силу вам потрібно буде вийти з системи та увійти. (Зверніть увагу, що це власне вхід, а не просто запуску оболонки для входу.) Наступний скрипт повинен бути еквівалентним (припускаючи http / https проксі):
#! /bin/bash
HTTP_PROXY_HOST=proxy.example.com
HTTP_PROXY_PORT=3128
HTTPS_PROXY_HOST=proxy.example.com
HTTPS_PROXY_PORT=3128
gsettings set org.gnome.system.proxy mode manual
gsettings set org.gnome.system.proxy.http host "$HTTP_PROXY_HOST"
gsettings set org.gnome.system.proxy.http port "$HTTP_PROXY_PORT"
gsettings set org.gnome.system.proxy.https host "$HTTPS_PROXY_HOST"
gsettings set org.gnome.system.proxy.https port "$HTTPS_PROXY_PORT"
sudo sed -i.bak '/http[s]::proxy/Id' /etc/apt/apt.conf
sudo tee -a /etc/apt/apt.conf <<EOF
Acquire::http::proxy "http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/";
Acquire::https::proxy "http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/";
EOF
sudo sed -i.bak '/http[s]_proxy/Id' /etc/environment
sudo tee -a /etc/environment <<EOF
http_proxy="http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/"
https_proxy="http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/"
EOF
Навіть незважаючи на те, що для повторного входу в PAM потрібно застосовувати /etc/environment
всюди, у поточній оболонці ви все одно можете витягти значення у цьому файлі:
export http_proxy=$(pam_getenv http_proxy)
sudo service network manager restart
.