Ruby-Version/Pfad in Rails setzen


#1

Hallo,

ich habe mir gerade Ruby 1.9.1 per port auf den Mac gezogen und würde jetzt
gerne mal testweise eine Rails-Anwendung mit dieser Version laufen
lassen. Gibt
es eine Möglichkeit explizit den Ruby-Pfad für die gewünschte Version in Rails
zu setzen?

Kann man sich in der Konsole eigentlich die verwendete Ruby-Version
ausgeben zu
lassen?

Viele
Grüße
Michael K.


#2

Hallo Michael,

Kann man sich in der Konsole eigentlich die verwendete Ruby-Version
ausgeben zu lassen?
Klar.
$ ruby -v
gibt die version aus, z.b.: ruby 1.8.6 (2007-03-13 patchlevel 0)
[i686-darwin8.10.1]
und
$ which ruby
zeigt an wo das verwendete ruby liegt, z.b: /usr/local/bin/ruby

Gibt es eine Möglichkeit explizit den Ruby-Pfad für die gewünschte
Version in Rails zu setzen?
Habe ich noch nicht gemacht. Bin aber vor ein paar Tagen über Multiruby
gestolpert.
http://blog.zenspider.com/zentest/2007/12/

Und google hat unter “multiruby” sogar noch diese Anleitung gefunden :slight_smile:
http://blog.robseaman.com/2008/12/20/switching-between-ruby-1-8-1-9-with-multiruby

hope it helps
Oliver


#3

Hallo Oliver,

sorry, da war ich mal wieder etwas unspezifisch. Mit Konsole meinte ich
die
Rails-Konsole(script/console).

Multiruby habe ich auch schon gesehen, aber ich hatte gehofft, daß es
vielleicht
noch einen einfacheren weg gibt.

Viele
Grüße
Michael

Oliver Haag schrieb:


#4

… die Rails-Konsole(script/console). …

RUBY_VERSION

Gruss,
Roman

Am 31.05.2009 um 13:26 schrieb Michael K.:

Oliver Haag schrieb:

Gibt es eine Möglichkeit explizit den Ruby-Pfad für die gewünschte
rubyonrails-ug mailing list
removed_email_address@domain.invalid
http://mailman.headflash.com/listinfo/rubyonrails-ug


rubyonrails-ug mailing list
removed_email_address@domain.invalid
http://mailman.headflash.com/listinfo/rubyonrails-ug

Roman Sladeczek
Consulting & IT
Voßstr. 4
81543 München
TEL.: +49 89 54075045
Mobil: +49 163 7348177
Email: removed_email_address@domain.invalid


#5

Hallo Ralf,
hallo Roman,

danke für die Hilfe! RUBY_VERSION in der Konsole kannte ich noch nicht. Das
mit
dem Pfad weiß ich schon, aber ich hatte auf etwas einfacheres gehofft.
Eher
einen einen Trigger oder switch z.B. für die Konsole, ähnlich wie für die
Ablaufumgebung. Da kann ich ja einfach “script/console production”
eingeben,
wenn ich in die Konsole in der Produktionsumgebung ablaufen lassen möchte.

So etwas in der Art für die Ruby-Version wäre nicht schlecht. Die Gems habe ich
schon schon alle in der entsprechenden Version - auf dem Mac und auf
FreeBSD.
Das geht alles. Das einzige Problem ist, daß ich sowohl Anwendungen unter
Ruby
1.8.6 als auch unter 1.9.1 entwickeln/warten möchte.

Unter Java kann ich im Tomcat z.B. explizit setzen, welche Java-Version
verwendet werden soll. So etwas würde mir im Moment unter Rails im Moment
ziemlich weiterhelfen.

Unter Phusion kann man zwar auch explizit die Ruby-Version setzen, aber
nur
global und nicht für einzelne Anwendungen.

Viele
Grüße
Michael K.

Ralf Graf schrieb:


#6

Hallo Michael,

Am 31.05.2009 um 14:07 schrieb Michael K.:

Eher einen einen Trigger oder switch z.B. für die Konsole, ähnlich
wie für die Ablaufumgebung. Da kann ich ja einfach “script/console
production” eingeben, wenn ich in die Konsole in der
Produktionsumgebung ablaufen lassen möchte.

man könnte noch (zumindest während der Entwicklung) explizit die Ruby-
Version mitgeben, also nen Alias anlegen, bspw. “ruby19”, und dann
mit “ruby19 script/server” explizit starten.

Passenger ist natürlich ein Problem, da wird es wohl außer mehreren
Apaches mit eigener Passenger-Installation keine Lösung für ein Multi-
Ruby-Setup geben.

Für Mongrels, die mit unterschiedlichen Ruby-Setups laufen, habe ich
einfach verschiedene Linux-User angelegt die den passenden PATH
gesetzt haben und die Anwendung dann ausführen.

Viele
GrüßeRalf


#7

Hallo Michael,

Am 31.05.2009 um 13:26 schrieb Michael K.:

sorry, da war ich mal wieder etwas unspezifisch. Mit Konsole meinte
ich die Rails-Konsole(script/console).

du tippst RUBY_VERSION ein (so, in Großbuchstaben).

Multiruby habe ich auch schon gesehen, aber ich hatte gehofft, daß
es vielleicht noch einen einfacheren weg gibt.

Rails holt sich sein Ruby ja von dem Ort, wo es in der
Umgebungsvariable PATH zuerst fündig wird. Mit der entsprechenden
Reihenfolge kann man da steuern, wo zuerst geguckt wird, also so zum
Beispiel:

export PATH="/mein/tolles/eigenes/rubykompilat/bin:"$PATH

Mit “env ruby --version” kannst Du dann checken, welche Ruby-Version
das nächste script/server nun benutzen
würde.
Was dabei zu beachten ist: gem und die Gems sind an die Ruby-Version
gebunden, man müsste also dafür sorgen, dass alles notwendige in jeder
Ruby-Umgebung vorhanden ist.

Viele
GrüßeRalf