プロキシがある場合のツール等の設定いろいろ
会社勤めで開発していて面倒なのが、セキュリティの関係でインターネット接続時にプロキシ(しかも認証つき)を通らなくちゃいけないこと。このせいで少々面倒な目にも遭ってきたので、ある開発ツールを認証つきプロキシ環境で使う場合にどうすればいいかをいくつかまとめてみる。
全てWindows XPが対象。トンネルとか外部に踏み台を用意するとかの怪しげなことはしない。
Subversion(TortoiseSVN)
普通に設定項目にプロキシ設定があるので設定するだけ。
RubyGems
set http_proxy=http://<username>:<password>@<proxy-host>:<proxy-port>
GitHub
普通はHTTP/HTTPS/FTPくらいしか許可されていないはずなので、Gitプロトコルでの通信はできない。ただ、ありがたいことに GitHub はHTTPでのcloneをサポートしているので、普通に可能。
msysgitインストール済みと想定すると、まず RubyGems のときと同様に環境変数を指定してから、Clone URL の git を http に変える。たとえばRailsなら
git clone http://github.com/rails/rails.git
とか。pushとかは無理っぽい。
GitHubからRailsプラグインをインストールする場合も同じ。環境変数を設定した後、git: を http: に変えるだけ。
ruby script\plugin install http://github.com/rails/exception_notification.git
GitHub(push)
msysgitでGitHubにwriteアクセスしたい場合は、コマンドプロンプトで以下のようにする。
set https_proxy=http://<username>:<password>@<proxy-host>:<proxy-port>
Gemの場合と違って、https_proxy なので注意。この後、GitHub のリポジトリに書いてある HTTP Read-Write access 用のURLを使って
git clone https://<自分のアカウント>@github.com/<対象アカウント>/<リポジトリ>.git
とすれば、その後は git push origin master で普通にpushできる。
ただし、上記のように設定しても
error: error setting certificate verify locations: CAfile: /bin/curl-ca-bundle.crt CApath: none while accessing <リポジトリURL>
のようなエラーが出てしまう場合は、以下を実行。
git config --system http.sslcainfo <gitインストール先>\bin\curl-ca-bundle.crt
自分の場合、D:\bin\git 以下に msysgit の portable 版を置いていたので、
git config --system http.sslcainfo D:\bin\git\bin\curl-ca-bindle.crt
のようになった。
Eclipse
Galileo (3.5) になってつながらない場合はこちらを参照。
http://d.hatena.ne.jp/sardine/20090626
わたしの環境では、
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
だけ書けば、実際に通信するときにユーザ名とパスワードを入力するダイアログが出てくれたので、ユーザ名とパスワードは直接 eclipse.ini には書かなかった*2。
Pleiades All In One の Eclipse 3.7 Indigo JREつき版で、何を設定しても「HTTP プロキシー認証が必要です」と言われてしまう場合は、もしかしたら これ に該当するかも。
Maven2
C:\Documents and Settings\
<?xml version="1.0" encoding="UTF-8"?> <settings> <proxies> <proxy> <id>My Proxy</id> <active /> <protocol>http</protocol> <host>proxy-host</host> <port>proxy-port</port> <username>username</username> <password>password</password> <nonProxyHosts>127.0.0.1|*.example.com</nonProxyHosts> </proxy> </proxies> </settings>
参照:http://maven.apache.org/settings.html#Proxies
ちなみにJavadoc Plugin ではこの設定を使ってくれないバグがあるらしく外部へのJavadoc Linkは現状できない……