質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

3回答

10551閲覧

rbenvでrubyのインストールができない

tonkatu05

総合スコア25

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

1グッド

2クリップ

投稿2016/02/13 11:07

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)

ダウンロードが失敗しているようなのですが、ググっても原因が全くわかりませんでした。

解決方法を知りたいです。よろしくお願いします。

masarusan24👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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 を叩いて見たところ、無事にインストールができました。

※ここから先は別の方法を試して手こずったという話です。読まなくていいです。

  1. サーバのSSL CA(認証局)証明書が古くてcurl がエラーになる件 この記事ではもうひとつの方法として cacert.pemを/etc/pki/tls/certs/ に放り込めば良いとのことでした。僕の環境(ubuntu14.04)では/etc/pki/tlsディレクトリが存在しておらず、新しくディレクトリを作ってcacert.pemを入れてみても何の変化もおきませんでした。ということでこの方法は諦めました...。

  2. また最初は-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

tonkatu05

総合スコア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

masarusan24

総合スコア55

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tonkatu05

2016/02/16 14:15

ご回答ありがとうございます。 makeは既にインストールされていました。そのようなエラーは出ていないと思います。 ``` make --version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. これはフリーソフトウェアです. 利用許諾についてはソースを ご覧ください. 商業性や特定の目的への適合性の如何に関わらず, 無保証です. ```
guest

0

ネットワークはつながっていますか?
ブラウザ、あるいは wget curl 等で、https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 を取得できますか?

投稿2016/02/13 11:44

otn

総合スコア84551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tonkatu05

2016/02/13 12:24

早速のご回答ありがとうございます。 ブラウザ、wget でのダウンロードは成功しましたが、curlを使ったら次のように言われました。 ``` $ 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の証明書が期限切れらしいです...。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問