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

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

ただいまの
回答率

90.40%

  • Ruby

    8503questions

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

  • Ubuntu

    1614questions

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

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

解決済

回答 3

投稿

  • 評価
  • クリップ 1
  • VIEW 5,385

tonkatu05

score 20

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)

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

check解決した方法

+1

みなさんご回答ありがとうございました。自己解決しました。
どうやら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"
}

ということでこの方法も諦めました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/02/13 21: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の証明書が期限切れらしいです...。

    キャンセル

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/16 23:15

    ご回答ありがとうございます。

    makeは既にインストールされていました。そのようなエラーは出ていないと思います。

    ```
    make --version
    GNU Make 3.81
    Copyright (C) 2006 Free Software Foundation, Inc.
    これはフリーソフトウェアです. 利用許諾についてはソースを
    ご覧ください.
    商業性や特定の目的への適合性の如何に関わらず, 無保証です.

    ```

    キャンセル

同じタグがついた質問を見る

  • Ruby

    8503questions

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

  • Ubuntu

    1614questions

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