Aggiornare Bash su OS X

Non è una sorpresa per nessuno: Apple è sempre meno orientata verso il mondo open source, anche per diffidenza nei confronti delle licenze che questo adotta, loro sempre più esigenti, come, ad esempio, la GPL 3. Un esempio valido visto che questa licenza è quella adottata da un programma importante, parte integrante di OS X: bash.

Bash su OS X

Bash, per chi non lo sapesse, è una shell, ossia un livello ravvicinato di interazione con il kernel, e quindi uno strumento di grande potenza. Tra le varie shell esistenti, bash è stata adottata da OS X a partire da Panther ed è quindi lo strumento con il quale si confronta chiunque apra l’applicazione Terminale.

Terminale, giustappunto: apriamolo, e con bash --version scopriamo qualcosa di più sulla versione di bash che usiamo. Il risultato?

GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)

Copyright (C) 2007 Free Software Foundation, Inc.

Dal 2007 ad oggi, però, bash (il cui sito ufficiale è
questo) è andata avanti: ad oggi, due Gennaio 2014, l’ultima versione di bash è la 4.2, ed aggiornare non è vietato per utenti Mac.

I prerequisiti per aggiornare bash

Farlo è semplice, a condizione di avere installato Homebrew. Installare Homebrew è facile, ma serve Xcode.

Aggiornare bash

  1. Installare la nuova versione con questo comando:
    brew install bash
  2. Aggiungere la nuova shell a quelle contemplate
    , ad esempio servendosi dell’editor di testo nano:
    sudo nano /etc/shells

    Il percorso da includere è /usr/local/bin/bash (io ho inserito anche un commento che ricorda che si tratta della versione di bash installata tramite Homebrew)

  3. Cambiare la shell. Facile su altri sistemi Unix, un po’ meno su OS X per chi non ha mai usato Vim (come me). Nulla di trascendentale, però.
    • Si deve innanzi tutto dare il comando chsh, autenticarsi. A questo punto si apre Vim.
    • Prima cosa, premere i, per attivare insert mode e potere scrivere sul documento.
    • Poi si deve modificare il percorso della shell da adottare con il già scelto /usr/local/bin/bash.
    • Ora premere esc per uscire da questa modalità e, per salvare ed uscire, due Zeta maiuscole: ZZ.
  4. Chiudere e riaprire la shell.

Verificare

Viene il momento di controllare. Qual è il comando che avevamo usato all’inizio, bash --version? Riproviamo… il risultato è lo stesso di prima? Sì, ed è normale, perché questo comando non chiede di segnalare quale è la versione di bash in uso. Con questo comando la shell restituisce la versione del primo programma con il nome bash che incontra nel suo percorso (path), ed è normale che sia la vecchia versione di bash. Chiediamo piuttosto quale sia la shell in uso: echo $SHELL, e già questo comando dovrebbe restituirci il nuovo indirizzo. E per essere certi di avere fatto le cose per bene, qual’è la versione di questa bash? echo $BASH_VERSION

Esperimento riuscito? Me lo auguro!

11 Commenti

    • Confesso, non so cosa offre di più l’ultima versione di bash (uno degli articoli che ho incontrato e che segnalavano questa procedura lo faceva perché semplificava il lavoro in git). Ma visto che voglio tentare di imparare a usare bash, non ha senso non adottare l’ultima versione.

      D

  1. Su Mavericks ho dovuto dare il comando chpass -s /usr/local/bin/bash poiché chsh dopo l’inserimento della pass non apriva vim (forse perché ho cambiato l’editor di default ?!? 🙂 )

  2. Per cambiare la shell di default su osx non dovrebbe bastare andare in:

    Preferenze di sistema / utenti e gruppi / utente / impostazioni avanzate

    E lì mettere il percorso della nuova shell?

    • Andrea, hai ragione anche tu: utente, clic secondario, opzioni avanzate, Shell di login. Un metodo che fa meno scena, più semplice, e da tenere ugualmente presente: grazie!

      D

  3. Pingback: Installare Xcode e gli strumenti da riga di comando - - tevac

  4. Pingback: Installare Homebrew - - tevac

  5. Pingback: iTerm: arriva una nuova versione - - tevac

Lascia un commento

I campi richiesti sono evidenziati con *.