コマンドラインでプロキシを介して「sudo apt-get update」を実行する方法は?


回答:


91

一部のリリースでは、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"

7
「https_proxy」も追加する必要がありますか?
TenLeftFingers 14年

2
$輸出http_proxyに=「ユーザー:パスワード@プロキシサーバ:ポート」、パスワードに特殊文字が含まれている場合- cyberciti.biz/faq/...
アレックスPunnen

2
「env_reset」の後に「env_keep」を追加するか、その場所に配置する必要がありますか?彼らは互いに対立しているように見えるので、両方を維持する意味がありますか?
ロドリゴ

デフォルトenv_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"が機能しました。ありがとう!-–
ロナルド

1
多くのブラウジングの後、これにつまずいた。これで私の問題が解決しました。
スディプタバサック

39

これを使って。

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";

5
これを編集して、その行を構成ファイルに追加する方法を説明することをお勧めします。コマンドラインでこれらの行を実行しようとしても、実行されません。現在、この答えは正しい考えに基づいていますが、初心者には役立ちません。に行を追加する必要があると言っているかどうかは完全には明らかではありませんapt.conf
エリアケイガン

驚くばかり !!!!魔法のように動作します
シャンタヌBedajna

私のシステムでは、
etc / apt / apt.conf.dの

1
@dldnh:ファイルを作成するか/etc/apt/apt.conf/etc/apt/apt.conf.d...に設定ファイルを配置して使用できます!:-)
ポールカラブロ

セミコロンを忘れないでくださいまたは取得しますE: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
フロリアンカステ

18

私のために働いたのは:

sudo http_proxy=http://yourserver apt-get update

http_proxyをエクスポートしてからsudo echo $ http_proxyを実行すると、エクスポートされた値が素直に出力されるため、これは少し奇妙です


1
$http_proxysudoが実行される前に展開されます。
ジェレミーリスト

1
これはDockerfileでうまくいきました!
Cory Ringdahl

必要に応じてプロキシのポートを忘れないでください:)
Gilad Peleg

11
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update

エクスポートにはsudoing は必要ありません。プロキシが匿名の場合は、proxyusername:proxypassword@一部を捨ててください。


:-(、「Webプロキシサービスへのアクセスが拒否されました!」エラーが発生しています
レンジットG

同じプロキシ設定は、次のような単純なものに対して機能しますwgetか?
オリ

はい..同じエラーが繰り返されます...
レンジットG

2
Acquire :: http :: Proxy " MYDOMAIN \ MYNAME:MYPASS@MY.PROXY.COM:MYPORT"で/etc/apt/apt.confを編集するのはどうですか?
レンジットG

これを〜/ .bashrcに追加することもできます。しかし恐ろしいセキュリティリスク。
スケイン

3

一時的な構成の場合、これを試すことができます:sudo bash -c 'http_proxy = "http:// <proxy_host>:<proxy_port> /" apt-get update'

これが必要なのは、環境変数を「root」アカウント用に定義する必要があるためです。前に行うとエクスポートは機能しません。

以下のために永久的な構成は、システムファイルを変更する必要があります。これは、ネットワークプロキシが実際に適用されていることを確認する方法に関する次の回答で既に説明されていますか?


:-(、「Webプロキシサービスへのアクセスが拒否されました!」というエラーが表示されます
レンジットG

おそらくログインとパスワードを入力する必要がありますか?":// <ユーザー>:<パス> @ <ホスト>:<ポート> / HTTP"もしそうならhttp_proxyには、フォームが必要です
ホイヘンス

3

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の世界では犠牲になっているようです。その後、ネットワークマネージャーの開発者に連絡する心がありませんでした。


私はcntlmをこの治療法として推奨します。ADを使用した認証を処理し、資格情報を必要とせずに127.0.0.1を使用するようにすべてのプロキシ設定を設定します。
ラズ

別のマシンで認証する必要がある場合は、パスワードのプレーンテキストを保存する必要があります。「暗号化」はセキュリティを追加しません。パスワードを使用するには、暗号化キーを同じデバイスに保存する必要があるためです。
ジェレミーリスト

ジェレミー、あなたはタツノオトシゴの開発者と同じセキュリティのオン/オフのアプローチを取っています。私はこのようなことを不可能にすることを言っているのではなく、ただ難しくするだけです。現時点では、ロックされていないUbuntuラップトップから資格情報を盗むのは簡単です-たぶん5回クリックするだけで手に入ります。同じことがWindowsにも当てはまりません-それはまだ可能かもしれませんが、私でさえそれをする方法を知りません。10分以内にWindowsマシンからパスワードを解除する簡単な方法はないため、誤ってワークステーションのロックを解除したままにしておくことができます。Ubuntuでも同じことを行い、辞任することもできます。それは十分ではありません。
スケイン

3

編集してみました/etc/apt/apt.confか?これを使用して、企業プロキシの背後でaptを使用します。

Acquire::http::proxy "http://user:password@host:port/";

シェル環境で$ http_proxyが定義されていない限り、aptはこの値を使用すると考えています(つまり、$ http_proxyが優先されます)。


apt.confがまだ使用されているかどうかわからない... 8.04から10.04に更新したとき、そのファイルのプロキシ設定を削除するまで、不可能な更新で終わりました-その後、Synapticで設定されたプロキシ設定は...再び機能
リトル・ジャワ

それは奇妙です-私は10.04でapt.confを使用します。このファイルの設定は、Synapticパッケージマネージャーの設定GUIで設定された設定とは別のものです。
ジョンブレット

1
はい、apt.confまだ使用する必要があります。を使用して、aptが設定したと考える構成設定を確認できますapt-config dump
スティーブビーティー

0

コマンドラインでプロキシ経由で「sudo apt-get update」を実行する場合は、以下のコマンドを使用します。

sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.