Ubuntu14.04LTSへrbenv&ruby-buildを利用してRuby2.xをインストール

タイトル通りUbuntu14.04へrbenvとruby-buildを利用してRuby2.xをインストールするメモ
(よくあるやつです)

Ubuntu14.04のRubyは1.9.3がデフォルトですが、Ruby 1.9.3のサポートは終了しています。[^1]
また、2系のパッケージもありますが、正しく導入できません。
そのためrbenvとruby-buildを利用してインストールすることにしました。
他のディストリビューションともRubyバージョンが合わせやすくなります。





#環境
Vagrant & VirtualBoxにおいてUbuntu14.04が稼働している環境
とりあえず”apt-get update”と”apt-get upgrade”し最新のUbuntu稼働状態(2015/4/8現在)





#Ubuntuバージョン確認
早速、稼働させているUbuntuバージョンを確認

```bash:コマンド
$ cat /etc/lsb-release
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"
vagrant@vagrant-ubuntu-trusty-64:~$
```




#rbenvインストール
さてインストールに入ります。
先ずはrbenvです。
インストール方法は、GitHubの[sstephenson/rbenv][rbenv]にある[Instration][rbenv-inst]に記述されています。
GitHubからクローンし.bashrcなどに利用設定をすることにより利用できるようになります。
また、gitを使用するので、gitパッケージを[インストール][git-inst]しておいてください。
gitがない場合に出力されるメッセージは[こちら][git-mess]。
[rbenv]:https://github.com/sstephenson/rbenv
[rbenv-inst]:https://github.com/sstephenson/rbenv#installation
[git-mess]:http://
[git-inst]:http://



##rbenvクローン
[rbenv][rbenv]をGitHubからクローンします。

```bash:コマンド
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Cloning into '/home/vagrant/.rbenv'...
remote: Counting objects: 2052, done.
remote: Total 2052 (delta 0), reused 0 (delta 0), pack-reused 2052
Receiving objects: 100% (2052/2052), 340.62 KiB | 291.00 KiB/s, done.
Resolving deltas: 100% (1272/1272), done.
Checking connectivity... done.
vagrant@vagrant-ubuntu-trusty-64:~$
```



##.bashrc設定
.bashrcにpathなどの設定をします。

```bash:設定
$ echo "" >> ~/.bashrc
$ echo "#" >> ~/.bashrc
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
```

設定直後に有効にするため実行します。
ログイン時に起動されますので、設定後にログインした場合、実行の必要はありません。

```bash:コマンド
$ source ~/.bashrc
```

```bash:確認
$ rbenv -v
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv -v
rbenv 0.4.0-146-g7ad01b2
vagrant@vagrant-ubuntu-trusty-64:~$ 
```


#ruby-buildインストール
ここからruby-buildのインストールになります。
[ruby-build][ruby-build]は[rbenv][rbenv]のプラグインです。
GitHubよりクローンすることにより利用できるようになります。
インストール方法は、GitHubの[sstephenson/ruby-build][ruby-build]に記述されています。
[ruby-build]:https://github.com/sstephenson/ruby-build





##ruby-buildクローン
[ruby-build][ruby-build]をGitHubからクローンします。

```bash:コマンド
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'...
remote: Counting objects: 4436, done.
remote: Total 4436 (delta 0), reused 0 (delta 0), pack-reused 4436
Receiving objects: 100% (4436/4436), 803.92 KiB | 383.00 KiB/s, done.
Resolving deltas: 100% (2307/2307), done.
Checking connectivity... done.
vagrant@vagrant-ubuntu-trusty-64:~$
```

##インストール対象バージョン確認
rbenv & ruby-buildでインストール可能なRubyのバージョンを確認します。

```bash:コマンド
$ rbenv install --list
```

```bash:ログ(抜粋)
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv install --list
Available versions:
    ・
    ・
    ・
  2.0.0-p594
  2.0.0-p598
  2.0.0-p643
    ・
    ・
    ・
  2.2.0
  2.2.1
    ・
    ・
    ・
  ree-1.8.7-2012.02
  topaz-dev
vagrant@vagrant-ubuntu-trusty-64:~$ 
```












#Rubyインストール
最後にRubyのインストールになります。
今回は上記で確認したバージョンから"2.0.0-p643"を対象にします。

OpenSSLライブラリーを使用するので、OpenSSLパッケージを[インストール][openssl-inst]しておいてください。
gitがない場合に出力されるメッセージは[こちら][openssl-mess]。
[openssl-mess]:http://
[openssl-inst]:http://

```bash:コマンド
$ rbenv install 2.0.0-p643
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv install 2.0.0-p643
Downloading ruby-2.0.0-p643.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/4bd267a4187e4bc25c1db08f9f9bdc0ce595a705569cac460d98c4f5b02e614e
Installing ruby-2.0.0-p643...
Installed ruby-2.0.0-p643 to /home/vagrant/.rbenv/versions/2.0.0-p643

vagrant@vagrant-ubuntu-trusty-64:~$
```

##インストールしたRubyの有効化

```bash:コマンド
$ rbenv global 2.0.0-p643
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv rehash
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv global 2.0.0-p643
vagrant@vagrant-ubuntu-trusty-64:~$
```

##Ruby有効化の確認

```bash:コマンド
$ ruby -v
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ ruby -v
ruby 2.0.0p643 (2015-02-25 revision 49749) [x86_64-linux]
vagrant@vagrant-ubuntu-trusty-64:~$
```
　


---
---

