FreeBSD: come effettuare l'aggiornamento dei ports

Prima di tuffarmi a capofitto nel mondo di Debian GNU/Linux ho lavorato alcuni anni quasi esclusivamente con FreeBSD, che continuo ad utilizzare su alcuni server che ospitano applicazioni critiche.

Come (quasi) tutti sanno, FreeBSD mette a disposizione due meccanismi distinti per l’installazione delle applicazioni: il sistema dei Packages per l’installazione di pacchetti precompilati e l’albero dei Ports per l’installazione autocompilante. Il primo metodo di gestione dei pacchetti somiglia in tutto e per tutto a quelli adottati dalle principali distro Linux. Per chi lavora abitualmente con Slackware le analogie sono particolarmente evidenti, come dimostra la screenshot di una pagina di `sysinstall` che riproduco di seguito.

Diverso invece il caso dei ports, che in un certo senso sono il “vero” strumento di gestione del software sotto FreeBSD. La gestione dei ports permette di scaricare localmente il tree, ovvero l’alberatura completa delle istruzioni di compilazione e installazione, suddivisa per categorie di software. In ogni singolo port scaricato nel tree locale è riportata la descrizione delle dipendenze e lo scheletro del codice. Attraverso una serie di semplici comandi è possibile installare, disinstallare, reinstallare, cancellare, aggiornare ogni programma installato sul server, compresi i servizi core del sistema operativo.

Per una corretta manutenzione dell’alberatura dei ports è bene predisporre un meccanismo di aggiornamento dei tree. Per prima cosa, assicuriamoci che i ports siano installati sul server, in caso contrario pensiamoci noi:

# pkg_add -r cvsup-without-gui
# mkdir /usr/ports

Il primo comando installa CVSup, il software con cui sotto FreeBSD si gestisce il versioning dei port.

Procediamo ora al popolamento dell’alberatura aggiornata dei ports:

# cvsup -L 2 -h cvsup9.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

Capita spesso che, dopo molti secondi di inattività, il comando restituisca un errore di connessione. Non vi preoccupate, in questo caso attendete qualche secondo oppure provate a cambiare repository scalando da 9 – teoricamente il meno utilizzato – a scendere:

# cvsup -L 2 -h cvsup8.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
# cvsup -L 2 -h cvsup7.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
# cvsup -L 2 -h cvsup6.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
# cvsup -L 2 -h cvsup5.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
# cvsup -L 2 -h cvsup4.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
[...]

Ripetendo questa semplice operazione ogni volta che vorremo effettuare un aggiornamento completo dei ports avremo sempre a disposizione software aggiornato anche per il nostro server FreeBSD. Se vogliamo, ad esempio, installare l’ultima versione di `mutt`, il celebre programma di gestione della posta elettronica da linea di comando, procediamo come segue:

# cd /usr/ports
# make search name=Mutt
# cd mail/mutt
# make install clean

Fatto… 🙂

Condivido

Leave a comment