poyopoyo0のブログ

poyopoyoのブログ

Web 関連のメモ書きブログです。

【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を実行してやると、問題が解消された。

 

【追記2】

$ rbenv global 2.1.2しても、$ ruby -vで表示される ruby のバージョンと一致しないことがある。その場合は

chaika.hatenablog.com

を参考に

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

としてやれば、$ rbenv version$ ruby -vが一致するようになった。

※ちなみに、.bash_profileへの書き込みだと、 Mac を再起動しない限り、設定が反映されないかもしれない。.bashrcへの書き込みであれば、シェルの起動と共に設定が反映される。

参考サイト:

qiita.com

 

【追記3】

Mac をクリーンインストールする際に、.rbenvなどの設定フォルダをバックアップコピーして

$ gem install bundle

を実行すると、

ERROR:  Loading command: install (LoadError)

のようなエラーが出てしまった。その際は、こちら

qiita.com

の記事を参考に、

$ brew install openssl
$ brew link openssl --force
$ rbenv uninstall 2.1.1
$ rbenv install 2.1.1

として、ログアウト&再ログインしてやれば、問題が解決した。