#参考

##gitインストールされていない場合
###初期パッケージにgitは入っていない
起動直後のUbuntuではgitがインストールされていないので、gitを利用するとインストールを促される。

```bash:gitインストールを促されるメッセージ
vagrant@vagrant-ubuntu-trusty-64:~$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
The program 'git' is currently not installed. To run 'git' please ask your administrator to install the package 'git'
vagrant@vagrant-ubuntu-trusty-64:~$
```

###gitインストール
git cloneするために、gitをインストールする。

#gitインストール
rbenvインストールするために”git clone”するもgitがないと怒られるためgitをインストールする

```bash:コマンド
$ sudo apt-get -y install git
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get -y install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  git-man liberror-perl
Suggested packages:
  git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk
  gitweb git-arch git-bzr git-cvs git-mediawiki git-svn
The following NEW packages will be installed:
  git git-man liberror-perl
0 upgraded, 3 newly installed, 0 to remove and 4 not upgraded.
Need to get 3,346 kB of archives.
After this operation, 21.6 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main liberror-perl all 0.17-1.1 [21.1 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main git-man all 1:1.9.1-1ubuntu0.1 [698 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ trusty-updates/main git amd64 1:1.9.1-1ubuntu0.1 [2,627 kB]
Fetched 3,346 kB in 7s (469 kB/s)
Selecting previously unselected package liberror-perl.
(Reading database ... 60959 files and directories currently installed.)
Preparing to unpack .../liberror-perl_0.17-1.1_all.deb ...
Unpacking liberror-perl (0.17-1.1) ...
Selecting previously unselected package git-man.
Preparing to unpack .../git-man_1%3a1.9.1-1ubuntu0.1_all.deb ...
Unpacking git-man (1:1.9.1-1ubuntu0.1) ...
Selecting previously unselected package git.
Preparing to unpack .../git_1%3a1.9.1-1ubuntu0.1_amd64.deb ...
Unpacking git (1:1.9.1-1ubuntu0.1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up liberror-perl (0.17-1.1) ...
Setting up git-man (1:1.9.1-1ubuntu0.1) ...
Setting up git (1:1.9.1-1ubuntu0.1) ...
vagrant@vagrant-ubuntu-trusty-64:~$
```

##OpenSSLライブラリーがない場合

```bash:OpenSSLが無いメッセージ
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv install 2.0.0-p643
Downloading ruby-2.0.0-p643.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/4bd267a4187e4bc25c1db08f9f9bdc0ce595a705569cac460d98c4f5b02e614e
Installing ruby-2.0.0-p643...

BUILD FAILED (Ubuntu 14.04 using ruby-build 20150319zf)

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

Last 10 log lines:
                              minitest 4.3.2
                              psych 2.0.0
                              rake 0.9.6
                              rdoc 4.0.0
                              test-unit 2.0.0.0
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
Configure options used:
  --prefix=/home/vagrant/.rbenv/versions/2.0.0-p643
  LDFLAGS=-L/home/vagrant/.rbenv/versions/2.0.0-p643/lib
  CPPFLAGS=-I/home/vagrant/.rbenv/versions/2.0.0-p643/include
vagrant@vagrant-ubuntu-trusty-64:~$
```










###OpenSSLライブラリーインストール
rbenvよりRubyをインストールするために、OpenSSLライブラリーをインストールする。

#OpenSSLライブラリーインストール
Rubyインストールに必要なOpenSSLライブラリーをインストールします。
依存関係するものもインストールされます。

```bash:コマンド
$ sudo apt-get -y install libssl-dev
```

```bash:ログ
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get -y install libssl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libssl-doc zlib1g-dev
The following NEW packages will be installed:
  libssl-dev libssl-doc zlib1g-dev
0 upgraded, 3 newly installed, 0 to remove and 4 not upgraded.
Need to get 2,223 kB of archives.
After this operation, 8,265 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main zlib1g-dev amd64 1:1.2.8.dfsg-1ubuntu1 [183 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libssl-dev amd64 1.0.1f-1ubuntu2.11 [1,072 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libssl-doc all 1.0.1f-1ubuntu2.11 [967 kB]
Fetched 2,223 kB in 11s (202 kB/s)
Selecting previously unselected package zlib1g-dev:amd64.
(Reading database ... 61707 files and directories currently installed.)
Preparing to unpack .../zlib1g-dev_1%3a1.2.8.dfsg-1ubuntu1_amd64.deb ...
Unpacking zlib1g-dev:amd64 (1:1.2.8.dfsg-1ubuntu1) ...
Selecting previously unselected package libssl-dev:amd64.
Preparing to unpack .../libssl-dev_1.0.1f-1ubuntu2.11_amd64.deb ...
Unpacking libssl-dev:amd64 (1.0.1f-1ubuntu2.11) ...
Selecting previously unselected package libssl-doc.
Preparing to unpack .../libssl-doc_1.0.1f-1ubuntu2.11_all.deb ...
Unpacking libssl-doc (1.0.1f-1ubuntu2.11) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up zlib1g-dev:amd64 (1:1.2.8.dfsg-1ubuntu1) ...
Setting up libssl-dev:amd64 (1.0.1f-1ubuntu2.11) ...
Setting up libssl-doc (1.0.1f-1ubuntu2.11) ...
vagrant@vagrant-ubuntu-trusty-64:~$
```

[^1]: https://www.ruby-lang.org/ja/news/2014/01/10/ruby-1-9-3-will-end-on-2015/






参考