2014/12/09

Ruby on Rails 開発環境構築 in Mac OS X Mavericks

久しぶりに Ruby on Rails で開発することになり、開発環境を再構築しました。
関連: Mac OSX10.8でrbenvを使ってRuby1.9とRails4.0をインストールする

HomeBrew を使用するので MacPorts の人は読み替えてください。
また、僕は zsh を使っているので bash の人も読み替えてください。
HomeBrew や zsh をインストールしようという人は以下の事が参考になるかと思います。
Homebrew + Homebrew-caskで Mac の開発環境を構築する | DevAchieve
MacにHomeBrewとzshを導入してみた | DevAchieve

rbenv と ruby-build のインストール

brew install rbenv
brew install ruby-build
# rbenv の初期化
eval "$(rbenv init -)"
source .zshrc
eval "$(rbenv init -)" で rbenv へのパスを通すのとコマンドの補完や引数の処理、rehash をしています。
echo "$(rbenv init -)" で処理内容を確認できます。

rehashとは、
rbenv -h で確認すると以下のように書かれています。
rehash: Rehash rbenv shims (run this after installing binaries)
gem とか入れたらやれってことでいいのだと思います。
gem を入れまくると重くなる?のか rehash が重くなることがあるらしいです。
猫好きモバイルアプリケーション開発者記録 rbenv init が重い問題に対する対処法
gem を(アン)インストールしたら自動で rehash してくれる gem があるのでこれを入れておくと良いかも。
ryansouza/rbenv-rehash - github

依存パッケージのインストール

brew install readline
brew link readline
brew install openssl
brew link openssl

Ruby をインストールする

CONFIGURE_OPTS="--with-readline-dir=/usr/local --with-openssl-dir=/usr/local" rbenv install 2.1.5
CONFIGURE_OPTS="--with-readline-dir=/usr/local --with-openssl-dir=/usr/local" rbenv install まで
入力して Tab で補完すればバージョンを指定できます。

rehash して使用するバージョンを指定する

rbenv rehash
rbenv global 2.1.5

バージョンを確認する

rbenv version
2.1.5 (set by /Users/wada/.rbenv/version)
ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin13.0]

gem 管理システム bundler のインストール

Ruby のライブラリである gem をパッケージ管理できる Bundler をインストールします。
gem install bundler
基本的にシステムにgemをインストールせず、
bundler でプロジェクトごとに gem をインストールするのが環境をクリーンに保てて良いとされています。
Rails も bundler でインストールしたいと思います。

Rails をインストールする

% mkdir project
% cd project
% bundle init
Writing new Gemfile to /path/to/project/Gemfile
Rails プロジェクト作成する際にbundle initして Gemfile を作成します。
# A sample Gemfile
source "https://rubygems.org"

# gem "rails"
4行目のコメントアウトを外して以下のコマンドを実行すれば rails をインストールできます。
bundle install --path vendor/bundle
他の gem を追加するときも上のコマンドでプロジェクト内にインストールします。

bundle exec rails new .
bundler でインストールした gem は
プロジェクトのディレクトリで bundle exec を付けてコマンドを実行する必要があります。

参考
Ruby - システムのgemにrailsをインストールせずrails newする - Qiita

libiconv is missing. で gem install nokogiri が失敗する場合

Homebrew で libiconv とその依存パッケージをインストールします。
### For nokogiri
brew tap homebrew/dupes
brew install libiconv
brew install libxml2
brew install libxslt
brew link --force libxml2
brew link --force libxslt

nokogiri をインストールします。
gem install nokogiri -- --use-system-libraries
Bundler を使用している場合は以下のコマンドを実行します。
bundle config build.nokogiri --use-system-libraries
bundle install

参考
Ruby - bundle install でnokogiriをインストールしろと言われる - Qiita
OSX - Mac OS X Mavericksで”gem i nokogiri”失敗の解決方法 - Qiita

タグ(RSS)