Ruby 1.9.3p484 で ruby-debug19 をインストールする

Railsのデバッグに使いたかったので、ruby-debugをインストールした際に、Ruby 1.9.3p484だとうまく入らなかったのでメモ。

普通にgem install ruby-debug19 で入れたところ、

[root@localhost redmine]# rails s --debugger
/usr/local/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby-debug-base.rb:1:in `require': /usr/local/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so: undefined symbol: ruby_threadptr_data_type - /usr/local/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so (LoadError)

上記のエラーが出たので、下記を参考に

curl -OL http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
curl -OL http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem
gem install linecache19-0.5.13.gem ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p484/

--with-ruby-include はインストールされているRubyのソースディレクトリを指定。

あとGemfileに下記を追記。

gem 'ruby-debug19', :require => 'ruby-debug'

これでもエラーが変わらず、ruby-debug-base19-0.11.25 をみてしまっているように見えたので、gem list で ruby-debug-base19-0.11.25とruby-debug-base19-0.11.26の両方が入っていたので、gem uninstall で両方削除して、やりなおし。

gem uninstall ruby-debug-base19

Gemfileからもいったんコメントアウトしておいて、ruby-debug-base19-0.11.26、ruby-debug19の順でインストール。

#gem 'ruby-debug19', :require => 'ruby-debug'
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p484/
gem install ruby-debug19

Gemfileのコメントアウトしていた部分をもとに戻す。

gem 'ruby-debug19', :require => 'ruby-debug'

やっとうまくたちあがった。

[root@localhost redmine]# rails s --debugger
=> Booting WEBrick
=> Rails 3.2.6 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
=> Debugger enabled
[2014-05-24 16:40:33] INFO  WEBrick 1.3.1
[2014-05-24 16:40:33] INFO  ruby 1.9.3 (2013-11-22) [x86_64-linux]
[2014-05-24 16:40:33] INFO  WEBrick::HTTPServer#start: pid=3841 port=3000