プライベートのMacBook Airに環境構築しながらruby環境を考えてみた

Ruby使う時に怖いのが、環境依存

日進月歩で、環境がまちまちなWeb関連の開発。

ここで怖いのが、微妙なバージョン違いやインストールされているライブラリなどのバージョン違いなどによる不具合。

 

先日のElites Campでも、Gemのバージョン違いで結構時間食いました*1

 

職場でもRuby on Railsをを使ったWebサイトなどを使いたいけれども、この手のバージョン食い違い系トラブルを防ぐ必要がある。*2

 

で、開発環境はどうあるべきか?

Rubyスクリプトとしての利用)ではnokogiri使ったスクレイピングなど。

Railsでは外部に公開するもの、しないものを含めたサイト開発。公開時は仮想サーバに入れて丸ごとデプロイしたい。

 

ここで問題になるのが、Rubyそのものやrails含めたライブラリ類のバージョンの不整合など、環境依存の問題。

 

環境依存問題が発生しても、素早く切り替えて検証できるようにする。と。

 

では、どうやって?

 

この開発に使っているMacbook airでは・・・

 

Rails関係なく

 

とりあえず

rbenvを使って複数rubyバージョンを切り分ける。

gemも各バージョンのrubyで別途インストールする。

 

Rails環境では

 

Web上でしばしば述べられているように、プロジェクトごとにどのgemを使うか記述し、それぞれのディレクトリにインストールするようにする。*3

 

rbenvとBundlerに関しては、別途記事を書く予定

 

 

*1:本題と関係ないところで・・・。って気がしますが、ありがちな話。

*2:職場ではフルスタックエンジニア。Webサイトのプログラミングからサーバの設定、構築、チーム内のツールまで取り扱ってます

*3:よくよく考えてみれば、対象のRails使ったアプリを動かすのに必要なライブラリだけ用意すれば良い。使わないものはいらない。