Ich empfehle direnv . Es ist ein Umgebungsumschalter für die Shell.
Vor jeder Eingabeaufforderung wird geprüft, ob im aktuellen und im übergeordneten Verzeichnis eine ".envrc" -Datei vorhanden ist. Wenn die Datei vorhanden (und autorisiert) ist, wird sie in eine Bash-Unter-Shell geladen, und alle exportierten Variablen werden von direnv erfasst und dann der aktuellen Shell zur Verfügung gestellt.
Hier erfahren Sie, wie Sie direnv mit ruby-install verwenden
+ Ruby-Installation
Fügen Sie dies dem hinzu ~/.direnvrc
use_ruby() {
local ruby_root=$HOME/.rubies/$1
load_prefix "$ruby_root"
layout_ruby
}
Installiere ruby-install (brew install ruby-install
) und installieren Sie eine Reihe von Rubinen.
ruby-install ruby 1.9.3
ruby-install ruby 2.0.0
ruby-install ruby 2.2.0
Und dann machen Sie der Einfachheit halber ein paar Symlinks:
ln -s .rubies/1.9 ruby-1.9.3-p*
ln -s .rubies/2.0 ruby-2.0.0
ln -s .rubies/2.2 ruby-2.2.0
Und schließlich in jedem Projekt .envrc
:
use ruby 2.0
Dadurch werden alle Edelsteine in das Projektverzeichnis aufgenommen .direnv/ruby
(erleichtert das Öffnen von Edelsteinen). Bundler fügt Wrapper-Binärdateien ein .direnv/bin
(nicht mehr bundle exec
!).
+ rbenv
Es ist auch möglich, rbenv durch Hinzufügen von zu verwenden use rbenv
Befehl in eine beliebige .envrc
Datei . Dadurch wird rbenv aktiviert, wodurch die Rubinverpackungen in den PFAD gelegt werden.
Beachten Sie, dass es nicht erforderlich ist, rbenv in .bashrc oder .zshrc zu installieren, damit dies funktioniert.
+ RVM
Hier ist die komplizierteste .envrc, die ich für Ruby-Projekte verwende:
rvm use 1.8.7
layout ruby
PATH_add .direnv/bundler-bin
Mit rvm wird die richtige Ruby-Version für Sie ausgewählt
Layoutbefehle setzen automatisch einige der üblichen Umgebungsvariablen. Derzeit existiert nur das Ruby-Layout. Dadurch wird die Umgebungsvariable GEM_HOME und das Bin-Verzeichnis auf Ihren Pfad festgelegt. Da es von der Ruby-Version abhängt, stellen Sie sicher, dass Sie es nach "rvm" aufrufen. Da jedes Ruby-Layoutverzeichnis ein eigenes GEM_HOME hat, müssen Sie die Gemsets von rvm nicht verwenden.
PATH_add stellt den angegebenen relativen Pfad voran und erweitert ihn. In diesem Fall trenne ich damit die Bundler-Binstubs von meinen eigenen Bin-Skripten mitbundle install --binstubs .direnv/bundler-bin
Wenn Sie herausfinden möchten, was diese Befehle genau tun, gehen Sie zunächst wie folgt vor: cat direnv stdlib
| weniger