Ubuntu 14.04にrbenvでRubyを入れようと思い、下記サイトに沿って進めていきました。
Ruby on Rails 4.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました
そしてrubyをインストールする段階で次のエラーになりました。
$ rbenv install 2.3.0 Downloading ruby-2.3.0.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 error: failed to download ruby-2.3.0.tar.bz2 BUILD FAILED (Ubuntu 14.04 using ruby-build 20160130-6-g9e57fb0)
ダウンロードが失敗しているようなのですが、ググっても原因が全くわかりませんでした。
解決方法を知りたいです。よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
自己解決
みなさんご回答ありがとうございました。自己解決しました。
どうやらcurlの問題だったらしいです
otnさんのアドバイスで$ curl https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 を実行してみました。
$ curl https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 curl: (60) SSL certificate problem: certificate has expired More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option.
SSLの証明書が期限切れということで、--cacert オプション で CA certsを指定しろ、もしくは-k(--insecure)オプションで証明書の確認を無視しろと言われました。
ここからはこの記事を参考にしました(CA certsを指定する方法)
サーバのSSL CA(認証局)証明書が古くてcurl がエラーになる件
http://curl.haxx.se/ca/cacert.pem を取ってきて環境変数CURL_CA_BUNDLEにcacert.pemのパスを指定します。(.zshrcや.bashrcにexport を書いておきます)
すると$ curl https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz が正常に動くようになりました。
そして$ rbenv install 2.3.0 を叩いて見たところ、無事にインストールができました。
※ここから先は別の方法を試して手こずったという話です。読まなくていいです。
-
サーバのSSL CA(認証局)証明書が古くてcurl がエラーになる件 この記事ではもうひとつの方法として cacert.pemを/etc/pki/tls/certs/ に放り込めば良いとのことでした。僕の環境(ubuntu14.04)では/etc/pki/tlsディレクトリが存在しておらず、新しくディレクトリを作ってcacert.pemを入れてみても何の変化もおきませんでした。ということでこの方法は諦めました...。
-
また最初は-k(--insecure)オプションで証明書の確認を無視する方法でやってみようと思い、$ curl -k https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 を実行したら正常に動きました。
しかしrbenv install をするにはこの-kオプションをどこに書き込めば良いかイマイチわかりませんでした。
~/.rbenv/plugins/ruby-build/bin/ruby-build内の下記部分のcurlに-kオプションを追加してみたのですが、うまくいきませんでした...。
http_head_curl() { options="" [ -n "${IPV4}" ] && options="--ipv4" [ -n "${IPV6}" ] && options="--ipv6" curl -qsILf ${options} "$1" >&4 2>&1 } http_get_curl() { options="" [ -n "${IPV4}" ] && options="--ipv4" [ -n "${IPV6}" ] && options="--ipv6" curl -q -o "${2:--}" -sSLf ${options} "$1" }
ということでこの方法も諦めました。
投稿2016/02/21 07:04
総合スコア25
0
私も同じサイトを参考にして同じようなエラーになりましたが、下記のようなメッセージが出ていませんでしたか?
checking if make is GNU make... ./configure: line 23197: make: command not found no checking for safe null command for make... configure: error: no candidate for safe null command
どうやらmakeコマンドがインストールされていないようだったので、sudo apt-get install make
を実行後、再度rubyをインストールしてみたところうまくいきました。
一度試してみてはいかがでしょうか。
投稿2016/02/15 08:06
総合スコア55
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ネットワークはつながっていますか?
ブラウザ、あるいは wget curl 等で、https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 を取得できますか?
投稿2016/02/13 11:44
総合スコア84645
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/13 12:24
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。