Metapacchetto

Versione del 19 giu 2006 alle 15:17 di TheNoise (discussione | contributi) (alcune aggiunte)

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.