Wie kann ich zu Ruby 1.9.3 wechseln, das mit Homebrew installiert wurde?

80

Ich habe Ruby 1.9.3 mit Hombrew installiert

brauen installieren rubin

Standard 1.8.7 wird jedoch weiterhin verwendet. Wie kann ich osx auf 1.9.3 als Standard-Ruby umstellen?

Alexey Zakharov
quelle

Antworten:

88

Ich schlage vor, Sie werfen einen Blick auf rvm . Sie können es dann als Standard mit festlegenrvm use 1.9.3 --default

Aber wenn Sie mit Ihrer Homebrew-Installation zufrieden sind.

Dann ändern Sie einfach die Priorität der Verzeichnisse in der PATH

Hier sind meine / etc / Pfade

# homebrews should always take precedence
/usr/local/bin

# the default stack
/usr/bin
/bin
/usr/sbin
/sbin

Dies ist im Allgemeinen für Homebrew wichtig, da sonst die Systemversion von git, ruby, pg_admin, ... anstelle der Brew-Version verwendet wird.

Wenn Sie sagen which -a ruby, sehen Sie alle installierten Rubine und den Vorrang in derPATH

z.B.

$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby


UPDATE: Ich denke jetzt nicht, dass Sie sich ändern sollten /etc/paths

Stattdessen müssen Sie die von überprüfen .profile, .bashrcoder .bash_loginin der Shell geladen wird, und fügen Sie einfach /usr/local/binauf Ihrem Weg.

Für mich habe ich nur eine .profile. Sie können diese Datei erstellen, wenn keine dieser Dateien bereits in Ihrem Home-Verzeichnis vorhanden ist.

# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH
Matthew Rudy
quelle
1
Schließlich wähle ich rbenv, früher auch rvm verwendet.
Alexey Zakharov
cool. Ich schlage jedoch vor, dass Sie die Änderungen an Ihren / etc / path trotzdem vornehmen. Ich habe immer seltsame Fehler bekommen (z. B. würde ich brew upgrade git, aber die Version hat sich nicht geändert. Es stellte sich heraus, dass ich nie die Brauversion verwendet habe)
Matthew Rudy
29
Vielen Dank, dass Sie eine tatsächliche Antwort gegeben haben, anstatt nur "use rvm" zu sagen. Nicht jeder kann RVM verwenden, und ich hasse es, wenn die Top-Antwort OP nur auffordert, etwas zu tun, was sie nicht gefragt haben, wie es geht.
Maurer
Dies hat den Trick getan: interworks.com/blogs/ckaukis/2013/03/05/…
user2387149
Ich hatte Probleme beim Kompilieren von Ruby mit rvm, daher habe ich mich stattdessen für rbenv entschieden, da es ohne Probleme funktionierte.
Pellet
70

KURZE ANTWORT:

Nach der Installation von Ruby über Homebrew machen Sie einfach Folgendes:

brew link --overwrite ruby

und starten Sie Ihr Terminal neu oder öffnen Sie es erneut  


LANGE ANTWORT

Also habe ich eine normale Installation von Ruby mit Homebrew durchgeführt

brew install ruby

das installierte gut, aber es verwendete immer noch den Standard-Ruby des Systems. was ich dadurch überprüft habe:

which ruby 
#/usr/bin/ruby

Also habe ich gemäß Matthew Rudys Vorschlag die Reihenfolge meiner / etc / Pfade überprüft und alles war gut.

Dann habe ich beschlossen:

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby

so wurde nichts als solches gebrochen. Ich habe versucht, Ruby mit der Homebrew-Methode erneut zu installieren, und dann habe ich es gefunden.

Homebrew erwähnt:

Warning: ruby-2.3.1 already installed, it's just not linked

so musste tun:

brew link --overwrite ruby
Craig Wayne
quelle
13
Vergessen Sie nicht, Ihre iTerm-Instanz neu zu starten, da sonst ruby --versioneine veraltete Version angezeigt wird.
Dialex
1
Müssen Sie tatsächlich neu starten? oder einfach nur hash -r?
Dwanderson
1
Zu Ihrer Information, Homebrew weigert sich jetzt, dies zu tun. Für mich mit Fish schlug es vor: echo 'set -g fish_user_paths "/ usr / local / opt / ruby ​​/ bin" $ fish_user_paths' >> ~ / .config / fish / config.fish
Atem18
46

