今ではBundlerのおかげでプロジェクトごとにgemを管理できるので、システムワイドに色々インストールされてカオスになることはなくなりました。

でもRailsアプリを新しく作る時に困った。アプリ新規作成にはRailsが必要。でもシステムワイドにgem install railsしたくない。でもまだRailsアプリを作っていないので当然ローカルのbundleにもRailsは入っていない。

…というループに陥った時の解決方法。

まずBundlerだけはどうしても必要なので、なければインストール。

% sudo gem install bundler

続いてプロジェクトディレクトリを作ってGemfileを書きます。

% mkdir testapp
% cd testapp
% vi Gemfile

Gemfileの内容はこんな感じでrailsだけを指定。

source "https://rubygems.org"
gem "rails"

--path指定付きでbundle installすればローカルにRailsが入ります。

% bundle install --path vendor/bundle

rails new . します。途中でGemfileを上書きするか聞かれるので。上書きしてください。

% bundle exec rails new .
exist
create README.rdoc
create Rakefile
create config.ru
create .gitignore
conflict Gemfile
Overwrite /Users/miyamae/Work/testapp/Gemfile? (enter "h" for help) [Ynaqdh] Y

Rails 3.2では、jquery-railsが見つからないと言われて途中で落ちるかもしれません。

/path/to/2.0.0-p0/lib/ruby/gems/2.0.0/gems/bundler-1.3.4/lib/bundler/resolver.rb:294:in `resolve': Could not find gem 'jquery-rails (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound)

その場合はもう一度 bundle install するとインストールできます。(Rails 4.0ではこのエラーは出ないようです)

% bundle install