今では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