プロキシ環境でrbenvを使ってrubyをインストールする
エラー内容
# 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)
多分プロキシのせいだろうと思って調べたら下記がヒット
解決までの流れ
curlとwgetのプロキシ設定を変更
以下を実行してプロキシ設定を追加
# 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
うまくいった!