Mac OS X で rbenv 開発環境を整えて実際にrailsプロジェクトを作ってみる

  • このエントリーをはてなブックマークに追加

rbenvのインストールとセットアップ

こちらの記事は、rbenvつかってrailsチュートリアルやってみよう!の記事から解説部分を除去して、Hot to 部分を抽出し、すこし上級向けのプラグインなどの紹介も盛り込んだものになります。

Mac Portsをアンインストール

パッケージ管理のhomebrewを利用しますが、同じパッケージ管理システムのMac Portsと競合してしまうので、Mac Portsをご利用の場合はアンインストールして下さい。詳しくはGoogleで検索。

Xcode Command line tools をインストール

rbenvをHomebrewでインストールしますが、Homebrewの利用には、Appleが提供するデベロッパー向けの開発環境であるXcodeのコマンドラインツールが必要になります。AppStoreでXcodeをインストールし(大容量のため有線LAN推奨)、さらにターミナルで次のようにしてコマンドラインツールをインストールします。

homebrewをインストール

homebrewを使ってrbenvをインストールするので、まずhomebrewをインストールします。

rbenvをインストール

PATHを通す必要はありません。`eval "$(rbenv init -)"`でPATHを通したりしてくれます。

Rubyをインストールする

利用可能なRubyの確認と、インストール

インストールできるRuby一覧を表示

例)Ruby2.0.0をインストールする

インストールには結構時間がかかります。時間があるときに、自分が利用する可能性のあるバージョンのRubyを揃えておくと良いと思います。

利用するRubyを設定、切り替えしてみる

コマンドでrubyと打った時に、どのRubyを使うか、rbenvで切り替えます。デフォルトのバージョン、このディレクトリではこのバージョンといった設定が可能です。

デフォルトのバージョンを設定

これによって、この次の「カレントディレクトリ以下で利用するRuby」が設定されていない場合、globalで宣言したRubyがデフォルトで利用されることになります。

カレントディレクトリ以下で利用するRubyを指定

.ruby-versionというファイルが出来て、バージョンが記録されます。.ruby-versionがあるディレクトリ以下でrubyコマンドを実行すると、.ruby-versionに書かれたRubyが呼び出される仕組みです。

Mac に最初から入っているRubyを利用する

バージョンを指定する部分に system と打ち込むと、Mac本体にインストールされていたRubyが実行されるようになります。

便利なプラグインを入れて拡張

ちょっとそのままだとrbenvは不便だったりします。でも便利にしてくれるプラグインがGithubで公開されています。プラグインを入れるには~/.rbenv/pluginsフォルダに入れます。Githubから直接pluginsフォルダにgit cloneしてしまいましょう。

rbenv-gem-rehash

rbenvを使っていると、gem install XXXと新しいgemをインストールしたときに、rbenv rehashしなければなりません。毎度面倒なので、自動で実行するようにしてくれるプラグインです。

もうこれがないと面倒過ぎます。絶対いれておきたいプラグイン。

rbenv-binstubs

bundlerでディレクトリローカルにインストールしたGemを、bundle exec XXXというようなbundlerを介したコマンドで実行するのではなく、XXXと直接実行できるようにするプラグイン。

bundle installの時に--binstubsオプションをつけます。そうするとbundle execをコマンドの頭に付けなくてもインストールしたgemを実行できるようになります。

仕組みは、binディレクトリが出来てそこに実行ファイルが集められ、そこにPATHが通るということのようです。

しかし、rails4のプロジェクトだとbinというディレクトリが標準で使われてしまっていて衝突します。なのでbundle installのタイミングで実行ファイル用ディレクトリをデフォルトのbinではないものに指定します。

一般的なディレクトリの指定はどのようなものが主流か、調べた所、一般的なbundle installしたgemのインストール先はvendor/bundle、一般的な実行ファイル置き場はvendor/binらしいです。次のようにbundle installするのが良さそうです。

rbenv-gemset

「このプロジェクトでつかうgem環境」「あっちのディレクトリでつかうgem環境」、もしくは「こんな作業をするときのgem環境」などを切り分けたいときに、gemのグループ「gemset」を作るためのプラグイン。

使い方は、rbenv gemset create 1.9.3-p125 my-setという感じ。gemの環境はRubyのバージョンごとに切り替わってしまうので、gemセットもバージョンごとに作成します。

gemsetを作ったら、そのgemsetを使いたいディレクトリでecho >.rbenv-gemsets my-setとやればOK。(要するに、.rbenv-gemsetsファイルが存在しその中にgemset名が記載されていると、そのディレクトリ以下で指定のgemsetが有効になる)

実際にこれらを駆使してRailsプロジェクトを作ってみる

というわけで実際にやってみましょう。

案件ごとにRubyのバージョンが違ったりRailsのバージョンが違ったりする場合に、混ざること無く作業環境を独立させることが出来て、プロジェクトをチームで共有しやすいように、という点に重きをおいているつもりです。仕事で使ったこと無いんで全く妄想の想定の下で作ってますが!

もっといい方法や、「ここに書かれた方法はエレガントではない」、というツッコミがあったらぜひお寄せ下さい。。

お役に立ちましたか?

  • このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です