Ceci n'est pas un blog

Blog personale di Ivan Agliardi con pagine di informatica, linguaggi, idee…

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… 🙂

A proposito di Ivan Agliardi

Ho immaginazione e creatività, ma non sono un artista. Faccio interagire tra loro aziende dando vita a nuove imprese, ma non sono un imprenditore. Mi occupo da oltre 15 anni di server Linux, applicazioni web, database, domini, hosting, housing, sicurezza informatica e sistemi embedded, ma non sono un tecnico. Faccio SEO, SEM, SMM e fornisco contenuti attraverso i miei copyrighter, ma non sono un uomo marketing. Ora ho di nuovo un blog, ma non sono un blogger. Sono solo un umanista e un informatico della prima ora. E mi circondo di gente con le palle :)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ivan Agliardi

Ivan Agliardi