webentwicklung-frage-antwort-db.com.de

Wie kann die Standardversion von ZSH endgültig installiert/aktualisiert/festgelegt werden?

OSX Mountain Lion wird mit ZSH 4.3.1 in/bin/zsh ausgeliefert. Nach dem Herunterladen ./configure, make, make check, und make install- in Version 5.0.0,

which zsh gibt weiterhin /bin/zsh/ zurück

und zsh --version gibt immer noch zsh 4.3.11 (i386-Apple-darwin12.0) zurück

Wichtige Hinweise für die Antwortenden:
Ich hatte keine Fehler beim Ausführen der Installationsbefehle.

In /usr/local/bin habe ich diese 3 Dateien:
-rwxr-xr-x 2 kevinsuttle admin 622K Aug 20 00:59 zsh
-rwxr-xr-x 2 kevinsuttle admin 622K Aug 20 00:59 zsh-5.0.0
-rwxr-xr-x 1 kevinsuttle admin 622K Aug 20 00:50 zsh.old

Mein $PATH
$ echo $PATH
/Users/kevinsuttle/.rbenv/shims:/Users/kevinsuttle/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin

Fragen, die beantwortet werden müssen :
1. Was ist der sauberste Weg, um ZSH zu installieren? (Von Git, Homebrew, Curl-Quelle?)
2. Ist es wichtig, wo Sie die Installationsbefehle ausführen?
3. Wie aktualisiere oder überschreibe ich die mit Mountain Lion gelieferte Version von ZSH?
4. Ist das der Grund, warum die Leute oh-my-zsh benutzen?

25
Kevin Suttle

Sie müssen Ihre Standard-Shell in OSX folgendermaßen einstellen:

chsh -s /usr/local/bin/zsh $USER

Relogin zu OSX und es sollte funktionieren!

Homebrew Weg

Ich empfehle Ihnen, Homebrew zu verwenden. Es macht die Sache viel einfacher. Installieren Sie Homebrew, wie auf http://mxcl.github.com/homebrew/ beschrieben.

Homebrew installiert Ihre Sachen in/usr/local/bin. Stellen Sie daher sicher, dass/usr/local/bin vor/usr/bin steht.

Fügen Sie die folgende Zeile in ~/.zshrc und ~/.bashrc ein:

PATH="/usr/local/bin:/usr/local/sbin:$PATH"

Installiere zsh:

brew install zsh

Setzen Sie Ihre Standard-Shell auf zsh:

chsh -s /usr/local/bin/zsh $USER

Legen Sie schließlich die Erlaubnis zur Verwendung von zsh aus der Brühinstallation fest. Fügen Sie der Datei "/ etc/shells" die Datei "/ usr/local/bin/zsh" hinzu, um zsh zuzulassen. Andernfalls erhalten Sie eine Fehlermeldung "Sie sind nicht berechtigt, diese Anwendung auszuführen. Der Administrator hat Ihre Shell auf einen ungültigen Wert festgelegt."

echo "/usr/local/bin/zsh" | Sudo tee -a /etc/shells

Ich empfehle, den zsh-Umgebungsfehler in OSX zu beheben. Benennen Sie/etc/zshenv in/etc/zshrc um

Sudo mv /etc/{zshenv,zshrc}

Relogin zu OSX und es sollte funktionieren!

Wenn Sie Probleme haben, geben Sie Folgendes ein:

brew doctor
49
rodeinator

Ich werde versuchen, Ihre Fragen zu beantworten, aber ich habe das Gefühl, dass dies für Superuser besser geeignet ist.

Was ist der sauberste Weg, ZSH zu installieren? (Von git, homebrew, kräuselungsquelle?)

Erwerb der Quelle, wie Sie möchten; Der sauberste Weg wäre jedoch, einen privaten binzu erstellen, ich mag /Users/burhan/bin/, und installiere dort Dinge. Dies ist meiner Meinung nach der cleanest und simplest Weg, da Sie sich nicht auf andere Bibliotheken/Installationsprogramme/magic verlassen müssen.

Ist es wichtig, wo Sie die Installationsbefehle ausführen?

Nein, es spielt keine Rolle, welche Argumente Sie den Befehlen geben - insbesondere den Zielinstallationspfad und den Pfad zu Bibliotheken. Wenn Sie diese nicht bereitstellen (oder zuvor in der Umgebung festlegen), werden vom Installationsprogramm Elemente in die Standardsystempfade eingefügt. und that Sie müssen das Installationsprogramm mit erhöhten Berechtigungen ausführen, dh mit Sudooder, während Sie als rootangemeldet sind.

Wie aktualisiere oder überschreibe ich die mit Mountain Lion gelieferte Version von ZSH?

Ich würde das Upgrade nicht empfehlen. Ich bin einfach nicht sicher, welche Nebenwirkungen es auf die verschiedenen anderen Skripte haben wird, die davon ausgehen, dass sie mit der angekündigten Version ausgeliefert werden. Zu Ihrer Vernunft würde ich das vermeiden.

Stattdessen, wenn Sie es in einer privaten Bin erstellen und installieren und Ihren PATHentsprechend zeigen; Sie können die aktualisierte Version verwenden, ohne die gelieferte Version zu ändern.

2
Burhan Khalid

OK, so erinnerte mich Burhans Kommentar an eine Situation, in der ich den Pfad der bevorzugten Version explizit zu meinem .bash_profile hinzufügen musste. Version 5.0.0 ist in /usr/local/bin, also sieht der $PATH in meinem .bash_profile so aus: 

export PATH="$HOME/.rbenv/bin:/usr/local/bin:$PATH"

und jetzt, wenn ich which zsh starte, bekomme ich /usr/local/bin/zsh
und zsh --version gibt zsh 5.0.0 (x86_64-Apple-darwin12.0.0) zurück. 

Woot! Hoffentlich hilft dies jemandem, der das gleiche Problem hat. 

2
Kevin Suttle

In der Vergangenheit war die Lösung, die ich für diese Art von Upgrade gefunden hatte, ungefähr wie folgt:

  • Installiere die neuere Version irgendwo (in meinem Fall der Standard für fink/sw/bin) 
  • Benennen Sie die vom Betriebssystem installierte Version in/bin/bin/zsh => /bin/zsh.moved um 
  • Richten Sie in/bin einen Symlink für die Installation von/sw/bin/zsh ein

Das schien zu funktionieren.

Ich würde gerne wissen, ob dies eine dumme Lösung ist und wenn ja, warum? Danke

0
essjar