Ich bin neu bei OS X. Ich verwende OS X Lion auf einem MacBook Pro. Ist es sicher, die Bash-Shell mit Homebrew zu aktualisieren:
$ brew install bash
Wenn sicher, wie mache ich es zur Standardinstanz der Shell, die ich über Terminal ausführe?
Danke!
Binärdateien in /{,usr/}{,s}bin/
sollten normalerweise nicht durch andere Dateien ersetzt werden. Andere Programme erwarten, dass es sich um die Versionen handelt, die mit OS X geliefert wurden, und sie werden durch Betriebssystem-Upgrades ersetzt.
Nach dem Ausführen brew install bash
von können Sie die Standard-Shell sicher ändern, indem Sie:
/usr/local/bin/bash
zu/etc/shells
chsh -s /usr/local/bin/bash
.Einstellungen in Terminal oder iTerm 2 müssen normalerweise nicht geändert werden. Beide öffnen standardmäßig neue Fenster mit einer Login-Shell der Standard-Shell.
Die Standard-Shell kann auch in den Systemeinstellungen oder mit dscl geändert werden, aber alle drei Optionen ändern nur /var/db/dslocal/nodes/Default/users/$USER.plist
.
/etc/shells
, um die brew-installierte bash einzuschließen, ist erforderlich. Andernfalls (zumindest auf meinem Rechner) weigert sich Terminal zu starten.brew install bash
damit das funktioniert. (dh musste nicht ändern /etc/shells
)Ich könnte mich hier irren, aber soweit ich weiß, brew
würde ich eine eigene Instanz von installieren bash
, da brew unter funktioniert, /usr/local/bin
während die Systemstandards unter /bin
(und /usr/bin
) funktionieren.
Über Terminal können Sie Shells mit Ihrem eigenen, benutzerdefinierten Befehl öffnen. Gehen Sie zu Preferences > Startup und wählen Sie Shells open with: Command (complete path) . Geben Sie einfach den Pfad zu Ihrem neuen bash
und vuala!
Ich hoffe es hilft!
Übrigens: Sicherung! Beste Beratung in dieser Situation!
Bevor Sie irgendetwas tun, sichern Sie Ihre aktuelle Datei (natürlich, aber verdient es immer gesagt zu werden)
sudo cp /bin/bash /bin/bash.3.2.bk
Erstellen Sie dann einen Symlink zu der ausführbaren Bash-Datei, die Homebrew heruntergeladen hat. Ich denke, es wird so in /usr/local/Cellar sein
sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash
Jetzt zeigt /bin/bash auf die Datei in Ihrem Verzeichnis usr/local
Ich denke, es ist sicher, wenn Sie einfach starten
brew install bash
und fügen Sie es dann als Ihre Standard-Shell hinzu
chsh -s /usr/local/bin/bash
da Sie nur Ihren aktuellen Benutzer ändern. Mir ist jedoch aufgefallen, dass mein Standard ~/.profile ist
if [ "/bin/bash" == $BASH ]; then
source ~/.bashrc
fi
es muss also aktualisiert werden. Ich habe es geändert
if [ "bash" == $(basename $BASH) ]; then
source ~/.bashrc
fi
chsh
allein nicht ausreicht. Außerdem sieht Ihr aktualisiertes .profile-Snippet genauso aus wie das Originalbrew install bash
keine weiteren Maßnahmen erforderlich wären. Mit dem aktualisierten Profil, das ich geteilt habe, ist dies nicht der Fall. Ich hoffe, dies kann anderen helfen.
Eknepsnai
schrx