Ruby
Rails

Macでrbenv+ruby+bundler+railsの環境構築

More than 1 year has passed since last update.

今回は、MacでrbenvとRuby2.4系をインストールし、rubyのgemの一つであるbundlerからRails5系をインストールして開発環境を構築するための備忘録。


前提の環境


  • Homebrewインストール済み

  • Xcodeインストール済み


rbenvの役割

rbenvはRubyのバージョンを管理できるツールである。

システム全体へ特定のバージョンのrubyをインストールできるのは勿論のこと、ディレクトリごとにもバージョンを指定することができるので、複数のプロジェクトでバージョンを切り替えたり、テストすることが容易にできるようになる。


bundlerの役割

bundlerは、Rubyのライブラリであるgemのバージョン管理を行うことができるライブラリである。

gemについても、rbenvの時と同様に、ディレクトリごとにgemのバージョンが指定できるので、プロジェクトごとに管理ができるようになる。


rbenv+rubyインストール

まずは、Homebrewを使い、rbenvとruby-buildをインストール。インストール後はバージョンを確認する。

$ brew install rbenv ruby-build

$ rbenv --version
# => rbenv 1.1.0

rbenvへのパスを通す。

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

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

指定したバージョンのインストール方法は以下の通り。

# インストール可能なバージョンの一覧確認

$ rbenv install --list

# 指定したバージョンのインストール
$ rbenv install <version>

# インストールしたrubyのバージョンを調べる
$ rbenv versions

# 現在のディレクトで利用しているバージョンを調べる
$ rbenv version

環境全体の利用バージョンは、「rbenv global」で指定可能。

逆に特定のディレクトリのみでバージョンを変えたい場合は、そのディレクトリ上で「rbenv local」で指定する。

# システム環境全体

$ rbenv global <version>

# カレントディレクトリのみに適用
$ rbenv local <version>


bundlerのインストール

bundlerをgemからインストール。

$ gem install bundler

インストールが完了したら早速使ってみます。

Railsアプリケーション開発用の作業ディレクトリを作り、その中で「bundle init」を実行します。

$ bundle init

すると、Gemfileという設定ファイルが生成されるので、そこにインストールしたいgem名を記載し、「bundle install」することでインストールできます。

Gemfileをエディタで開き、デフォルトで記載されているgem "rails"の行をコメントを外す。


Gemfile

# frozen_string_literal: true

source "https://rubygems.org"

gem "rails"


そして、「bundle install」する。

$ bundle install --path=vendor/bundle

ここでポイントは、--pathオプションをつけてプロジェクト配下にgemをインストールすることです。このオプションを忘れるとrbenvで指定したバージョンのRubyに紐付かれてインストールされてしまうので忘れないように。

gemを利用する際は、「bundle exec」コマンドを使う必要がある。

$ bundle exec rails -v

だが、毎回「bundle exec」と打ってられないので、「rbenv-binstubs」というプラグインを入れれば省略できるそうな。

$ mkdir -p ~/.rbenv/plugins

$ cd ~/.rbenv/plugins
$ git clone https://github.com/ianheggie/rbenv-binstubs.git

# bundle install時に「binstubs」オプションをつける
$ bundle install --path=vendor/bundle --binstubs=vendor/bin

# 忘れずrehash
$ rbenv rehash