回答:
一部のリリースでは、sudoは、コマンドの実行時にすべての環境変数がすべてクリアされるように構成されます。http_proxyの値を保持してこれを修正するには、/ etc / sudoersを編集し、次を実行する必要があります。
visudo
次に、次のような行を見つけます。
Defaults env_reset
その後に追加します:
Defaults env_keep = "http_proxy ftp_proxy"
物事は期待通りに動き始めます。
この解決策を見つけてくれたUbuntuフォーラムのkdogksuに感謝します。
apt-getを修正するだけでなく、たとえばsynaptic、mintintallなどのグラフィカルなX11ユーティリティも修正するには、次の行で/etc/sudoers
ジョブを実行する必要があります。
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
これを使って。
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
これは私が使用するものです。完全に動作します。
また、Aptでは、個々の設定をの下のファイルに配置できる/etc/apt/apt.conf.d/
ため、上記とまったく同じ効果がありますが、.conf
ファイルに他の行がある場合は保守が簡単になる場合があります。
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
apt.conf
。
/etc/apt/apt.conf
、/etc/apt/apt.conf.d
...に設定ファイルを配置して使用できます!:-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
私のために働いたのは:
sudo http_proxy=http://yourserver apt-get update
http_proxyをエクスポートしてからsudo echo $ http_proxyを実行すると、エクスポートされた値が素直に出力されるため、これは少し奇妙です
$http_proxy
sudoが実行される前に展開されます。
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
エクスポートにはsudo
ing は必要ありません。プロキシが匿名の場合は、proxyusername:proxypassword@
一部を捨ててください。
wget
か?
一時的な構成の場合、これを試すことができます:sudo bash -c 'http_proxy = "http:// <proxy_host>:<proxy_port> /" apt-get update'
これが必要なのは、環境変数を「root」アカウント用に定義する必要があるためです。前に行うとエクスポートは機能しません。
以下のために永久的な構成は、システムファイルを変更する必要があります。これは、ネットワークプロキシが実際に適用されていることを確認する方法に関する次の回答で既に説明されていますか?。
Ubuntuは、プロキシの認証に対して非常に敵対的です。私は職場でUbuntuラップトップを使用していますが、破損の数は信じられないほどです。
Synaptic、Apt、Firefox、Chromiumなどはすべて、プロキシを指定するために異なる方法を使用しており、資格情報を安全に指定する場所はありません。
この件に関するいくつかのバグ:https : //bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070
https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138
https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827
https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630
エクスポートを使用するというOliの提案は、それを行う唯一の漠然と安全な方法です。プロキシサーバーがセカンダリ認証を使用してメイン認証サーバー(おそらくActive Directoryなど)の負荷を最小限に抑えている場合、プロキシサポートを "fudge"することもできます。これは、最初のプロキシ接続がADに対してプロキシによって認証され、その後、設定された期間(通常5分間)、他のすべての接続がそのユーザーであると「信頼」されます。そのため、Firefoxを開いてインターネットを閲覧し(どこでも可能)、プロキシを指定してユーティリティ(wget、synapticなど)を試すことができますが、ユーザー名は空白のままにします。
Ubuntuは、パスワードを簡単に読み取ることができるという理由だけで、一般にあらゆる企業環境に敵対的です。タツノオトシゴは主犯ですが、Network Managerも衝撃的です。PEAP認証済みネットワークに接続し、ラップトップを借りる人を確認するために、アプレットにパスワードを保存しました。Seahorseの開発者は不安を訴えることを拒否したため、ラップトップ共有はLinuxの世界では犠牲になっているようです。その後、ネットワークマネージャーの開発者に連絡する心がありませんでした。
編集してみました/etc/apt/apt.conf
か?これを使用して、企業プロキシの背後でaptを使用します。
Acquire::http::proxy "http://user:password@host:port/";
シェル環境で$ http_proxyが定義されていない限り、aptはこの値を使用すると考えています(つまり、$ http_proxyが優先されます)。
apt.conf
まだ使用する必要があります。を使用して、aptが設定したと考える構成設定を確認できますapt-config dump
。
コマンドラインでプロキシ経由で「sudo apt-get update」を実行する場合は、以下のコマンドを使用します。
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;