È sicuro aggiornare Bash tramite Homebrew?

76

Sono nuovo di OS X. Sto utilizzando OS X Lion su un MacBook Pro. È sicuro aggiornare la shell bash usando Homebrew:

$ brew install bash

Se sicuro, come faccio a renderlo l'istanza predefinita della shell che corro attraverso Terminale?

Grazie!

    
posta Rudy 09.09.2011 - 23:33
fonte

4 risposte

100

I binari in /{,usr/}{,s}bin/ di solito non dovrebbero essere sostituiti con altri file. Altri programmi si aspettano che siano le versioni fornite con OS X e vengono sostituite dagli aggiornamenti del sistema operativo.

Dopo aver eseguito brew install bash , puoi cambiare la shell di default in modo sicuro:

  • Aggiungere /usr/local/bin/bash a /etc/shells
  • Esecuzione di chsh -s /usr/local/bin/bash .

Le impostazioni nel terminale o in iTerm 2 normalmente non devono essere modificate. Entrambi hanno l'abitudine di aprire nuove finestre con una shell di login della shell predefinita.

La shell di default può anche essere cambiata da Preferenze di Sistema o con dscl, ma tutte e tre le opzioni modificano solo /var/db/dslocal/nodes/Default/users/$USER.plist .

    
risposta data 09.09.2011 - 23:45
fonte
4

Potrei sbagliarmi qui, ma per quanto ne so brew installerebbe la propria istanza di bash , poiché brew funziona sotto /usr/local/bin mentre i valori di default del sistema funzionano sotto /bin (e /usr/bin ) .

Informazioni su Terminale, puoi rendere le shell aperte con il tuo comando personalizzato. Vai a Preferenze > Avvio e seleziona Apri shell con: Comando (percorso completo) . Digita semplicemente il percorso del tuo nuovo bash e vuala!

Spero che ti aiuti!

BTW: Backup! Il miglior consiglio in queste situazioni!

    
risposta data 09.09.2011 - 23:43
fonte
0

Molto prima di fare qualsiasi cosa, fai il backup del tuo file corrente (ovviamente, ma merita sempre di essere detto)

sudo cp /bin/bash /bin/bash.3.2.bk

Quindi crea un link simbolico all'eseguibile bash scaricato da Homebrew. Penso che sarà in / usr / local / Cellar, quindi

sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash

Ora / bin / bash punta al file nella tua directory usr / local

    
risposta data 09.09.2011 - 23:42
fonte
0

Penso che sia sicuro se si avvia appena

brew install bash

e quindi aggiungilo come shell predefinita

chsh -s /usr/local/bin/bash

dato che stai solo modificando il tuo attuale utente. Tuttavia, ho notato che il mio ~ / .profile predefinito è

if [ "/bin/bash" == $BASH ]; then
    source ~/.bashrc
fi

quindi deve essere aggiornato. L'ho cambiato in

if [ "bash" == $(basename $BASH) ]; then
        source ~/.bashrc
fi
    
risposta data 07.03.2016 - 10:05
fonte

Leggi altre domande sui tag