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.




