Warum kann ich nicht auf die von Homebrew installierte Bash umstellen?


2

Ich versuche, bash auf Version 4.x zu aktualisieren. Ich habe das Upgrade gebraut, dann das Update gebraut und dann die Bash installiert. Ich rannte sudo bash -c "echo /usr/local/bin/bash >> /etc/shells"und sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells". Ich habe versucht, /usr/local/Cellar/bash/4.3.32/bin/bash mit / usr / local / bin / bash zu verknüpfen. Ich habe Terminal.app geschlossen. Ich habe mich sogar komplett von Mac abgemeldet. Nichts, was ich tue, hat $ BASH_VERSION auf das Richtige aktualisiert. bash --versionsagt das Richtige, aber ich glaube, ich habe irgendwo gelesen, dass das dann echo $BASH_VERSION(vielleicht) weniger zuverlässig ist . Hier ist eine Zusammenfassung dessen, was ich sehe:

Bildbeschreibung hier eingeben

Ich muss es nur wissen. . . Auf welcher Version von Bash bin ich eigentlich? Und wenn es nicht 4.x ist, wie mache ich das zuverlässig und definitiv ?

Ich bin bei Yosemite FWIW.

Bearbeiten:

$ PATH war zu lang für einen Kommentar. Hier ist es:

/Users/AndrewNichols/.rvm/gems/ruby-2.1.1/bin:/Users/AndrewNichols/.rvm/gems/ruby-2.1.1@global/bin:/Users/AndrewNichols/.rvm/rubies/ruby-2.1.1/bin:/usr/local/heroku/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/Cellar/grep/2.18/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/gnu-tar/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/heroku/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/Cellar/grep/2.18/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/gnu-tar/libexec/gnubin:~/activator:/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64:/Users/AndrewNichols/sonar-runner-2.4/bin:/Users/AndrewNichols/bin:~/activator:/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64:/Users/AndrewNichols/sonar-runner-2.4/bin:/Users/AndrewNichols/bin:/Users/AndrewNichols/.rvm/bin

Hier ist ein Doppelpunkt zur besseren Lesbarkeit:

'/Users/AndrewNichols/.rvm/gems/ruby-2.1.1/bin',
'/Users/AndrewNichols/.rvm/gems/ruby-2.1.1@global/bin',
'/Users/AndrewNichols/.rvm/rubies/ruby-2.1.1/bin',
'/usr/local/heroku/bin',
'/usr/local/opt/coreutils/libexec/gnubin',
'/usr/local/Cellar/grep/2.18/bin',
'/usr/local/opt/gnu-sed/libexec/gnubin',
'/usr/local/opt/gnu-tar/libexec/gnubin',
'/usr/local/bin',
'/usr/bin',
'/bin',
'/usr/sbin',
'/sbin',
'/opt/X11/bin',
'/usr/local/heroku/bin',
'/usr/local/opt/coreutils/libexec/gnubin',
'/usr/local/Cellar/grep/2.18/bin',
'/usr/local/opt/gnu-sed/libexec/gnubin',
'/usr/local/opt/gnu-tar/libexec/gnubin',
'~/activator',
'/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64',
'/Users/AndrewNichols/sonar-runner-2.4/bin',
'/Users/AndrewNichols/bin',
'~/activator',
'/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64',
'/Users/AndrewNichols/sonar-runner-2.4/bin',
'/Users/AndrewNichols/bin',
'/Users/AndrewNichols/.rvm/bin'

Ein Teil der Duplizierung ist darauf zurückzuführen, dass ich das Terminal so eingestellt habe, dass es tmux beim Start ausführt, sodass .bashrc zweimal bezogen wird.


Wo und wie haben Sie die Login-Shell für Ihr Benutzerkonto geändert?
Nohillside

chsh -s /usr/local/bin/bash. Grundsätzlich wie hier beschrieben .
Tandrewnichols

Was ist die Ausgabe von echo $PATH?
njboot

@njboot - Siehe meine Änderungen oben.
Tandrewnichols

Antworten:


3

Okay, anscheinend geschah dies, weil tmux an der ursprünglichen Bash-Version festhielt (obwohl ich tmux beendet und die Konfiguration neu geladen hatte). tmux kill-servergefolgt von einem Relaunch von tmux wurde das Problem behoben.


-3

Dies sollte Ihr Problem beheben.

mv /bin/bash /bin/bash3 

und erstellen Sie dann einen Symlink zu

ln -s /usr/local/bin/bash /bin/bash

Das sollte Ihr Problem beheben.


2
Ich bin kein Experte, aber das klingt nach einer wirklich schlechten Idee. Eigentlich bin ich mir ziemlich sicher, dass dies mit SIP ab 10.11 nicht möglich ist.
NReilingh

Nun, ich bin auf Yosemite, also ist SIP nicht unbedingt ein Problem. Aber es klingt so oder so zwielichtig. Ich fühlte mich komisch genug, /usr/local/bin/bash.bak nach /usr/local/bin/bash.bak zu verschieben, damit ich den Homebrew symlinken konnte.
Tandrewnichols
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.