アフィリエイト広告を利用しています

広告

posted by fanblog

Ruby1.9.2 + Rails3.0

gem で rails3 をインストールしようとしたところ以下の様なエラーが出た。
% sudo gem install rails
Password:
ERROR: Error installing rails:
activesupport requires Ruby version >= 1.8.7.

ruby は、1.9.2 インストールしたのになーと思って gem の環境を確認する。
% gem env
RubyGems Environment:
 - RUBYGEMS VERSION: 1.3.7
 - RUBY VERSION: 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]
 - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
 - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
 - EXECUTABLE DIRECTORY: /usr/bin
 - RUBYGEMS PLATFORMS:
   - ruby
   - universal-darwin-9
 - GEM PATHS:
    - /Library/Ruby/Gems/1.8
    - /Users/User/.gem/ruby/1.8
    - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
 - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :benchmark => false
    - :backtrace => false
    - :bulk_threshold => 1000
 - REMOTE SOURCES:
    - http://rubygems.org/

gem の環境的には、Ruby 1.8.6 を選んでいるらしい。
gem のしくみを全然理解せずに使っていたけど ruby のバージョンによってリポジトリを使い分ける必要があるわけか。まぁ、当然か。
Mac OS X の環境では、Ruby1.9.2 をインストールした際に、以下の様にインストールされている。
/opt/local/bin/ruby1.9
/opt/local/bin/gem1.9

なので、現在の gem(1.8) を gem1.8 に置き換えて gem1.9 を gem として置き換えてシンボリックリンクしておく。
% sudo mv /opt/local/bin/gem /opt/local/bin/gem1.8
% sudo cp -p /opt/local/bin/gem1.9 /opt/local/bin/gem
% ln -s /opt/local/bin/gem ~/bin/gem

(もちろん Ruby1.9 も必要であれば、同様にリンクしておく。)
% sudo mv /opt/local/bin/ruby /opt/local/bin/ruby1.8
% /opt/local/bin/ruby1.9 /opt/local/bin/ruby
% ln -s /opt/local/bin/ruby ~/bin/ruby

一度、shell に入り直して gem の環境を確認。
% gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i386-darwin9]
  - INSTALLATION DIRECTORY: /opt/local/lib/ruby1.9/gems/1.9.1
  - RUBY EXECUTABLE: /opt/local/bin/ruby1.9
  - EXECUTABLE DIRECTORY: /opt/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-9
  - GEM PATHS:
     - /opt/local/lib/ruby1.9/gems/1.9.1
     - /Users/User/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

gem が Ruby1.9系として動くことを確認できた。

gem を更新する。
% sudo gem update

rails を再度インストールしてみる。
% sudo gem install rails

エラーは、出ずに完了できた。
% gem list rails

*** LOCAL GEMS ***

rails (3.0.0)


rails のバージョンを確認
% rails -v
Rails 2.3.8

/opt 配下に設置された rails のバージョンを確認
% /opt/local/bin/rails -v
Rails 3.0.0

これもシンボリックリンクする。
% ln -s /opt/local/bin/rails ~/bin/rails

rails のバージョンを再確認
% rails -v
Rails 3.0.0


この後、実際にプロジェクトを作成した時に気がついたのが rake コマンド。
% rake db:migrate
(in /Users/User/rails3/aaa)
rake aborted!
uninitialized constant Bundler
/Users/User/rails3/aaa/Rakefile:4
(See full trace by running task with --trace)

abort する。

どうやら ruby1.8用の rake で動いていたらしい。
こちらも同様にシンボリックリンクして完了。
% sodu /opt/local/bin/rake /opt/local/bin/rake1.8
% sudo cp -p /opt/local/bin/rake1.9 /opt/local/bin/rake
% ln -s /opt/local/bin/rake ~/bin/rake


これで、無事に Ruby1.9.2 + Rails3.0 の環境ができました。
   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。