Metapacchetto
Un metapacchetto rappresenta una forma di astrazione usata, tipicamente, nel sistema di pacchettizzazione .deb.
Un metapacchetto rappresenta, infatti, un pacchetto vuoto, la cui unica importanza è determinata dalle dipendenze. La cosa sembra molto complessa e poco chiara; ecco un esempio chiarificatore: kde.
Prendendo in esame il pacchetto kde si notano subito alcune peculiarità comuni a tutti i metapacchetti:
- dimensione pressoché nulla: Size: 7500, Installed-Size: 16
- la dipendenza da pacchetti eterogenei: Depends: kde-core, kde-amusements, kdeaddons, kdeadmin, kdeartwork, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdeutils, kdewebdev (che si scoprirà essere altri metapacchetti)
- i tag, se presenti, role::aux:metapackage, special::meta
Quindi, come si può capire da queste informazioni, è utilizzato proprio per le sue dipendenze. Installando kde, infatti, verranno installati i pacchetti da cui dipende (e, in modo ricorsivo, le loro dipendenze) così da installare semplicemente tutto il sistema kde tramite un solo comando.
Altri metapacchetti degni di nota sono:
- gnome
- gnome-office
- kde
- koffice
- mozilla
- python
- ruby
- x-window-system (in Etch e Sid è solo di transizione, vedi descrizione)
- xorg (solo per Ecth e Sid)
Si può ottenere una lista completa dei metapacchetti (oltre 400) semplicemente elencando i pacchetti che contengono la parola metapakage nei tag o nelle descrizioni:
$ aptitude search '(~Gmetapackage|~dmetapackage)' | less
A questi si aggiungono le seguenti eccezioni:
- linux-image-486
- linux-image-686
- linux-image-686-smp
- linux-image-k7
- linux-image-k7-smp
(per Sarge i nomi incominciano con kernel-image)
che sono dei metapacchetti che dipendono sempre dall'ultimo kernel Linux disponibile per la sotto-architettura specificata. In tal modo, installando il pacchetto adatto al proprio sistema, il kernel verrà automaticamente aggiornato non appena sia disponibile una nuova versione (si passerà ad esempio dal 2.6.15 a 2.6.17). Viceversa, se non si installa il metapacchetto, il kernel non verrà mai aggiornato poiché i kernel Debian hanno la versione come parte integrante del nome del pacchetto e quindi una nuova versione viene vista come un nuovo pacchetto e non come un aggiornamento, come giusto che sia.