Wenn Sie Homebrew zur Installation von 1.9.3 verwenden möchten, können Sie die folgenden Schritte ausführen:

$ brew update
$ brew install rbenv
$ brew install ruby-build

Sobald Sie rbenv und ruby-build installiert haben, können Sie den folgenden Befehl ausführen, um Ruby 1.9.3 zu installieren.

$ rbenv install 1.9.3-p125

Wenn Sie jetzt standardmäßig 1.9.3 verwenden möchten, können Sie den folgenden Befehl ausführen:

$ rbenv global 1.9.3-p125
Francis Kim
quelle
Der Quelllink ist jetzt tot
Chris Brown
4
Funktioniert nicht unter OS X 10.11+. Das System verwendet weiterhin die alte Version und nicht die, die ich mit rbenv install 1.9.3-p125 / rbenv global 1.9.3-p125 als Standard installiert / festgelegt habe
Andrei Konstantinov
"rbenv global 1.9.3-p125" - diese Zeile hat meine Nacht gerettet. Danken!
Andrii Kovalchuk
Scheint bei mir nicht zu funktionieren. Ich musste den Pfad zum Ruby Exec in meinen $ PATH einfügen, bevor es funktionierte.
Herr-Sk
5

Ich hatte eine ähnliche Situation. Ich habe Ruby mit Homebrew installiert. which -a rubygab mir die folgende Ausgabe:

#usr/local/bin/ruby
#/usr/bin/ruby

Dies bedeutet, dass die neu installierte Version verwendet werden sollte, aber ruby --versiondennoch die alte Systemversion zurückgegeben wurde.

Ich habe das Terminal verlassen (Cmd + Q) und nach dem Neustart ruby --versiondie richtige Version zurückgegeben. Stellen Sie daher sicher, dass Sie das Terminal nach der Installation neu starten, bevor Sie andere (möglicherweise unnötige) Korrekturen versuchen.

Andrii Chernenko
quelle
4

KURZ: Notieren Sie, wofür Sie es ändern möchten.

Wenn Sie unter OS X arbeiten und versuchen, Ruby für etwas wie Jekyll zu verwenden, verwenden Sie kein Homebrew, da Apple dies für Ruby verwendet und es möglicherweise nicht gut ist, es zu verwenden, wenn Sie nicht sicher sind, was Sie sind tun. Verwenden Sie stattdessen rbenv oder RVM.

WENIGER KURZ: Ich habe versucht, von der Standardversion zu einer aktualisierten Version (von 2.0) zu wechseln, um Jekyll zu verwenden, da Ruby Version 2.2.5 und höher erforderlich war. Ich habe es aktualisiert und Version 2.5 wurde installiert, aber als ich "ruby -v" aktiviert habe, war es immer noch 2.0. Nachdem ich endlich die Standardversion geändert hatte, konnte ich das benötigte Paket nicht installieren, da ich keine Schreibberechtigung hatte. Wenn Sie beispielsweise auf so etwas stoßen, haben Sie wahrscheinlich das gleiche Problem

$ gem install jekyll bundler
ERROR:  While executing gem ... (Gem::FilePermissionError)    
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
Richard Lin
quelle
0

In OSX können Sie den Pfad folgendermaßen ändern:

sudo nano / etc / pfade

Fügen Sie dann einen Pfad hinzu oder ändern Sie die Reihenfolge.

Robert
quelle
-2

Nur als alternativer Ansatz für alle anderen, die nach einer Antwort darauf suchen, können Sie in Ihrem .bash_profile einen Alias ​​festlegen, z

ruby="/usr/local/bin/ruby"

So bin ich um das Problem herumgekommen

Bn Mk
quelle
Ja, das Problem dabei (und höchstwahrscheinlich der Grund für die Abstimmungen) ist, dass dies nur funktioniert, wenn Sie Ruby manuell aufrufen möchten und das System keine bestimmte Version verwenden möchte
David Seek