proxy経由でgem,pear,pip,npm,go-getを実行する方法

入門 Python 3

はじめに

PHPRuby、Go言語(golang)に引き続き、Python、Node.jsの勉強も始めました。

これで業務で使っているJavaVBPerlを加えると、全部で8言語!

まあ実際には業務で使う3言語以外は、せいぜい"Hello World"止まりなんですが。。

 

で、業務中も暇さえあれば未経験の言語を弄って遊んでいるんですが、社外のネットワークへのアクセスは当然ながらproxy経由となります。

 

そこで困るのがパッケージのインストール。

今やどの言語でもコマンド一発で依存関係まで解決してくれるパッケージ管理システムが備わっていますが、proxy経由だとエラーになってしまう!

 

そんなproxy問題の解決法を言語別にまとめてみたよ、というのが今回のお話。

 

結論

コマンドのオプション又は環境変数で指定する。

※プロキシ認証が無いなら"[ユーザー]:[パスワード]@"は省略可能

[Ruby]

  gem install [パッケージ名]  -p http://[ユーザー]:[パスワード]@[プロキシサーバ]:[ポート]

[PHP]

  pear config-set http_proxy http://[ユーザー]:[パスワード]@[プロキシサーバ]:[ポート]
  pear install [パッケージ名]

[Python]

  pip install [パッケージ名] --proxy=http://[ユーザー]:[パスワード]@[プロキシサーバ]:[ポート]

[Node.js]

  npm config set proxy http://[ユーザー]:[パスワード]@[プロキシサーバ]:[ポート]
  npm install -g [パッケージ名]

[golang]

  set http_proxy=http://[ユーザー]:[パスワード]@[プロキシサーバ]:[ポート]
  go get github.com/[パッケージ名]

 

 

まとめ

どの言語でも指定方法は大体似ていますが、微妙な違いもあります。

こういうのってなかなか覚えられなくて、結構苦労しますよね。

 

なお、プロキシ認証がある場合、パスワードの設定には注意してください。

私の職場もそうですが、パスワードが定期変更されていることを忘れて、環境変数に設定した古いパスワードで複数回認証失敗してしまい、アカウントロックさせてしまったことがあります。

 

当然何故ロックさせたのかを聞かれるわけで、「暇だったのでいろんなパッケージを入れて遊ぼうとしたらロックしました」などと言えるはずもありません。

本気で遊ぶなら、人様に迷惑をかけないようにこっそりと遊びましょう。