software,

Homebrew: i comandi principali

Sabino Maggi Sabino Maggi Segui 8-May-2014 · 6 minuti di lettura
Condividi

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
...
...
Figura 1. Aggiornamento di Homebrew.
Figura 1. Aggiornamento di Homebrew.

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).

Figura 2. Richiesta di informazioni su un package.
Figura 2. Richiesta di informazioni su un package.

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
Figura 3. Conteggio del numero di package presenti in Homebrew.
Figura 3. Conteggio del numero di package presenti in Homebrew.

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.

Figura 4. Installazione di un package.
Figura 4. Installazione di un package.

È 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).

Figura 5. Lista dei package già installati da Homebrew.
Figura 5. Lista dei package già installati da Homebrew.

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.

Sabino Maggi
Pubblicato da Sabino Maggi Segui
Commenti

Aggiungi un commento