Skip to Content

Mantenere aggiornato il sistema

La gestione delle applicazioni in FreeBSD non è molto complicata grazie alla struttura dei ports, ma se non si tengono presente alcune regole base può diventare piuttosto ardua e frustrante. Questa guida vuole essere riassunto per la gestione base dei pacchetti e un riferimento rapido da consultare.

Le procedure indicate sono da considerarsi valide per le versioni di FreeBSD 6, 7 e 8.

Strumenti utilizzati

Per poter gestire al meglio l'aggiornamento del sistema saranno utilizzati i comandi freebsd-update, portsnap, portupgrade. Mentre i primi due sono disponibili da subito nel sistema base, portupgrade deve essere installato manualmente, per fare ciò basterà seguire le istruzioni:

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

oppure se si preferisce utilizzare i pacchetti binari:

# pkg_add -r portupgrade 

Aggiornamento del sistema

Aggiornamento del sistema base

L'aggiornamento se sistema base avviene semplicemente eseguendo il comando:

# freebsd-update fetch install 

Aggiornamento dell'albero di ports

Adesso è molto importante aggiornare tutto l'albero dei ports all'ultima versione disponibile, può essere fatto tramite il semplice comando:

# portsnap fetch update 

In questa fase viene assunto che è già installato tutto l'albero dei ports nel sistema, ma se così non fosse, nessun problema il comando lanciato creerà l'albero aggiornato.

Aggiornamento delle applicazioni 

A questo punto siamo nella fase più importante dell'aggiornamento in quanto dobbiamo aggiornare le applicazioni. Normalmente si dovrebbero aggiornare le applicazioni insieme, ma a volte può essere necessario aggiornarle in tempi diversi o aggiornarle in parte, dipende dalle situazioni. Per aggiornare l'intero gruppo di applicazioni installate nel sistema basterà lanciare il comando:

# portupgrade -a 

Per aggiornare una sola applicazione (ad esempio mysql 5.0 server) si indica il nome dell'applicazione; inoltre per aggiornare le sue dipendenze bisogna usare il parametro -R. Possono essere aggiornate due o più applicazioni separando i nomi con uno spazio. Esempi:

# portupgrade mysql50-server
Aggiorna mysql50-server
 
# portupgrade -R mysql50-server
Aggiorna mysql50-server e tutte le applicazioni da cui dipende
 
# portupgrade -r mysql50-server
Aggiorna mysql50-server e le applicazioni che dipendono da questa
 
# portupgrade mysql50-server mysql50-client apache22
Aggiorna le applicazioni mysql50-server mysql50-client apache22
 
# portupgrade mysql50-*
Aggiorna le applicazioni che cominciano per nome mysql50-

Configurazione avanzata di portupgrade
Spesso si ha la necessità di gestire l'aggiornamento di alcuni pacchetti in maniera particolare specificando alcune opzioni di compilazione; alcune sono gestite tramite il classico menu di scelta che grazie alla struttura dei ports vengono salvate, altre opzioni devono essere specificate nel make. Ad esempio se si vuole installare mysql con default il set caratteri utf-8 e la collazione utf8_unicode_ci si usano i comandi:

# cd /usr/ports/databases/mysql50-server
# make install clean WITH_CHARSET=utf-8 WITH_COLLATION=utf8_unicode_ci 

Successivamente se si esegue un portupgrade i due parametri del make verranno persi e l'applicazione verrà aggiornata con le opzioni di default. Mantenere queste opzioni è possibile e per farlo basta introdurre i parametri nel file di configurazione di portupgrade, /usr/local/etc/pkgtools.conf:

MAKE_ARGS = {
'databases/mysql50-server' => 'WITH_CHARSET=utf-8 WITH_COLLATION=utf8_unicode_ci',
}

Anche in questo caso è possibile usale wildcars, ad esempio:

MAKE_ARGS = {
'databases/mysql50-server' => 'WITH_CHARSET=utf-8 WITH_COLLATION=utf8_unicode_ci',
'www/apache*' => 'WITH_FULLBUILD=yes WITH_MYSQL=yes WITHOUT_IPV6=yes',
'lang/php*' => 'WITH_APACHE=yes WITHOUT_IPV6=yes',
}

Infine esistono le opzioni globali, valide per più applicazioni, e possono essere specificate nel file /etc/make.conf. Un esempio classico è il caso di un server che non bisogno di interfaccia grafica X11, quindi occorre disabilitare la componente X11 da tutte le applicazioni che ne fanno uso introducendo nel file /etc/make.conf la riga:

WITHOUT_X11=yes

Consigli per l'installazione di nuove applicazioni 

Un ultimo importante utilizzo di portupgrade è la possibilità di utilizzarlo per installare nuove applicazioni nel sistema, senza doversi muovere nell'albero dei ports. Utilizzare portupgrade per l'installazione delle applicazioni da il grande vantaggio di poter configurare i parametri di compilazione, come visto prima, per l'applicazione da installare e per tutte le sue dipendenze rendendo il l'operazione molto rapida ed elegante. Il parametro da usare in questo caso è -N, es:

# portupgrade -N mysql50-server 

Per concludere ricordo che è possibile consultare tutte le opzioni di portupgrade e le direttive del file pkgtools.conf tramite il comando man della shell. Poi oltre il manuale di FreeBSD, vi sono i commenti del file pkgtools.conf che forniscono un sunto molto utile con esempi molto significativi per ogni direttiva. 

Realizzato con Drupal, un sistema open source per la gestione dei contenuti