自分の速さで

調べたこと、忘れそうなことをゆるゆると書いていく

プロキシ環境でrbenvを使ってrubyをインストールする

はじめに

会社のCentOSrailsを入れようと思った時に、プロキシ環境下だったためにインストールがうまくいかなかったので、備忘録用にメモ。

エラー内容

# rbenv install 2.1.5
Downloading ruby-2.1.5.tar.gz...
-> http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
error: failed to download ruby-2.1.5.tar.gz

BUILD FAILED (CentOS release 6.5 (Final) using ruby-build 20150130-2-g8106d8f)

多分プロキシのせいだろうと思って調べたら下記がヒット

解決までの流れ

curlwgetのプロキシ設定を変更

以下を実行してプロキシ設定を追加

# echo 'proxy = "https://proxy.hogehoge.net:8080/"' >> ~/.curlrc
# echo 'http_proxy = http://proxy.hogehoge.net:8080/' >> /etc/wgetrc
# echo 'https_proxy = https://proxy.hogehoge.net:8080/' >> /etc/wgetrc

httpsはいらなかったかもしれないです。

コマンドオプションを変更

プロキシ設定の変更だけではだめだったので、ruby-buildの中身を見てみた。

# vi /root/.rbenv/plugins/ruby-build/bin/ruby-build
http_head_curl() {
  curl -qsILf "$1" >&4 2>&1
}

http_get_curl() {
  curl -q -o "${2:--}" -sSLf "$1"
}

調べてみると、curlの-qオプションは指定するとcurlrc設定ファイルが読み込まれないとのこと。ということで以下のとおり-qオプションを除外する。

http_head_curl() {
  curl -sILf "$1" >&4 2>&1
}

http_get_curl() {
  curl -o "${2:--}" -sSLf "$1"
}

再度rbenvを実行

[root@SVT6360314547 ~]# rbenv install 2.2.0
Downloading ruby-2.2.0.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/7671e394abfb5d262fbcd3b27a71bf78737c7e9347fa21c39e58b0bb9c4840fc
Installing ruby-2.2.0...
Installed ruby-2.2.0 to /root/.rbenv/versions/2.2.0

うまくいった!