hogehoge foobar Blog Style Beta

Web,Mac,Linux,JavaScript,Perl,PHP,RegExp,Git,Vim,Redmineなど技術的なことのメモや、ちょっと便利そうなものの紹介をしています。

yum/wgetをproxy経由で使う方法(CentOS)

CentOSでproxy経由でyumとwgetを使用するための設定のまとめです。

yumの場合

yum をproxy経由で使用する場合の設定方法は、以下のとおりになります。

proxyを通過できなくてyumが失敗する

proxy情報が正しく設定されていない場合、以下のように yum の実行時にエラーが発生します。

# yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=5&arch=i386&repo=addons error was
[Errno 4] IOError: <urlopen error (-2, '\xe5\x90\x8d\xe5\x89\x8d\xe3\x81\xbe\xe3\x81\x9f\xe3\x81\xaf\xe3\x82\xb5\xe3\x83\xbc\xe3\x83\x93\xe3\x82\xb9\xe3\x81\x8c\xe4\xb8\x8d\xe6\x98\x8e\xe3\x81\xa7\xe3\x81\x99')>
Error: Cannot find a valid baseurl for repo: addons
「/etc/yum.conf」を変更する

yum をproxy経由で使用する場合、「/etc/yum.conf」にproxy情報を記述します。
設定する項目は以下のような形になります。

対象ファイル /etc/yum.conf
項目名 設定値
proxy プロキシサーバーのアドレス:ポート番号 http://your.proxy.server:8080
proxy_username プロキシサーバーのユーザー名(認証アリの場合のみ指定) username
proxy_password プロキシサーバーのパスワード(認証アリの場合のみ指定) password

設定例)

# Proxy Setting
proxy=http://your.proxy.server:8080
proxy_username=username
proxy_password=password
proxy経由でのyumが成功する

もう一度「yum update」を実行してみます。

# yum update
Loaded plugins: fastestmirror
Determining fastest mirrors

〜 省略 〜

Complete!

今度は正常に「yum update」が実行できました。

補足)

「/etc/yum.conf」にproxy情報を設定する場合ですが、プロキシサーバーのユーザー名やパスワードに「@(アットマーク)」が含まれている場合、proxy認証が失敗して yum も失敗しました。
「/etc/yum.conf」にproxy情報を設定したのに yum が失敗する場合は、ユーザー名やパスワードに、「@」が含まれていないかを確認してみると良いと思います。

wgetの場合

wget をproxy経由で使用する場合の設定方法は、以下のとおりになります。

proxyを通過できなくてwgetが失敗する

proxy情報が正しく設定されていない場合、以下のように yum の実行時にエラーが発生します。

# wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
--2011-01-25 22:56:55--  http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
mirror.centos.org をDNSに問いあわせています... 失敗しました: 名前またはサービスが不明です.
wget: ホストアドレス `mirror.centos.org' を解決できませんでした。
「~/.wgetrc」を変更する

wget をproxy経由で使用する場合、ホームディレクトリ直下の「.wgetrc」にproxy情報を記述します。
※「~/.wgetrc」が存在しない場合は、新規でファイルを作成します。

設定する項目は以下のような形になります。

対象ファイル ~/.wgetrc ※ホームディレクトリ直下
項目名 設定値
http_proxy プロキシサーバーのアドレス:ポート番号 http://your.proxy.server:8080
proxy_user プロキシサーバーのユーザー名(認証アリの場合のみ指定) username
proxy_password プロキシサーバーのパスワード(認証アリの場合のみ指定) password

「/etc/yum.conf」と設定する内容はほぼ同じですが、項目名が若干違うので注意が必要です。

設定例)

# Proxy Setting
http_proxy=http://your.proxy.server:8080
proxy_user=username
proxy_password=password
proxy経由でのwgetが成功する

もう一度「wget」を実行してみます。
実行する際は、一度ログオフして再ログインが必要になります。

# wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
--2011-01-25 23:02:57--  http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
your.proxy.server をDNSに問いあわせています... 10.10.10.10 
your.proxy.server | 10.10.10.10 |:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1504 (1.5K) [text/plain]
`RPM-GPG-KEY-CentOS-5' に保存中

100%[====================================================================>] 1,504       --.-K/s 時間 0.1s

2011-01-25 23:02:58 (13.0 KB/s) - `RPM-GPG-KEY-CentOS-5' へ保存完了 [1504/1504]

今度は正常に「yum update」が実行できました。

今回参考にしたページ

proxy経由のyumとwget ページアウトされた記憶の残骸
http://take-blizzard.cocolog-nifty.com/blog/2008/07/proxyyumwget_e798.html

yumでproxy越え - 凸凹備忘録 Wiki
http://wikiwiki.jp/moja/?yum%A4%C7proxy%B1%DB%A4%A8