LoginSignup
6
7

More than 5 years have passed since last update.

rbenvでruby2.2.1インストールの手順

Posted at

はじめに

rubyを触りたいけど、バージョン別で触りたいなと思いrbenvを導入することにした。
以前なんとなく入れてみたことあるけど、手順とか覚えてないから
備忘録取りながらやってみる。

[OS]
- Ubuntu14.10

[インストール対象]
- rbenv : 0.4.0-146-g7ad01b2
- ruby : 2.2.1

※1 gccやmake,gitなど必要なものはあらかじめインストールされているものとする
 (なんかつまづいたらググって解決!)
※2 libffi-dev をapt-get(aptitude)でインストールしておく
 (でないとrubyインストールできない)

rbenvインストール

rubyのバージョンを切り替えるのに使う

  1. まずはrbenvのソースをcloneする
    git clone git://github.com/sstephenson/rbenv.git ~/.rbenv

  2. .zshrcに以下を追加
    eval "$(rbenv init -)"
    他のサーバとかでも共通で使えるようにしたいから、やっぱり以下に変更
    export RUBY_ROOT="${HOME}/.rbenv"
    if [ -d "${RUBY_ROOT}" ]; then
    PATH=${RUBY_ROOT}/bin:$PATH
    eval "$(rbenv init -)"
    fi

  3. .zshrcを保存したら再読み込みして確認
    rbenv --version
    バージョンが表示されれば成功!

ruby-buildインストール

rubyのインストールを簡単にしてくれる

  1. ruby-buildのソースをcloneする
    git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

  2. 動作確認
    rbenv install --list
    いっぱいバージョン情報が表示されれば成功!

2.2.1-type.patch を取得する

git clone https://gist.github.com/liamdawson/5b20f45ae59755dcbc9d

ruby2.2.1 インストール

rbenv install --patch 2.2.1 < [downloaded patch dir]/2.2.1-typo.patch

インストールできたか確認

rbenv versions
対象のバージョンがあれば成功

使用するrubyを設定する

rbenv global 2.2.1
rbevn rehash

rubyが設定されているか確認

rbenv version
対象のバージョンが表示されれば成功

[念のため以下も試す]
ruby --version
対象のバージョンが表示されれば成功

あとはrubyを楽しむだけ!w


やってて困ったこと

その一

こんなエラーが出た。。。

ubuS14 developer% rbenv install 2.2.1 [~]
Downloading ruby-2.2.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28
Installing ruby-2.2.1...

BUILD FAILED (Ubuntu 14.10 using ruby-build 20150413-11-g89a23a4)

Inspect or clean up the working tree at /tmp/ruby-build.20150430161255.4515
Results logged to /tmp/ruby-build.20150430161255.4515.log

Last 10 log lines:
./libffi-3.2.1/.libs/libffi.a: error adding symbols: 不正な値です
collect2: error: ld returned 1 exit status
Makefile:325: recipe for target '../../.ext/x86_64-linux/fiddle.so' failed
make[2]: *** [../../.ext/x86_64-linux/fiddle.so] Error 1
make[2]: Leaving directory '/tmp/ruby-build.20150430161255.4515/ruby-2.2.1/ext/fiddle'
exts.mk:177: recipe for target 'ext/fiddle/all' failed
make[1]: *** [ext/fiddle/all] Error 2
make[1]: Leaving directory '/tmp/ruby-build.20150430161255.4515/ruby-2.2.1'
uncommon.mk:189: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2

単純に libffi-dev というのを入れてないだけっぽい。。
ruby-buildで使っているみたいですね。(build-failure-of-fiddle-with-ruby-220)
以下のとこで簡単に説明してました
http://spring-mt.tumblr.com/post/26490987325/ruby-centos-6-2

外部関数インターフェイスのうち、マシンに依存する最も低いレイヤを提供するライブラリ

ふーん。。。
じ、時間できたらちゃんと調べよっとw

その二

こんなエラーがでた

ubuS14 developer% rbenv install 2.2.1 [~
Downloading ruby-2.2.1.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28
Installing ruby-2.2.1...

BUILD FAILED (Ubuntu 14.10 using ruby-build 20150413-11-g89a23a4)

Inspect or clean up the working tree at /tmp/ruby-build.20150430165744.30597
Results logged to /tmp/ruby-build.20150430165744.30597.log

Last 10 log lines:
rake 10.4.2
rdoc 4.2.0
./tool/rbinstall.rb:714:in rescue in block in <main>': uninitialized constant LoadErroe (NameError)
from ./tool/rbinstall.rb:712:in
block in '
from ./tool/rbinstall.rb:757:in call'
from ./tool/rbinstall.rb:757:in
block in '
from ./tool/rbinstall.rb:754:in each'
from ./tool/rbinstall.rb:754:in
'
uncommon.mk:246: recipe for target 'do-install-all' failed
make: *** [do-install-all] Error 1

いろいろ調べてわかったこと
rubyコンパイル時にエラー

ちゃんとエラーメッセージを読んでなかったので理由が分かるまでに結構時間かかった。。。the_yokochiさんありがとう!

ちゃんとエラーメッセージを見なさいって再確認させてもらいました!
(タイポとは。。ロードエッロエってなんだよちくしょう!)

手順で使ってるパッチも見つけることができましたw
パッチなしでも直接書き換えればOKみたいです。

参考URL(まとめ)

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7