を使用していますUbuntu 14.04
。http proxy
コマンドラインで設定を変更したいです。これは、GUI(すべての設定 - >ネットワーク - >ネットワークプロキシ)で変更してボタンをクリックするのと同じですApply System Wide
。bash
スクリプト()で設定を動的に変更する予定なので、システムを再起動/ログオフしたくありません。
ベストアンサー1
私が理解したのは、GUIを介してシステム全体にプロキシを設定すると、次の3つのことです。
- 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)