Gibt es eine Möglichkeit, ruby1.9 aufzurufen, ohne Rubygems zu laden?

8

Ruby 1.9 ist also wirklich nett, da es automatisch Rubygems benötigt. Wenn Sie also require 'somegem' aufrufen, ohne zuerst Rubygems zu benötigen, funktioniert es, und das ist im Allgemeinen großartig.

Aber ich habe eine Menge Shell-Skripte mit Ruby, und sie sind in der Regel nicht auf Rubygems angewiesen. Shell-Tools sollten sofort ausgeführt werden, und das Laden von Rubygems für nichts ist ein großer Nachteil, vor allem weil es eine Reihe von Festplattenoperationen mit verstreuten kleinen Dateien beinhaltet.

Ich möchte Ruby sagen können, dass beim Laden dieser Shell-Skripte das Laden von Edelsteinen ausgelassen wird. Im Idealfall etwas wie #!ruby --no-rubygems in der Shebang-Zeile.

Gibt es so etwas? Oder vielleicht eine Kompilierung Option, die Ruby Rubygems sagen muss manuell erforderlich sein?

    
kch 15.07.2010, 06:13
quelle

1 Antwort

5

Ja, Sie können die Option --disable-gems verwenden.

Beachten Sie, dass die Weitergabe von Optionen in der Shebang-Zeile von Ihrem Betriebssystem abhängt. Einige Betriebssysteme unterstützen die Übergabe von Optionen überhaupt nicht . Einige unterstützen nur die Übergabe von one -Option oder -Argument.

Also, wenn Sie zum Beispiel

haben %Vor%

Dann ist es ziemlich unwahrscheinlich, dass Sie die Option bis zum Ende anhängen können. Wenn OTOH ändern Sie das zu

%Vor%

Dann haben Sie den Speicherort der Ruby-Binärdatei in Ihrem Skript fest verdrahtet.

Und natürlich gibt es Betriebssysteme, die Shebang-Linien überhaupt nicht interpretieren . (Schließlich wurden sie in keinem Standard spezifiziert und sind nicht einmal richtig dokumentiert.)

Eine Alternative wäre, die Umgebungsvariable RUBYOPT in Ihrer Shell-Umgebung zu setzen und einfach in eine andere Umgebung mit RUBYOPT unset (oder auf -w , mein persönlicher Favorit) für Ihre Ruby-Entwicklung zu wechseln.

    
Jörg W Mittag 15.07.2010, 08:58
quelle

Tags und Links