rbenvを用いた開発環境の構築
Mac環境で仮想マシンを利用せずにRubyの環境構築を行います
rbenvを用いることで、Rubyのバージョン管理を容易に行えるようになります。
目次
- rbenv, ruby-buildのインストール
- rubyのインストール
- Rubyのローカルインストール
- Rubyのグローバルインストール
- railsのインストール
1. rbenv, rbuildのインストール
まずはじめに、rbenv, ruby-buildをインストールしていきます。
と、その前にrbenvとruby-buildの説明ですね。
rbenvとは
rbenvは、Rubyのバージョンを管理し、プロジェクトごとにRubyのバージョンを指定して使うことを可能とするツールです。
Rubyのバージョンによっては使えないGemが存在したり、プロジェクト(チーム)で環境が異なるとエラーの原因にもなりますので、
Rubyのバージョンを容易に変更できるrbenvは優れものです。
ruby-buildとは
ruby-buildはrbenvのプラグインで、Rubyをインストールするためのものです。
要は、ruby-buildでRubyのインストール、rbenvでRubyのバージョンを管理するということです。
それでは早速、rbenv, ruby-buildをインストールしていきます。
$ brew update
$ brew install rbenv ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
この4つのコマンドでrbenv, ruby-buildが利用可能となりました。
2. Rubyのインストール
次にRubyをインストールしていきます。
まずはインストール可能なRubyのバージョンを確認します。
$ rbenv install -l
そして次に実際にRubyをインストールしていきます。
今回はバージョン2.5.3をインストールします。
$ rbenv install 2.5.3
インストールできたか確認してみましょう。
$ rbenv versions
* system (set by /Users/********/Rails/.ruby-version)
2.5.3
このような表示がされたでしょうか。
Rails/.ruby-versionのRailsはアプリケーションを格納するディレクトリで、
このRailsディレクトリの中にたくさんアプリケーションを格納していきます。
次にRubyのバージョンを変えていきます。
3. Rubyのローカルインストール
特定のプロジェクトのみRubyのバージョンを指定したいときに利用します。
$ rbenv local 2.5.3
$ rbenv rehash
バージョンが変わったか確かめてみましょう。
$ ruby -v
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
もしくは以下のコマンドで確認できます。
$ rbenv version
2.5.3 (set by /Users/********/Rails/.ruby-version)
このような表示になれば、rubyのバージョン変更の成功です。
4. Rubyのグローバルインストール
こちらはローカルとは異なり、デフォルトのRubyのバージョンを指定します。
$ rbenv global 2.5.3
$ rbenv rehash
このコマンドを実行するディレクトリにRubyのローカルインストールをされた方は、.ruby-versionファイルを削除しましょう。
削除しないとバージョンの切り替えを行うことができません。
$ rm .ruby-version
再度、Rubyのバージョンを確認しましょう。
Rubyのバージョを切り替えることができたと思います。
今後、Rubyのバージョンを切り替えたい場合は、
Rubyのインストール→ローカル or グローバルで設定という流れです。
5. Railsのインストール
最後にRailsを利用できるようにインストールしていきます。
$ gem install bundler
$ gem install rails
これでRailsの環境構築できたはずです。
6. 最後に
ローカル環境にRuby on Railsをインストールしました。
最近だとDockerで構築したり、VM(仮想マシン)で構築することが多いと思いますが、
rbenvで構築するのが一番便利だと思っています。
最初はVMで構築した方が良い(環境を壊してもローカルのマシンには影響がないため)ですが、
慣れたらrbenvでRubyのバージョンを管理するのも良いと思います。