【Rails】 rbenv で インストールした Ruby で Rails を動かすには
rbenv をインストールして Ruby をインストールするまでは、下の記事を参考にした。
rbenv を使って ruby をインストールする(CentOS編) - Qiita
上の記事は CentOS の記事だが、Mac (OS X 10.9.5) でもやることはだいたい同じ。
とりあえず今回は、Ruby 2.2.1 を rbenv でインストールしてみた。
以下を実行すれば、Rails が動く。
$ brew install rbenv
$ brew install rbenv-gem-rehash
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv install -v 2.2.1
$ rbenv global 2.2.1
$ rbenv versions
$ gem install bundle
$ bundle install --path vendor/bundle
$ mysql.server start (mysqlを使っていないのであれば、このコマンドは不要)
$ rake db:setup
$ bundle exec rails s
最初は bundle exec
を付けないで $ rails s
をしようとしたところ、 rbenv で指定した Ruby の gem でなく、システムの方の gem を参照してしまい、Could not find 'nokogiri'
とか出てしまって、解決するのにえらい苦労してしまった。。。
【追記1】
$ bundle install --path vendor/bundle
でnokogiriのインストールに失敗しているときがあるので、下記
https://gist.github.com/koudaiii/8d41c7c3f0aa7246a773
を参考に、$ bundle config build.nokogiri --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
としてやってから$ bundle install --path vendor/bundle
を実行してやると、問題が解消された。
$ rbenv global 2.1.2
しても、$ ruby -v
で表示される ruby のバージョンと一致しないことがある。その場合は
を参考に
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
としてやれば、$ rbenv version
と$ ruby -v
が一致するようになった。
※ちなみに、.bash_profile
への書き込みだと、 Mac を再起動しない限り、設定が反映されないかもしれない。.bashrc
への書き込みであれば、シェルの起動と共に設定が反映される。
参考サイト:
【追記3】
Mac をクリーンインストールする際に、.rbenv
などの設定フォルダをバックアップコピーして
$ gem install bundle
を実行すると、
ERROR: Loading command: install (LoadError)
のようなエラーが出てしまった。その際は、こちら
$ brew install openssl $ brew link openssl --force $ rbenv uninstall 2.1.1 $ rbenv install 2.1.1
として、ログアウト&再ログインしてやれば、問題が解決した。