Metapacchetto

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca

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.