Dopo una introduzione generale ad Homebrew ed ai suoi concorrenti e dopo aver visto come installare (e disinstallare) Homebrew, è arrivata finalmente l’ora di imparare ad usarlo.
Homebrew si utilizza dalla linea di comando tramite il comando brew
. Data la sua semplicità e per il target di utenti a cui è dedicato, non dispone di una interfaccia grafica, che sottrarrebbe solo risorse allo sviluppo del sistema di base. Del resto non ce n’è bisogno, i pochi comandi di Homebrew sono abbastanza facili e coerenti da essere imparati senza troppi problemi.
Il comando brew
è sempre seguito da una singola istruzione che specifica cosa fare, ed eventualmente da una o più opzioni e dal nome di uno (o più) package su cui operare. In sintesi:
$ brew istruzione [opzione ...] [package ...]
dove le parti non obbligatorie del comando sono fra parentesi quadre.
Prima di iniziare ad installare dei nuovi package, è consigliabile aggiornare Homebrew con
$ brew update
Se ci sono nuovi aggiornamenti del sistema (cosa che succede molto di frequente) questi vengono scaricati ed installati automaticamente. Alla fine Homebrew risponde con un messaggio analogo a questo (Figura 1)
Updated Homebrew from e36a15fd to bd1818ee.
seguito eventualmente dalla lista dei nuovi package disponibili (o formulae nel gergo di Homebrew), di quelli aggiornati e di quelli eventualmente rimossi dal sistema di gestione
==> New Formulae
darcs nutcracker shrewsoft-vpn-client
git-annex pandoc somagic
...
...
==> Updated Formulae
ansible gwyddion mitproxy
ant hamsterdb mkvtomp4
...
...
Se si vogliono cercare informazioni su un qualunque package di Homebrew, ad esempio su pandoc
che, come si vede sopra, è stato appena aggiunto al sistema, si possono usare i comandi
$ brew search pandoc
che elenca tutti i package disponibili il cui nome contiene la stringa pandoc
, oppure
$ brew info pandoc
che riporta una serie di informazioni utili sul package
$ brew info pandoc
pandoc: stable 1.12.3 (bottled)
http://johnmacfarlane.net/pandoc/
Not installed
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/pandoc.rb
==> Dependencies
Build: ghc ✘, cabal-install ✘
Required: gmp ✔
fra cui la versione del software, la disponibilità in formato bottled cioè di pacchetto precompilato, il sito web del package, lo stat dell’installazione, i package da cui dipende (le cosiddette dipendenze) e di cui ha bisogno per funzionare correttamente.
Come si vede in Figura 2, pandoc
per essere compilato (build) ha bisogno di ghc
e cabal-install
(il segno indica che che non sono installati) e per funzionare richiede obbligatoriamente (required) il package gmp
(che invece è già installato).
Si possono ottenere ulteriori informazioni su un package (Figura 2) con
$ brew deps pandoc
che elenca tutte le dipendenze, sia del package in sé che, in modo ricorsivo, di tutti i package di cui ha bisogno, e con
$ brew home pandoc
che riporta direttamente al sito web del package, in questo caso al sito Pandoc, a universal document converter.
Infine il comando senza opzioni
$ brew search
restituisce l’elenco completo di tutti i package disponibili in Homebrew.
Per contare il numero dei package presenti in Homebrew in un determinato momento si può passare la lista ottenuta con brew search
al comando wc
, la cui opzione -w
conta il numero di parole contenute nella lista in ingresso (Figura 3)
$ brew search | wc -w
3102
Sono anche disponibili due ottimi siti web, Search Brew e braumeister.org , che semplificano notevolmente il processo di ricerca dei package presenti in Homebrew.
Una volta selezionato un package, questo può essere installato con il comando
$ brew install package
Ad esempio, provando ad installare il package pandoc
si ottiene
$ brew install pandoc
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/pandoc-1.12.3.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring pandoc-1.12.3.mavericks.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
==> Summary
🍺 /usr/local/Cellar/pandoc/1.12.3: 48 files, 50M
che scarica automaticamente il package precompilato, insieme alle eventuali dipendenze, e lo installa sul Mac (Figura 4). Se il package non è disponibile in formato precompilato, Homebrew si occupa di scaricare il sorgente, configurarlo e installarlo automaticamente, senza che l’utente sia obbligato ad intervenire nel corso del processo.
È anche possibile installare contemporaneamente più di un package, basta elencarli di seguito nel comando di installazione, separati da spazi
$ brew install package1 package2 ...
Per disinstallare un package si usa (ovviamente)
$ brew uninstall pandoc
Uninstalling /usr/local/Cellar/pandoc/1.12.3...
Infine, per ottenere la lista dei package già installati da Homebrew
$ brew list
align gnuplot lua py2cairo
atk gobject-introspection matplotlib pygobject
...
...
oppure
$ brew list --versions
align 1.7.2
atk 2.10.0 2.12.0
autoconf 2.69
automake 1.14.1
autotrace 0.31.1_1
cairo 1.12.16_1
...
...
che riporta la lista dei package installati insieme al relativo numero di versione (Figura 5).
Come già detto all’inizio del post, il comando
$ brew update
serve per aggiornare il sistema Homebrew vero e proprio, mentre il comando
$ brew outdated
serve per ottenere la lista delle nuove versioni dei package già installati, che possono essere poi aggiornati con
$ brew upgrade
Questi comandi sono più che sufficienti per usare Homebrew. Un uso più avanzato del sistema richiede solo (pochi) altri comandi, che vedremo in un prossimo post.