2 votes

Pourquoi je n'arrive pas à changer bash pour celui installé par homebrew ?

J'essaie de mettre à jour bash à la version 4.x. J'ai fait brew upgrade, puis brew update, puis brew install bash. J'ai exécuté sudo bash -c "echo /usr/local/bin/bash >> /etc/shells" y sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells" . J'ai essayé d'établir un lien symbolique entre /usr/local/Cellar/bash/4.3.32/bin/bash et /usr/local/bin/bash. J'ai fermé Terminal.app. Je me suis même complètement déconnecté de Mac. Rien de ce que je fais n'a mis à jour $BASH_VERSION à la bonne valeur. bash --version dit la bonne chose, mais je pense avoir lu quelque part que c'est moins fiable que echo $BASH_VERSION (peut-être). Voici un résumé de ce que je vois :

enter image description here

J'ai juste besoin de savoir sur quelle version de bash je suis actuellement ? Et si ce n'est pas la version 4.x, comment faire pour de manière fiable, définitive le rendre ainsi ?

Je suis sur Yosemite FWIW.

Edit :

$PATH était trop long pour un commentaire. Le voici :

/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

En voici une divisée en deux points, pour plus de lisibilité :

'/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'

Une partie de la duplication est due au fait que j'ai configuré le terminal pour qu'il exécute tmux au démarrage, donc le fichier .bashrc est utilisé deux fois.

0 votes

Où et comment avez-vous changé le shell de connexion pour votre compte utilisateur ?

0 votes

chsh -s /usr/local/bin/bash . En gros, comme décrit aquí .

0 votes

Quel est le résultat de echo $PATH ?

3voto

tandrewnichols Points 151

Ok, donc apparemment cela se produisait parce que tmux s'accrochait à la version originale de bash (même si j'avais quitté tmux et rechargé sa configuration). tmux kill-server suivi d'un redémarrage de tmux a réglé le problème pour moi.

-3voto

Levi Points 1

Cela devrait régler votre problème.

mv /bin/bash /bin/bash3 

et ensuite créer un lien symbolique vers

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

Cela devrait régler votre problème.

2 votes

Je ne suis pas un expert, mais ça semble être une très mauvaise idée. En fait, je suis presque sûr que c'est impossible avec SIP sur 10.11 et plus.

0 votes

Eh bien, je suis sur Yosemite, donc SIP n'est pas nécessairement un problème. Mais cela semble douteux de toute façon. Je me suis senti assez bizarre en déplaçant /usr/local/bin/bash vers /usr/local/bin/bash.bak pour pouvoir faire un lien symbolique avec celui de homebrew.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X