RubyMine 4.5 Debugging

Dieser Artikel wurde von Do, Hoang Viet am Samstag, 22. Dezember 2012 verfasst. Aktualisiert: 28.01.2014 18:53:45

Wie in bekannten Foren scheint es ein gängiges Problem mit dem Debugging von RubyMine 4.5 und Ruby 1.9.3 zugeben. Auf den Fehler sind wir beim Umstieg zu RubyMine selbst gestoßen. Wie wir den Debugger mit Mühe und Not zum Laufen bringen konnten, zeigen wir im folgendem Artikel.

Nach dem wir 3 Wochen lang Aptana (Rails), Netbeans und RubyMine gleichermaßen ausprobiert haben, haben wir uns letztenendlich für RubyMines entschieden.

Fehlversuch: Mangelne Zugriffsrechte

Nach dem reibunglosen 'Importieren' des - ehemals Netbeans - Projekt nach RubyMine, starten wir den Debugger und werden darauf hingewiesen, dass noch Komponente fehlen und ob wir dieser nicht nachinstallieren möchten.

 Nach einem Klick auf Yes kriegen wir die erste Fehlermeldung wegen mangelde Zugriffsrechte

AM Error running Development: <app-name>.heroku.com
Failed to Install Gems. Following gems were not installed:
.../config/rb/linecache19-0.5.13.gem:  While executing gem ... (Errno::EACCES)
Permission denied - C:/Program Files/Ruby/.../cache/archive-tar-minitar-0.5.2.gem
.../ruby-debug-base19x-0.11.30.pre10.gem:  While executing gem ... (Errno::EACCES)
[...]

Das lässt sich recht einfach lösen, indem wir RubyMines als Administrator starten (nur für die Installation der fehlende Gems). Hierzu einfach nochmal auf Debug nach dem Neustart als Admin klicken und anschließen wieder auf Yes.

Error running Development: <app-name>.heroku.com
Failed to Install Gems. Following gems were not installed:
[...]:  Error installing ruby-debug-base19x-0.11.30.pre10.gem:
ERROR: Failed to build gem native extension.
[...]

Das Zugriffsproblem ist gelöst, die Installation schlägt trotzdem fehlt, da die gewünschten Gems nicht erstellt werden können. Wir müssen sie daher manuell installieren.

Funktionierende Lösung

RubyMines braucht die beiden Gems:

  • ruby-debug-base19x und ruby-debug-ide.
  • Dieser beiden Gems benötigen wiederum archive-tar-minitarruby_core_source und linecache19.

Für die Installation öffnen wir die Konsole im Adminstrationsmodus und installieren die Gems über folgende Befehle:

gem install archive-tar-minitar
gem install ruby_core_source
gem install linecache19

Nach deren Installation folgen nun die eigentlichen Module. Leider gibt es Probleme mit der "stable" Version und wir müssen auf die Vorschauversionen zugreifen.

gem install ruby-debug-base19x --pre
gem install ruby-debug-ide --pre

Nun starten wir RubyMines neu und es sollte alles funktionieren.

GemFile-Lösung

Das Ganze können wir auch automatisieren. Nicht nur aus persönlichem Bequemlichkeit sondern auch wegen der Zusammenarbeit in Teams. Hierzu fügen wir die benötigten Gems in die GemFile

gem 'archive-tar-minitar'
gem 'ruby_core_source'
gem 'linecache19'
gem 'ruby-debug-base19x', '0.11.30.pre10'
gem 'ruby-debug-ide',     '0.4.17.beta14'

Das Debugging läuft üblicherweise nur auf den Entwicklungsmaschinen und sollte daher auch entsprend nur dann angeschaltet werden. Daher modifizieren wir den Abschnitt wie folgt.

group :development do
  gem 'archive-tar-minitar'
  gem 'ruby_core_source'
  gem 'linecache19'
  gem 'ruby-debug-base19x', '0.11.30.pre10'
  gem 'ruby-debug-ide',     '0.4.17.beta14'
end

Hinweis 1: Wechselwirkung mit 'debugger'-Gem

Es wird in einigen Forenbeiträgen geschrieben, dass die Gem 'debugger' Probleme verursacht, wenn die 5 hier vorgestellten Gems installiert werden.

Ihr könnt die Gem entfernen, in dem ihr die Zeile

gem 'debugger'

aus der GemFile löschen und mit

gem uninstall debugger

die Gem vom System entfernt. Der Debugger ist im Grunde ein Fork von ruby-debug. Es sollte also keine Nachteile in der Hinsicht entstehen.

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

  • Unity3D: Optionale Parameter

    Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Popular Threads

Share it on your network