Cross version Ruby debug with ruby-debug-wrapper
When you debuging Rails 3 application (which uses Bundler) and trying different ruby versions with RVM you have following problem: you should switch your Gemfile between ruby-debug and ruby-debug19 gems to work with 1.8 and 1.9 Rubies. ruby-debug-wrapper gem solves the problem.
Follow this steps:
- Install ruby-debug gem for each ruby version you will use. For example:
[cc lang="bash" width="670"]
# rvm use system
# gem install ruby-debug
# rvm use ree@rails3
# gem install ruby-debug -- --with-ruby-include=$rvm_path/src/ree-1.8.7-2010.02/
# rvm use ruby-1.9.2-head@rails3
# gem install ruby-debug19 -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-head/
[/cc]
Ruby 1.9 + RVM + Ruby-Debug + Bundler
Как оказалось, установка отладчика ruby-debug для руби семейства 1.9 задачка не такая тривиальная, как кажется.
Во-первых, классический gem ruby-debug вообще не собирается под 1.9, но есть портированная версия, которая именуется ruby-debug19.
Во-вторых, ruby-debug19 тоже не заводится с полпинка. По умолчанию он ищет ruby19 где-то в недрах macports. А по-скольку этот способ установки руби нынче не в моде, то прийдется указать путь к сорцам руби явно. Например, для ruby 1.9.2 head установленного через rvm это выглядит так: