OSX Snow Leopard und ruby-debug

 

Wer unter OSX mit Ruby on Rails arbeitet, ist vielleicht nach dem Update auf Snow Leopard auf dasselbe Problem gestossen wie ich. Nämlich auf das Problem, dass sich Mongrel nicht mehr im Debug-Modus starten lässt.

Dabei wurde bei mir eine irreführende Meldung ausgegeben, dass ruby-gem installiert werden soll. Das war bei mir aber definitiv installiert und das liess sich auch leicht mittels

1
sudo gem list -d ruby-debug

prüfen.
Das wirkliche Problem wird durch eine ungünstige Fehlerausgabe in debugger.rb verheimlicht. Ich änderte diese Datei wie folgt ab:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
module Rails
module Rack
class Debugger
def initialize(app)
@app = app

require_library_or_gem 'ruby-debug'

::Debugger.start
::Debugger.settings[:autoeval] = true if ::Debugger.respond_to?(:settings)
puts "=> Debugger enabled"
rescue MissingSourceFile => e
puts "You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'"
exit
rescue Exception => e
puts "Error - " + __FILE__
puts e.inspect
exit
end
@app.call(env)
end
end
end
end

Nach erneutem Starten von Mongrel im Debug-Modus zeigte sich das wahre Problem:

1
2
Error - /Users/andy/Projekte/dooda/src/vendor/rails/railties/lib/rails/rack/debugger.rb
#

Das tatsächliche Problem lag nämlich in einer für Snow Leopard ungünstigen Universal Binary Version von linecache.

Sind die Developer-Tools von Apple installiert, so kann folgendermassen eine neue Version dieser Bibliothek gebaut und installiert werden:

1
2
3
4
5
sudo gem uninstall ruby-debug-base
sudo gem uninstall ruby-debug
sudo gem install ruby-debug-base
sudo gem install ruby-debug
sudo gem install linecache

Danach liess sich Mongrel wieder wie gewünscht starten.

Mich hat das einige Stunden gekostet, vielleicht erspart dir dieser Post ein wenig Zeit.