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, rbenv
welche Ruby-Version verwendet werden soll:
Auszug:https://github.com/sstephenson/rbenv
Auswählen der Ruby-Version
Wenn Sie einen Shim ausführen,
rbenv
wird bestimmt, welche Ruby-Version verwendet werden soll, indem sie in dieser Reihenfolge aus den folgenden Quellen gelesen wird:
Die
RBENV_VERSION
Umgebungsvariable, sofern angegeben. Sie können denrbenv
Shell-Befehl verwenden, um diese Umgebungsvariable in Ihrer aktuellen Shell-Sitzung festzulegen.Die erste
.ruby-version
Datei, 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.Die erste
.ruby-version
Datei, 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-version
Datei im aktuellen Arbeitsverzeichnis mit demrbenv
lokalen Befehl ändern.Die globale
~/.rbenv/version
Datei. Sie können diese Datei mit dem globalen Befehl ändernrbenv
. Wenn die globale Versionsdatei nicht vorhanden ist,rbenv
wird davon ausgegangen, dass Sie das „System“-Ruby verwenden möchten, also die Version, die ausgeführt würde, wenn sierbenv
nicht in Ihrem Pfad wäre.
.ruby-version
Mit diesem Befehl können Sie dann zusammen mit dem Ruby-Skript eine Datei im Verzeichnis erstellen .
$ rbenv local 1.9.3-p327