rbenvとruby環境の構築手順

公開日:2018/05/27 更新日:2018/05/27
rbenvとruby環境の構築手順のサムネイル

はじめに

WindowsのWindows Subsystem for LinuxでUbuntuを使いはじめ、その中にrbenvとruby環境を構築したのでその手順をメモします。

前提と手順概要

まずは、rubyのバージョン管理およびディレクトリ毎に異なるバージョンのrubyをインストールできるrbenvをインストールします。そのあと、rbenvを使ってrubyをインストールします。 以降の作業はUbuntuで行いました。UbuntuであればWindows Subsystem for Linux、仮想マシン、純粋なUbuntuのいずれでも同じ手順になります。思っていた以上に簡単に構築できました。

参考サイト

以下の公式サイトの手順ほぼそのままでいけました。 GitHub - rbenv/rbenv: Groom your app’s Ruby environment

準備

作業開始前に、事前にUbuntuにいくつかパッケージをインストールしておく必要があります。

$ sudo apt update
$ sudo apt install build-essentail
$ sudo apt install -y libssl-dev libreadline-dev zlib1g-dev

rbenvのインストール

自分のホームディレクトリに移動し、rbenv~./rbenvgit cloneします。URLはhttps://github.com/rbenv/rbenv.gitです。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '/home/vagrant/.rbenv'...
remote: Counting objects: 2714, done.
remote: Total 2714 (delta 0), reused 0 (delta 0), pack-reused 2714
Receiving objects: 100% (2714/2714), 506.25 KiB | 172.00 KiB/s, done.
Resolving deltas: 100% (1700/1700), done.
Checking connectivity... done.

以下のコマンドでrbenvのパスを通します。なお、Ubuntuの場合は以下のように/.bashrcにパスを書き込んでいます。 CentOS等では、書き込み先が/.bashrcではなく~/.bash_profileになりますのでご注意ください。

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

続いてrbenv initを実行。以下のように表示されます。

$ ~/.rbenv/bin/rbenv init
# Load rbenv automatically by appending
# the following to ~/.bashrc:

eval "$(rbenv init -)"

上記で指示される通り、以下を実行。

$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

その後、ターミナルを再起動します。Windows Subsystem for Linux を使っている場合は、単純にWindows Subsystem for Linux のコマンドプロンプトを閉じて再度開けばOKです。 もしくは、$ source ~/.bashrcで再読込してもいけると思います。 次に、rbenv installコマンドでRubyを簡単にインストールできるようにするために、ruby-biuldをインストールします。

ruby-buildのインストール

手順は公式サイト(GitHub - rbenv/ruby-build: Compile and install Ruby)に従いました。 まず、ruby-buildのインストール先となるpluginディレクトリを以下のコマンドで作成します。 以下は$(rbenv root)でrbenvのルートディレクトリ(/home/username/.rbenv)が得られるので、それを利用してmkdirpオプションも使って、単純にrbenvのルートにpluginsディレクトリを作成しているだけになります。試しにターミナル上でrbenv rootと実行すれば/home/username/.rbenvというように結果が表示されると思います。 mkdirpオプションは、必要に応じて中間のディレクトリもまとめて作成してくれます。

$ mkdir -p "$(rbenv root)"/plugins

あとは作成したpluginsディレクトリにruby-buildをクローンするだけです。 

$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'...
remote: Counting objects: 8816, done.
remote: Compressing objects: 100% (45/45), done.
remote: Total 8816 (delta 225), reused 237 (delta 207), pack-reused 8556
Receiving objects: 100% (8816/8816), 1.83 MiB | 394.00 KiB/s, done.
Resolving deltas: 100% (5658/5658), done.
Checking connectivity... done.

これでrbenv installが使えるようになりました。

rbenvを使ってrubyをインストール

まずインストール可能なrubyの候補一覧を表示してみます。

$ rbenv install -l

大量に表示されますが、表示されるもののうち、2.5.1のように数値だけ表示されているものがrubyのバージョンになります。 2018年5月27日時点では、2.5.1が最新となるため、以下のようにインストールします。少々時間がかかります。

$ rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
Installing ruby-2.5.1...
Installed ruby-2.5.1 to /home/vagrant/.rbenv/versions/2.5.1

Installed ruby-2.5.1 to /home/vagrant/.rbenv/versions/2.5.1と表示されればインストール完了です。 あとはrbenv globalでデフォルトで使いたいrubyのバージョンを指定します。

$ rbenv global 2.5.1

また、rbenv localで特定のディレクトリ毎で使いたいrubyのバージョンを指定します。

$ cd workdir 
$ rbenv local 2.5.1 # workdirではRuby 2.5.1 を使用

最後に設定を反映させるためにrbenv rehash

$ rbenv rehash

rubyのバージョンを確認

$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

以上で完了です。 なお、環境が適切かどうかを確認できるrbenv-doctorというものがあるので、実行してみると以下のように表示されると思います。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/vagrant/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /home/vagrant/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20180424-3-g16ac342)
Counting installed Ruby versions: 1 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK    

遭遇したエラー

rubyインストール時にBUILD FAILED

以下のようにrbenv installでrubyをインストールしようとしたところ、BUILD FAILED (Ubuntu 16.04 using ruby-build 20180329-3-g4dac7b1)と表示されました。

$ rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
Installing ruby-2.5.1...

BUILD FAILED (Ubuntu 16.04 using ruby-build 20180329-3-g4dac7b1)

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

Last 10 log lines:
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `apt-get install -y libssl-dev libreadline-dev zlib1g-dev` to fetch missing dependencies.

Configure options used:
  --prefix=/home/vagrant/.rbenv/versions/2.5.1
  LDFLAGS=-L/home/vagrant/.rbenv/versions/2.5.1/lib
  CPPFLAGS=-I/home/vagrant/.rbenv/versions/2.5.1/include

これは、冒頭で書いた以下のパッケージがインストールされていないためです。上記のエラーメッセージの中にもインストールするよう指示が書いてあるので親切ですね。 指示通りに以下インストールで解決できます。

$ sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev

Checking rbenv install support: bash: line 114: command not found

rbenv-doctorを実行時にChecking `rbenv install' support: bash: line 114: : command not foundと表示されました。これはruby-buildがまだインストールされていないために表示されます。ですので、もう一度ruby-buildがインストールされているか確認してみると良いと思います。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/vagrant/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: bash: line 114: : command not found
 ()
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/home/vagrant/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

Checking for rbenv shims in PATH: not found

こちらもrbenv-doctorを実行時にChecking for rbenv shims in PATH: not foundと表示されました。これはrbenvのパスが通っていないことが原因です。もう一度.bashrceval "$(rbenv init -)" が追記されているか確認してみるといいかもしれません。私は、Ubuntuで間違えて.bash_profileにパスを追記していたために表示されていました。echo 'eval "$(rbenv init -)"' >> ~/.bashrcを実行して解決します。

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/vagrant/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: not found
  The directory `/home/vagrant/.rbenv/shims' must be present in PATH for rbenv to work.
  Please run `rbenv init' and follow the instructions.

Checking `rbenv install' support: bash: line 114: : command not found
 ()
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/home/vagrant/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

まとめ

rbenvを使うことで簡単にruby環境を構築できました。当然かもしれませんが、Windows Subsystem for Linuxでも仮想マシンでも全く同様の手順でいけました。

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。