Proxyが邪魔してRubyGemsでInstallできないとき

Rubyの標準パッケージマネージャ(?)であるRubyGemsでRubyパッケージをインストールする機会が増えてきた。 RubyGemsでインストールする際、ローカル環境に該当パッケージがない場合は、自動的にリモートインストールすると思うんだけど、このとき、プロキシ内にいると外部ネットワークにアクセスできず、
ERROR: While executing gem … (SocketError)
getaddrinfo: no address associated with hostname.
とかエラーが出てインストールできない。
こんなときは-pオプションでプロキシを設定してあげると、インストールできるようになる。

gem install パッケージ名 -r -p http://your.proxy.hostname:port_no


注意すべき点は、下記2点。

  1. http://…とHTTPを使用することを明示
  2. :8080のようにプロキシが使用しているポートを明示

-pオプションはRubyGemsのリモート系コマンドの共通オプションで、gem help installなどとするとusageが表示される。毎度プロキシを指定するのが面倒であれば、Windowsの場合(というか他のプラットフォームでRubyを使ったことがないだけです…)、http_proxyという環境変数に上記書式でプロキシを設定しておけば、指定しなくても済むようになる(けど、セキュリティ的にはたぶんよろしくない)。
gem install rails -r -p http://43.88.64.10:8080
gem install sqlite3 -r -p http://43.88.64.10:8080

コメント