Wie verwende ich die angegebene Ruby-Version für ein Shell-Skript mit rbenv?

Wie verwende ich die angegebene Ruby-Version für ein Shell-Skript mit rbenv?

Ich werde ein kurzes Skript in Ruby schreiben. Und ich möchte die Ruby-Version per Shebang oder auf andere Weise angeben.

Ich werde das Skript in vielen Umgebungen verwenden. Ich verwende rbenv in den Umgebungen, aber es ist nicht sicher, welche Version von Ruby installiert ist.

Das Skript muss fehlschlagen, wenn die angegebene Version von Ruby nicht installiert ist.

Wie kann ich das machen? Gibt es einen guten Weg, dem ich folgen sollte?

Antwort1

Entsprechend deroffizielle Dokumentees klingt, als müssten Sie Ihren Skripten lediglich dieses Präfix voranstellen:

#!/usr/bin/env ruby

Führen Sie dann einen der folgenden Schritte aus, um anzugeben, rbenvwelche Ruby-Version verwendet werden soll:

Auszug:https://github.com/sstephenson/rbenv

Auswählen der Ruby-Version

Wenn Sie einen Shim ausführen, rbenvwird bestimmt, welche Ruby-Version verwendet werden soll, indem sie in dieser Reihenfolge aus den folgenden Quellen gelesen wird:

  1. Die RBENV_VERSIONUmgebungsvariable, sofern angegeben. Sie können den rbenvShell-Befehl verwenden, um diese Umgebungsvariable in Ihrer aktuellen Shell-Sitzung festzulegen.

  2. Die erste .ruby-versionDatei, die durch die Suche im Verzeichnis des ausgeführten Skripts und in jedem seiner übergeordneten Verzeichnisse gefunden wird, bis das Stammverzeichnis Ihres Dateisystems erreicht ist.

  3. Die erste .ruby-versionDatei, die durch Durchsuchen des aktuellen Arbeitsverzeichnisses und aller seiner übergeordneten Verzeichnisse gefunden wird, bis das Stammverzeichnis Ihres Dateisystems erreicht ist. Sie können die .ruby-versionDatei im aktuellen Arbeitsverzeichnis mit dem rbenvlokalen Befehl ändern.

  4. Die globale ~/.rbenv/versionDatei. Sie können diese Datei mit dem globalen Befehl ändern rbenv. Wenn die globale Versionsdatei nicht vorhanden ist, rbenvwird davon ausgegangen, dass Sie das „System“-Ruby verwenden möchten, also die Version, die ausgeführt würde, wenn sie rbenvnicht in Ihrem Pfad wäre.

.ruby-versionMit diesem Befehl können Sie dann zusammen mit dem Ruby-Skript eine Datei im Verzeichnis erstellen .

$ rbenv local 1.9.3-p327

verwandte Informationen