Yumが特定のドメインにプロキシを使用しないように指定する方法


12

yumがプロキシ設定をバイパスするドメインを指定することは可能ですか?これは不可能だと思います...

私は環境変数を使用することが可能であったことを読んでHTTP_PROXY、その後NO_PROXY、それは最もエレガントなソリューションですか?

[編集]

環境変数を使用してソリューションを試しました:

export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain

Yumはプロキシを使用しますが、リポジトリ* .domainはバイパスされません。

[回避策]

http://cntlm.sourceforge.net/を使用して、無視するドメインを構成できます。しかし、これはNTLM認証を必要とするプロキシでのみ動作します...

回答:


26

ここで説明するように、環境変数を使用してこれを機能させることはできませんでした。ただし、Yumはプロキシ自体をサポートしているため、次のようなことができるはずです。

proxy=http://proxy:port

yum.conf追加する

proxy=_none_

リポジトリ定義には、グローバルプロキシ経由でアクセスする必要はありません。これは、yum.confのマニュアルページに詳細に(ただし簡潔に)記載されています。


成功しました、ついに。ありがとう!私がやったすべてのホストをもう一度行きたくありません。しかし、必要に応じてプロキシをこれらのリポジトリファイルに直接追加することも可能でしょうか(たとえば、プロキシを必要としない内部パッケージマネージャーを使用するリポジトリファイルとは対照的に、外部パッケージサーバーのすべてのリポジトリ)
erikbwork

1
proxy=_none_素晴らしい、ありがとう。それは素晴らしいソースの船積みです。できれば2回アップ投票します:)
スコッティH

@erikbworkをproxy=http://proxy:port.repoファイルに追加したところ、機能しました。それはあなたが求めていることですか?
スコッティH

4

この質問を正しく理解した場合、望ましい動作は

packages.centos.comはプロキシ経由でプルされます

packages.internal.lanは、プロキシを経由せずに直接送信されます。

私は自分でこれを行う方法をグーグルで探してここにたどり着きました。上記の情報を使用して私が望んでいたことを達成しましたが、上記の答えが完全かどうかはわかりません。

これを行うには、次を使用しました。

export HTTP_PROXY=http://myproxy.internal.lan:port

export no_proxy=internal.lan

yum install package1 package2

package1はプロキシを介してインターネットからプルされ、

package2は、プロキシを通過せずにローカルミラーから取得されました。


3

私の解決策は、Privoxy、軽いhttpプロキシを設定することを含みます。

yumインストールprivoxy

/ etc / privoxy / configに2つのforward句を追加します。

 forward / myproxy.internal.lan:3128
 forward .internal.lan .

また、privoxyのデフォルトアクションを無効にします(ヘッダーが破損しないようにします):(RHEL5 privoxy configの@line 175)

#actionsfile standard  # Internal purpose, recommended
#actionsfile default   # Main actions file
#actionsfile user      # User customizations

次に、http_proxyおよびftp_proxy環境変数をprivoxyのポートに設定します。

宣言-x http_proxy = http://127.0.0.1:8118

宣言-x ftp_proxy = http://127.0.0.1:8118

yum install package1 package2

注:yum.confにプロキシ行がある場合、それを削除すると、環境変数が上書きされます。


ホストをprivoxyからホワイトリストに登録する方法を探していましたが、ここに答えがあります:)
ahmadali shafiee

2

リポジトリファイルで指定するだけです。例えば:

[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo  
[cloudera-cdh4]  
name=Cloudera's Distribution for Hadoop, Version 4  
baseurl=http://"yourhost"/cdh4/  
gpgcheck = 0
enabled=1
proxy=_none_

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.