Bundlerやらgemやら

 

Rubyで開発をしだしてから半年弱が過ぎるわけですが、学べば学ぶほど奥深い世界が見えてきます。たぶんどの言語でもそうだと思いますが、最初はおまじないを唱えつつ進めていきますよね。そして、言語の基本的な事柄を理解してくるとその周辺のことが見えてきて、さらに深い世界を理解するという感じでしょうか。

そんなおまじないのようにいつも唱えていたものの中に

[sourcecode language="ruby"] bundle install [/sourcecode]

というものがあります。何となく、railsというアプリケーションをダウンロードしてインストールしてねという感じだろうと思っていたましたが、詳細はいまいち理解していませんでした。

また、RubyMineでプロジェクトを作成すると gemfile や gemfile.lock というファイルが作成されますがこちらについてもよく理解していませんでした。

で、これらは何かという話になりますが、WEB+DB PRESS Vol.66の Rubyわくわくなび に詳細が説明されています。いや、とてもわかりやすいです。

端的に言うと、.NETでいうところのdll hellが起こらないように考えられた各ライブラリのバージョン整合性をとることができるプログラムがBundlerということになります。つまり、.NETでいうところのGACとプロジェクトファイルに似ていますね。

Jenkinsなどのビルドツールを利用するようになると、自分が理解していなかったことを設定する機会が多くなります。このような書籍でピンポイントな説明は(タイミングがあるにしても)とても助かります。