2016-05-05 5 views
0

Ich verwende Quelle /usr/local/opt/chruby/share/chruby/auto.sh, um Ruby automatisch zu ändern Version in .ruby-Version, aber das funktioniert leider nur auf CD.Wie verwende ich chruby, um die Version von Ruby manuell zu ändern, entsprechend dem Wert in .ruby-Version

Wenn ich eine neue Registerkarte in meinem Mac-Terminal öffne, öffnet es sich zu dem gleichen Verzeichnis, in dem ich in der vorherigen Registerkarte war, aber die automatische Änderung funktioniert nicht. Meine Lösung dazu ist cd .. und die cd zurück, die die Änderung auslöst. Das ist natürlich ermüdend.

Ich habe versucht, die Funktion chruby_auto in der neuen Registerkarte manuell aufzurufen, aber das hat keine Auswirkungen.

Kann mir jemand eine Lösung anbieten, wie ich meine Ruby-Version in diesem Fall aktualisieren kann? Ich würde eine automatische Lösung bevorzugen, aber werde mich mit einem Befehl zufrieden geben, um anzurufen.

Antwort

1

Eigentlich macht nichts, verfolgt ich diese wieder zu einem Thema in der Reihenfolge dieser Anrufe in meinem .bashrc

source /usr/local/opt/chruby/share/chruby/chruby.sh 
source /usr/local/opt/chruby/share/chruby/auto.sh 
chruby ruby-2.3.0 

I stellt sich heraus Sie die automatische Zeile nach der Standardzeile aufrufen müssen. Beachten Sie, dass die Standardzeile auch hinter der Zeile chruby.sh stehen muss.

source /usr/local/opt/chruby/share/chruby/chruby.sh 
chruby ruby-2.3.0 # default order important, if comes after auto.sh, will undo the auto change 
source /usr/local/opt/chruby/share/chruby/auto.sh 

verlassen also nur diese Antwort hier für die Nachwelt denke, ich

+1

Es ist in Ordnung, Ihre eigene Antwort als akzeptiert zu markieren :-) –

0

Wenn ich das Problem bin Missverständnis, es klingt wie Sie eine ~/.ruby-version Datei (anders als die .ruby-version Datei in Ihrem Projekt) wollen, so dass Sie können bestimmen, welche Version von Ruby standardmäßig beim Öffnen eines neuen Terminalfensters verwendet werden soll (dieser Wert wird dann von einer Projektdatei .ruby-version überschrieben, falls diese existiert). Zum Beispiel in meinem ~/.bashrc, ich habe:

if [[ -e /usr/local/share/chruby ]]; then 
    # Load chruby 
    source /usr/local/share/chruby/chruby.sh 
    # Allow auto-switching of Ruby version when 
    # directory has a .ruby-version file 
    source /usr/local/share/chruby/auto.sh 
fi 

Mein ~/.ruby-version gerade enthält 2.3.1, und es gibt keine Notwendigkeit chruby explizit in ~/.bashrc zu nennen. Weitere Informationen finden Sie unter Default Ruby section of chruby's README file.

+0

nein, es schien nur ein Fall zu sein, als der automatische Schalter nicht funktionierte, aber es war tatsächlich, es wurde gerade durch die Reihenfolge der Dinge in meinem rückgängig gemacht Bashrc – pixelearth

Verwandte Themen