HowTo: Ubuntu 11.4 + Ruby 1.9.2 + RubyDebug + Aptana Studio 3.0.2

Die Anleitung basiert auf Ubuntu 11.4, sollte sich aber auch auf andere Versionen portieren lassen.

Zuerst prüfen wir ob schon ein ruby installiert ist:

user@computer:$ which ruby

Wenn die Ausgabe leer bleibt können wir weiter machen. Zuerst benötigen wir einige grundlegende Abhängigkeiten:

user@computer:$ sudo aptitude install git ruby curl

Reading package lists... Done
Building dependency tree
<-- Output Snipped -->

Danach installieren wir den RVM (Ruby Version Manager). Der RVM installiert Ruby in das User-Home Verzeichnis (Single-User installation) was für eine Entwicklungsumgebung am sinnvollsten ist. Eine genaue Anleitung dazu findet man auf der offiziellen Homepage:

http://rvm.beginrescueend.com/rvm/install/

user@computer:$ bash < <( curl https://rvm.beginrescueend.com/releases/rvm-install-head )

<-- Output Snipped -->
* For JRuby (if you wish to use it) you will need:
$ aptitude install curl sun-java6-bin sun-java6-jre sun-java6-jdk
* For MRI & ree (if you wish to use it) you will need (depending on what you are installing):
$ aptitude install build-essential bison openssl libreadline5 libreadline-dev curl git-core zlib1g zlib1g-dev libssl-dev vim libsqlite3-0 libsqlite3-dev sqlite3 libreadline-dev libxml2-dev git-core subversion autoconf
* For IronRuby (if you wish to use it) you will need:
$ aptitude install curl mono-2.0-devel

<-- Output Snipped -->

WARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc.
This means that if you see '[ -z "$PS1" ] && return' then you must change this line to:
if [[ -n "$PS1" ]] ; then
... original content that was below the && return line ...
fi # <= be sure to close the if.
#EOF .bashrc
Even if you use zsh you should still adjust the .bashrc as above.
If you have any questions about this please visit #rvm on irc.freenode.net.

Installation of RVM to /usr/local/rvm/ is complete.

Wie wir an der Ausgabe gesehen haben warnt uns das Installations-Script noch vor einen “return” Statement in unserer .bashrc. Wir sind brav und folgen den Anweisungen des Installers:

user@computer:$ nano .bashrc

Nun suchen wir die Zeile

[ -z "$PS1" ] && return

und ersetzen sie mit dieser

if [[ -n "$PS1" ]]; then

Nun müssen wir ganz am Ende der .bashrc noch folgende Zeile einfügen

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

fi

das “fi” ganz am Ende nicht vergessen! Nun speichern wir die Datei mit Strg+o und beenden den nano mit Strg+x.

Jetzt prüfen wir ob der rvm richtig funktioniert

user@computer:$ rvm notes

wenn hier nun einige Details über die Installation des RVM angezeigt werden haben wir alles richtig gemacht.

Um den RVM richtig verwenden zu können braucht Ubuntu noch ein paar Libs

user@computer:$ sudo aptitude install build-essential bison openssl libreadline5 libreadline-dev curl git-core zlib1g zlib1g-dev libssl-dev vim libsqlite3-0 libsqlite3-dev sqlite3 libreadline-dev libxml2-dev git-core subversion autoconf

<-- Snipped -->

Nun ist es an der Zeit ruby zu installieren.

user@computer:$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.6-head
[ruby-]1.8.7[-p352]
[ruby-]1.8.7-head
[ruby-]1.9.1-p378
[ruby-]1.9.1[-p431]
[ruby-]1.9.1-head
[ruby-]1.9.2[-p180]
[ruby-]1.9.2-head
ruby-head
<-- snipped -->

Der Output ist noch größer wir interessieren uns aber nur für die MRI packages. Dann ab und ruby installieren

user@computer:$ rvm install 1.9.2-head
<-- Output Snipped -->
info: Installing ruby-1.8.7-p302
<-- Output Snipped -->
info: Installing rubygems dedicated to ruby-1.8.7-p302...
<-- Output Snipped -->
info: Installing ruby-1.9.2-head
<-- Output Snipped -->
info: Updating rubygems for /usr/local/rvm/gems/ruby-1.9.2-head

Es wir zuerst ruby1.8 installiert was aber völlig normal ist. Danach setzen wir noch unsere ruby default Version und prüfen ob alles funktioniert hat

user@computer:$ rvm --default 1.9.2-head
ruby -v
ruby 1.9.2p289 (2011-07-04 revision 32391) [i686-linux]

Jetzt müssen wir noch ruby-debug installieren. Das hat mir die meiste Zeit geraubt. Aber wenn man weiss wie es geht ist es eigentlich ganz einfach. Gebt folgendes in die Shell ein

user@computer:$ gem install dev-utils
<-- skipped -->

…danach…

user@computer:$ gem install linecache19 -- --with-ruby-include=/home/sascha/.rvm/src/ruby1.9.2-head
<-- skipped -->

und dann noch

user@computer:$ gem install ruby-debug19 -- --with-ruby-include=/home/sascha/.rvm/src/ruby1.9.2-head
<-- skipped -->

danach installieren wir noch die ruby-debug-ide19

user@computer:$ gem install ruby-debug-ide19 -- --with-ruby-include=/home/sascha/.rvm/src/ruby1.9.2-head
<-- skipped -->

Ihr müsst natürlich den Pfad zur eurer ruby-1.9.2 src installation angeben.

Jetzt sollte alles soweit funktionieren und eingerichtet sein. Nun könnt ihr euch unter www.eclipse.org noch das aktuelle Eclipse installieren und dann von www.aptana.com das aktuelle Aptana Studio 3.0.3 als Plugin installieren. Wie das geht erkläre ich hier nicht, zumal es ausführlich auf der Webseite von Aptana beschrieben ist.
Falls Aptana den Debugger nicht finden sollte, dann einmal in die Konsole wecheln und folgendes eingeben

user@computer:$ gem environment

RubyGems Environment:
- RUBYGEMS VERSION: 1.6.2
- RUBY VERSION: 1.9.2 (2011-07-04 patchlevel 289) [i686-linux]
- INSTALLATION DIRECTORY: /home/sascha/.rvm/gems/ruby-1.9.2-head
- RUBY EXECUTABLE: /home/sascha/.rvm/rubies/ruby-1.9.2-head/bin/ruby
- EXECUTABLE DIRECTORY: /home/sascha/.rvm/gems/ruby-1.9.2-head/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /home/sascha/.rvm/gems/ruby-1.9.2-head
- /home/sascha/.rvm/gems/ruby-1.9.2-head@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/


Nun den Pfad von EXECUTABLE DIRECTORY kopieren und zur Umgebungsvariable $PATH hinzufügen

user@computer:$ sudo nano /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/sascha/.rvm/gems/ruby-1.9.2-head/bin"


Nach einem Neustart von Ubuntu lassen sich nun unsere Ruby Programme über Aptana ausführen und Debuggen!

13 Responses to “HowTo: Ubuntu 11.4 + Ruby 1.9.2 + RubyDebug + Aptana Studio 3.0.2”

  1. neku says:

    hallo alle

    ich plage mich seit tagen mit der einrichtung eines ruby-ide mit debuger. freeride habe ich bereits verworfen und rde tutet auch nicht wie es sich gehoert.

    aus verzweifelung habe ich aptana installiert obschon es mich gar nicht anmacht fuer kleinigkeiten jedes mal den moloch zu starten (ich moechte ruby nur lernen und besser verstehen). in aptana (obschon angegeben und aufgefuehrt) funktioniert der debuger ebenfalls nicht.

    muss ich auf linux wechseln? ist es fuer diesen zweck nicht etwas zu aufwendiges unternehmen?

    oder weisst da jemand vielleicht wie ich es doch noch auf win-xp fertig bringen koennte?

    fuer vorschlaege oder (noch besser) loesungen danke im voraus.

  2. Sascha says:

    1) Installiere dir den ruby installer 1.9.2 von hier: http://rubyinstaller.org/downloads/
    2) Installiere dir das DevKit von hier: http://github.com/downloads/oneclick/rubyinstaller/DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe
    3) Entpacke es nach C:\DevKit
    4) In einem Terminal folgendes eingeben:
    cd C:\DevKit
    ruby dk.rb init
    ruby dk.rb install
    5) Nun mit gem weiter:
    gem install dev-utils
    gem install linecache19
    gem install ruby-debug19
    gem install ruby-debug-ide19

    Und das sollte es dann gewesen sein!

  3. neku says:

    hallo sascha
    danke fuer die anleitung. ich habe mir (den ganzen vormittag heute) die zeit genommen, die bisherige ruby installation restlos zu loeschen und nach deiner anweisung eine neue vorzunehmen. ohne erfolg.. es sieht naemlich gleich, wenn nicht wilder aus, wie auch schon.. ohne anleitung.
    das programm sucht in: “C:/Ruby192/lib/ruby/1.9.1/debug.rb” nach informationen die offensichtlich nicht passen. es hat keinen sinn hier die fehlermeldungen aufzulisten.. es sind ganze 1650 zeilen!
    ist es moeglich, dass man (im RDE) andere parameter verwenden muss? ich habe die urspr. “-r debug2″ auf “-rdebug” abgeaendert. -rdebug ist auch das einzige was reagiert. alles andere gibt loaderror aus.
    es ist so demotivierend! gibt es wirklich keine vernuenftige moeglichkeit ruby zu debuden? es muss ja nicht die neuste (192) version sein!
    gruss.

  4. neku says:

    hallo,
    sieht so aus, dass wir am ende mit dem latein sind. tja..
    wo nichts ist kann man nichts nehmen.
    danke fuer die “sollte” loesung..
    schade fuer die zeit.
    :-(

  5. Sascha says:

    Ja ist auch ziemlich schwer dir zu helfen, wenn du dein Problem nicht genauer beschreiben kannst. Wenn du vielleicht einen Anhaltspunkt liefern kannst woran es bei dir scheitert, dann kann dir vielleicht auch jemand helfen. Sowas wie z.B.: “Wenn ich x,y in die Console eingebe dann kommt die Fehlermeldung y”. Oder sag einfach welcher der beschriebenen Schritte bei dir nicht zum Erfolg führt.

  6. neku says:

    hallo sascha.

    das problem ist doch aus dem ersten beitrag ersichtlich (so wohl hier wie aus meinem email):

    ich suche nach moeglichkeit um ruby scripts (im RDE, freeRide oder aehnlich im win-xp) debuggen zu koennen. aptana & andere sind mir zu gross. es geht nicht um projekte sondern um kleine scripte.

    zu deiner (fang) frage: beim start des debugers (rde) kommt (je nach installation) eine (einzige require, oder) endlose reihe von fehlermeldungen. es scheint mir sinnlos die aufzufuehren. es sind unter umstaenden hunderte von zeilen. ich bezweifle, dass es nutzlich waere die beizulegen.

    mich erstaunt nur, dass du anleitungen publizierst und dann detailangaben bemaengelst.

    inzwischen bezweifle ich naemlich, dass es zur zeit (mit ruby 192) ueberhaupt moeglich ist zu debuggen. es gibt nur negative beitraege zu diesem leidigen thema.

    freundliche gruesse

  7. Sascha says:

    Zu deinem Kommentar:

    ich suche nach moeglichkeit um ruby scripts (im RDE, freeRide oder aehnlich im win-xp) debuggen zu koennen. aptana & andere sind mir zu gross. es geht nicht um projekte sondern um kleine scripte.

    Benutze einfach “rdebug” von der Kommandozeile. Dazu brauchst du überhaupt keine IDE. Falls du weist was eine IDE ist ;)

    zu deiner (fang) frage: beim start des debugers (rde) kommt (je nach installation) eine (einzige require, oder) endlose reihe von fehlermeldungen. es scheint mir sinnlos die aufzufuehren. es sind unter umstaenden hunderte von zeilen. ich bezweifle, dass es nutzlich waere die beizulegen.

    Das was du mir geschickt hast, sind keine Fehlermeldungen… Das sind ganz normale Ausgaben von ruby… Auszug:

    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:30::-: class PrettyPrint
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:30::C: class PrettyPrint
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:41::-:   def PrettyPrint.format(output='', maxwidth=79, newline="\n", genspace=lambda {|n| ' ' * n})
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:55::-:   def PrettyPrint.singleline_format(output='', maxwidth=nil, newline=nil, genspace=nil)
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:78::-:   def initialize(output='', maxwidth=79, newline="\n", &genspace)
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:93::-:   attr_reader :o utput, :maxwidth, :newline, :genspace
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:94::-:   attr_reader :indent, :group_queue
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:96::-:   def current_group
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:117::-:   def first?
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:122::-:   def break_outmost_groups
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:142::-:   def text(obj, width=obj.length)
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:158::-:   def fill_breakable(sep=' ', width=sep.length)
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:170::-:   def breakable(sep=' ', width=sep.length)
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:195::-:   def group(indent=0, open_obj='', close_obj='', open_width=open_obj.length, close_width=close_obj.length)
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:205::-:   def group_sub
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:222::-:   def nest(indent)
    #0:c:/ruby192/lib/ruby/1.9.1/prettyprint.rb:233::-:   def flush
    .
    .
    .

    Das ist die Klasse “PrettyPrint”…
    Ich glaube du solltest dir mal ein Buch über ruby und Softwareentwicklung im Allgemeinen zur Hand nehmen und Lernen, Lernen, Lernen…

    mich erstaunt nur, dass du anleitungen publizierst und dann detailangaben bemaengelst.

    Ich wollte dir eigentlich nur helfen also mal nicht frech werden… ;)

    inzwischen bezweifle ich naemlich, dass es zur zeit (mit ruby 192) ueberhaupt moeglich ist zu debuggen. es gibt nur negative beitraege zu diesem leidigen thema.

    Hier mal ein kleiner Gegenbeweis:

    user@computer:$ ~/workspace/RubyExamples/lib$ rdebug greeter.rb
    /home/sascha/workspace/RubyExamples/lib/greeter.rb:1
    class Greeter
    (rdb:1) n
    /home/sascha/workspace/RubyExamples/lib/greeter.rb:15
    if __FILE__ == $0
    (rdb:1) n
    /home/sascha/workspace/RubyExamples/lib/greeter.rb:16
    g = Greeter.new
    (rdb:1) n
    /home/sascha/workspace/RubyExamples/lib/greeter.rb:17
    g.names = [1, 2]
    (rdb:1) display g.names
    1: g.names =
    (rdb:1) n
    1: g.names = [1, 2]
    /home/sascha/workspace/RubyExamples/lib/greeter.rb:18
    g.printNames
    (rdb:1) display g.names
    2: g.names = [1, 2]
    (rdb:1)

    sascha@sascha-VirtualBox:~/workspace/RubyExamples/lib$ ruby -v
    ruby 1.9.2p289 (2011-07-04 revision 32391) [i686-linux]


    Und ich glaube wir beenden das jetzt hier…

  8. neku says:

    hallo
    ich muss meine vorherige aussage korrigieren:

    zumindest in der arcadia ide (autor: antonio galeone / http://rubyforge.org/projects/arcadia) funktioniert der ruby-debuger bei mir (win-xp / ruby 192) endlich. unmittelbar nach der installation war es naemlich nicht der fall.

    die arcadia umgebung ist ziemlich speziel.. gewohnunsbeduerftig. ich kann leider keine naeheren angaben machen, da ich es noch nicht kenne (es sind keine 10 min. da es endlich befriedigend lief).

    die ausgabe beim debugen ist recht spartanisch aber man sieht was sich wann veraendert und das alleine ist schon einiges. man darf (so wie ich es mommentan einstufe) keine vergleiche zum beispiel mit PyScripter (python) machen.

    also.. happy rubyoning!
    :-)

  9. neku says:

    aber klar sascha.. das koennen wir.

    ich bedanke mich fuer deine wertvolle, sachliche und vor allem sachkuendige unterstuetzung. ich waere bestimmt nicht so schnell dahinter gekommen was ein pp ist.
    ;-)
    vilelen dank

  10. neku says:

    fuer ev. nachforschungen:

    Posted by Antonio Galeone (angal) on 2011-02-13 00:48
    Arcadia is a light Editor/Ide written in Ruby.

    This is a bugs-fixed release.

    == Project’s homepage:
    http://arcadia.rubyforge.org/

    == Contacts
    For all questions:
    antonio-galeone@rubyforge.org

    == For bugs, support requests, new features requests:
    http://github.com/angal/arcadia/issues

    Repository at:
    http://github.com/angal/arcadia/tree/master

  11. Shepard says:

    Habe folgende Vorgehensweise gewählt:

    1. Virtual Machine mit z.B. Ubuntu anlegen
    2. RVM installieren
    3. Ruby 1.9.2 und Rails 3.1 installieren
    4. OpenJava deinstallieren
    5. Sun Java installieren
    6. Radrails installieren
    7. Plugins installieren (subclipse kann einen da fast um den Verstand bringen …)

    Zu den einzelnen Punkten gibt es, Gott sei dank, sehr gute Anleitungen …
    Das wars ;-)

    Wichtig: Virtual-Machine-Sicherungspunkte möglichsts nach jedem Schritt erstellen!

    PS.: Meine letzte Microsoft Visual Studio Installation hat eine Stunde gedauert …

  12. Sascha says:

    Wer braucht schon Visual Studio ;)

  13. Rick says:

    Vielen Dank! Das hat mir geholfen. Ein kleines problem hatte ich trotzdem. Die Aenderungen die man in .bashrc machen muss sind abhaengig von wo gerade ruby installiert ist damit rvm richtig functioniert. Die Loesung is here http://stackoverflow.com/questions/3276950/rvm-doesnt-switch-rubies

Leave a Response