3.42. Come installo le applicazioni? Cos'è un port? Cos'è un package?

Molta gente non usa un sistema operativo, ma usa applicazioni. È quindi fondamentale che un sistema operativo ben fatto consenta all'utente di installare, rimuovere, aggiornare, configurare facilmente i programmi che preferisce. FreeBSD ha un sistema di gestione pacchetti molto efficiente, denominato ports. Il sistema dei ports è costituito da un albero di directory che comincia in /usr/ports contententi Makefile: il software è suddiviso in diverse categorie a seconda della tipologia: audio, editors, net, security, x11, www...

Installare un port è molto semplice: innanzi tutti è necessario individuare in quale directory si trovi il port. Per fare questo spostiamoci in /usr/ports/ ed eseguiamo la ricerca nel seguente modo:

# make search name=wmnd
Port:   wmnd-0.4.7        (1)
Path:   /usr/ports/net/wmnd        (2)
Info:   Improved network monitoring dock app (with tons of features)        (3)
Maint:  flag@gufi.org        (4)
Index:  net (5)
B-deps: XFree86-libraries-4.3.0_6 expat-1.95.6_1 fontconfig-2.2.90_3
freetype2-2.1.5_1 gettext-0.12.1 gmake-3.80_1 imake-4.3.0_1
libiconv-1.9.1_3 perl-5.6.1_15 pkgconfig-0.15.0        (6)

R-deps: XFree86-libraries-4.3.0_6 expat-1.95.6_1 fontconfig-2.2.90_3
freetype2-2.1.5_1 imake-4.3.0_1 perl-5.6.1_15 pkgconfig-0.15.0        (7) 
   
Questo comando esegue la ricerca di wmnd tra i nomi di tutti i ports, e se trova risultati, li mostra indicandone:
(1)
Nome e versione del software
(2)
Percorso completo della directory del port
(3)
Una brevissima descrizione del software
(4)
L'indirizzo email del maintainer del port, ossia del responsabile del port, al quale vanno segnalati bug, aggiornamenti, patches, ecc.
(5)
Le categorie di cui fa parte questo software
(6)
I pacchetti necessari alla compilazione di questo software (più oltre si vedrà esattamente cosa significa ciò).
(7)
I pacchetti necessari al corretto funzionamento di questo software.
È possibile sostituire la parola key a name per allargare la ricerca a tutti i campi e non solo al nome.

Entriamo quindi nella directory del port indicata dal campo Path: ed esaminiamo il suo contenuto:

# cd /usr/ports/net/wmnd
# ls
Makefile        README.html     distinfo
pkg-descr       pkg-message     pkg-plist
  
Makefile contiene le istruzioni per la compilazione e l'installazione del port. README.html e pkg-descr contengono una descrizione del port in una decina di righe. pkg-message è un messaggio per l'utente che viene visualizzato una volta completata l'installazione. L'impronta md5 del pacchetto sorgente è contenuta nel file distinfo.

L'installazione avviene con un semplice comando:

# make install clean distclean
  
Ora saranno scaricati i sorgenti del programma, che verranno patchati se necessario, compilati ed installati. Quindi verrà rimossa la directory di lavoro ./work e il pacchetto dei sorgenti che era posto in /usr/ports/distfiles/.

È molto importante che tutte le applicazioni vengano installate attraverso i ports, perché solo così si potrà garantire un perfetto funzionamento delle applicazioni stesse.

I packages non sono altro che ports già compilati dal cluster di FreeBSD.org. Sono utili in caso si voglia risparmiare il tempo di compilazione, quindi specialmente per le macchine più lente e/o i pacchetti più grossi (OpenOffice, KDE, Gnome). Per installare un package si agisce in questo modo:

# pkg_add -r wmnd 
  
Il pacchetto precompilato verrà scaricato ed installato. Se si ha già il pacchetto disponibile sul proprio computer è sufficiente
# pkg_add pacchetto