Debian GNU/Linux Squeezeで Ruby 1.9.2 + Ruby on Rails 3.0

Ruby on Rails 3.0が登場したので、Ruby 1.9.2も合わせて導入する。

最初に依存性に泣かないためにDebainのパッケージを最新に。

% sudo apttitude update
% sudo aptitude safe-upgrade

次にRuby 1.9.2をインストール(現状だと、ruby1.9.1としてインストールされる)。

% sudo aptitude install ruby1.9.2

/usr/bin/ruby が /usr/bin/ruby1.9.1を指すように設定する。設定の仕方はkinneko@転職先募集中の日記:debianでgccのバージョンを切り替えるを参考にupdate-alternativesの機能をつかう。

% sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.8 0
update-alternatives: using /usr/bin/ruby1.8 to provide /usr/bin/ruby (ruby) in auto mode.
% sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 1
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in auto mode.
% sudo update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/ruby1.9.1   1         auto mode
  1            /usr/bin/ruby1.8     0         manual mode
  2            /usr/bin/ruby1.9.1   1         manual mode

Press enter to keep the current choice[*], or type selection number: 0
% ruby -v
ruby 1.9.2dev (2010-07-30) [i486-linux]

次にrubygemsをインストールするのに必要なライブラリーをインストールする。

% sudo aptitude install libyaml-ruby libzlib-ruby libopenssl-ruby1.9.1

rubygems 1.3.7をインストールしようとしたところ以下のエラー。

% tar xvfz rubygems-1.3.7.tgz
% cd rubygems-1.3.7
% sudo ruby setup.rb 
/tmp/rubygems-1.3.7/lib/rubygems/source_index.rb:68:in `installed_spec_directories': undefined method `path' for Gem:Module (NoMethodError)
	from /tmp/rubygems-1.3.7/lib/rubygems/source_index.rb:58:in `from_installed_gems'
	from /tmp/rubygems-1.3.7/lib/rubygems.rb:883:in `source_index'
	from /tmp/rubygems-1.3.7/lib/rubygems/gem_path_searcher.rb:81:in `init_gemspecs'
	from /tmp/rubygems-1.3.7/lib/rubygems/gem_path_searcher.rb:13:in `initialize'
	from /tmp/rubygems-1.3.7/lib/rubygems.rb:841:in `new'
	from /tmp/rubygems-1.3.7/lib/rubygems.rb:841:in `block in searcher'
	from <internal:prelude>:10:in `synchronize'
	from /tmp/rubygems-1.3.7/lib/rubygems.rb:840:in `searcher'
	from /tmp/rubygems-1.3.7/lib/rubygems.rb:479:in `find_files'
	from /tmp/rubygems-1.3.7/lib/rubygems.rb:983:in `load_plugins'
	from /tmp/rubygems-1.3.7/lib/rubygems.rb:1139:in `<top (required)>'
	from <internal:lib/rubygems/custom_require>:29:in `require'
	from <internal:lib/rubygems/custom_require>:29:in `require'
	from setup.rb:24:in `<main>'

原因はこちらに詳しい。でも、私はうまく対処できなかったのでここまで。