Impossibile aggiornare il mio Bash in Mac da MacPorts
Domanda
ho aggiornato il mio successo Bash al 3.2.48 da MacPorts.
Sembra che io non ce l'ho attiva, dal momento che ho
echo $BASH_VERSION
3.2.17(1)-release
Come si può fare la nuova Bash attiva in modo tale che ricevo per il mio shell di login?
Soluzione
Eseguire il seguente codice, ad esempio per cambiare la shell Bash alla nuova installato da MacPorts
chsh -s /opt/local/bin/bash
Se che ti dà il messaggio,
"
non-standard shell
"
è necessario aggiungere
/opt/local/bin/bash
a
/etc/shells
Si noti che /etc/shells
è solo un file di testo, in modo da poter modificare direttamente se l'autenticazione come utente root. A livello di codice può cambiare con il comando
sudo -s
Password:
# echo /opt/local/bin/bash >> /etc/shells
Se il primo comando chsh fallito, eseguirlo ora di nuovo se sei riuscito a modificare il file di cui sopra.
Altri suggerimenti
Sto indovinando che è installato ma non viene utilizzato come shell di login.
È possibile modificare la shell utilizzando dscl sulla riga di comando.
Al prompt dscl il seguente:
list Local/Default/Users
read Local/Default/Users/<your username here>
change Local/Default/Users/<your username here> UserShell /bin/bash /opt/local/bin/bash
Ho un altro esempio di utilizzo dscl sul mio blog se aiuta.
È possibile attivare la shell di login, dalla shell di Mac OS X login esistente (per default il suo /bin/bash
fornito con Mac OS X), per MacPorts /opt/local/bin/bash
semplicemente utilizzando il seguente script di shell:
#!/opt/local/bin/bash
if [ `grep /opt/local/bin/bash /etc/shells` ];
then
echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash;
else
echo /opt/local/bin/bash | sudo tee -a /etc/shells;
chsh -s /opt/local/bin/bash;
fi