Gestione dei pacchetti in Debian (1a parte).

Gestione dei pacchetti in Debian (1a parte).

Gli archivi della distribuzione GNU/Linux Debian hanno un formato particolare e l’estensione `.deb’ (quelli binari). Anche se attualmente solo la distribuzione Debian utilizza questo formato, la maggior parte del software per GNU/Linux è disponibile sotto forma di archivi Debian; spesso anche molto di più di quello che si può ottenere dalle altre distribuzioni.

Per poter gestire tale formato in un sistema GNU/Linux diverso dalla distribuzione Debian, occorre il programma `dpkg’. Con l’aiuto di FTPSearch, http://ftpsearch.lycos.com, si può cercare un archivio che assomigli a `dpkg*.tar.gz’.

Valgono le stesse considerazioni fatte a proposito degli archivi RPM: se la propria distribuzione GNU/Linux non è fatta per gestire i pacchetti archiviati in formato Debian, l’unica motivazione ragionevole per procurarsi il programma di gestione di questi è quella di poterli convertire nel formato a cui si è abituati.debian 2

Caratteristiche dei pacchetti Debian.

I pacchetti della distribuzione sono archiviati in modo differente, a seconda che si tratti di pacchetti binari o di pacchetti sorgenti. I pacchetti binari, cioè tutto quello che può essere usato così come si trova (compresa la documentazione), è archiviato nel formato Debian (`.deb’), mentre i sorgenti sono composti da terne di file: una descrizione contenuta in un file con estensione `.dsc’, l’archivio dei sorgenti originali in un file con estensione `.orig.tar.gz’, e un file di differenze da applicare ai sorgenti originali, in questo caso con l’estensione `.diff.gz’.

Il nome di un archivio contenente un pacchetto binario Debian ha una struttura riassumibile nello schema seguente:

_-.deb

Un pacchetto Debian binario, oltre ai file che compongono il pacchetto e che vengono installati, contiene:

*un file di «controllo» (`control’), con quasi tutte le informazioni relative al pacchetto, in particolare le sue dipendenze;

*un file contenente l’elenco dei file di configurazione, per i quali occorre avere un occhio di riguardo (`conffiles’);

*due coppie di script che controllano la fase di installazione e quella di disinstallazione del pacchetto (`preinst’, `postinst’, `prerm’, `postrm’).
Priorità di un pacchetto

A ogni pacchetto Debian viene attribuita una priorità, rappresentata da una definizione standard. Questa permette di facilitare la scelta dei pacchetti da installare. Si usano le parole chiave seguenti:

Leggi anche:  Firestarter personal firewall, la sicurezza su Linux.

*`required’

indica un pacchetto necessario per il funzionamento elementare del sistema;

*`important’

indica un pacchetto importante per buon funzionamento del sistema;

*`standard’

indica un pacchetto che fa parte di software comune in un sistema GNU/Linux, senza richiedere la presenza del sistema grafico X;

*`optional’

indica un pacchetto opzionale;

*`extra’

indica un pacchetto destinato a un uso specializzato, o che va in conflitto con altri pacchetti di livello precedente.

È interessante osservare che il livello di priorità è un’informazione che normalmente non è contenuta nei pacchetti, ma viene attribuita all’esterno di questi. La si ritrova nei file `Packages’ e `Packages.cd’ che verranno descritti in seguito.

debian-inst-mirror

Dipendenze secondo i pacchetti Debian.

Come accennato, il file di controllo contiene in particolare le informazioni sulle dipendenze del pacchetto. Secondo la logica di Debian, le dipendenze avvengono sempre in relazione a «pacchetti»: quando si tratta di una dipendenza da una funzionalità, questa viene identificata attraverso un «pacchetto virtuale». L’esempio seguente è un estratto delle informazioni relative al pacchetto `apache-ssl’, dove si vede l’uso delle definizioni di quasi tutti i tipi di dipendenza e di incompatibilità:

Depends: libc6 (>= 2.0.7u-6), libssl09, mime-support, perl, …
Suggests: apache-doc, lynx
Conflicts: apache-modules, php3 (<= 3.0.3-1), libapache-mod-perl (<= 1.15-2.1) Replaces: apache-modules Provides: httpd Le varie parole chiave hanno il significato seguente: * `depends’ indica un elenco di pacchetti indispensabili, eventualmente con il livello di versione richiesto, che devono essere presenti perché questo possa funzionare; * `recommends’ indica un elenco di pacchetti raccomandati, anche se non indispensabili, perché il pacchetto che si installa possa essere utilizzato opportunamente; * `suggests’ indica un elenco di pacchetti suggeriti, che starebbero bene assieme a quello che si installa; * `conflicts’ indica un elenco di pacchetti che non possono convivere assieme a questo; * `replaces’ indica un elenco di pacchetti che vengono rimpiazzati da questo; * `provides’ indica un elenco di pacchetti che rappresentano le funzionalità offerte da questo. Le parole chiave utilizzate sono verbi posti alla terza persona singolare, come dire che «il pacchetto A: dipende da… raccomanda… suggerisce… va in conflitto con… sostituisce… fornisce le funzionalità…».

Leggi anche:  HTML 5 mettiamoci in pari con l'evoluzione del Web.

Osservando l’esempio, il pacchetto in questione fornisce le funzionalità `httpd’ (in questo caso un pacchetto virtuale), ovvero quelle di un servente HTTP, è incompatibile con il pacchetto `apache-modules’, oltre che con altri, e inoltre va a sostituire lo stesso pacchetto `apache-modules’. 15.1.3 Stato di un pacchetto Secondo la logica del sistema di gestione dei pacchetti Debian, lo stato di un pacchetto può avere tre gruppi di caratteristiche: lo stato in relazione a ciò che è installato nel sistema, lo stato di selezione, e alcune caratteristiche speciali. Rispetto al sistema, un pacchetto può essere: * `installed’ — installato il pacchetto risulta installato correttamente nel sistema, e anche al configurazione è stata completata; * `half-installed’ — semi-installato l’installazione del pacchetto non è stata completata per qualche ragione; * `not-installed’ — non installato il pacchetto non risulta installato; * `unpacked’ — estratto il pacchetto risulta estratto dall’archivio, ma non è stato configurato; * `half-configured’ — semi-configurato il pacchetto risulta estratto dall’archivio, e la configurazione non è stata completata per qualche ragione; * `config-files’ — file di configurazione del pacchetto sono presenti solo i file di configurazione.

Il sistema di installazione e disinstallazione dei pacchetti Debian è in realtà una procedura, con la quale si «prenotano» delle operazioni che poi vengono eseguite in sequenza. Sotto questo aspetto, un pacchetto che in qualche modo sia «conosciuto» da questa procedura ha anche uno stato di selezione (come già accennato), che può essere: * `unknown’ — sconosciuto quando non è mai stata richiesta la sua installazione (e di conseguenza non è nemmeno installato); * `install’ — da installare quando è stata richiesta la sua installazione, o il suo aggiornamento; * `remove’, `deinstall’ — da togliere quando è stata richiesta la sua disinstallazione normale, cioè senza cancellare i file di configurazione; * `purge’ — da eliminare completamente quando è stata richiesta la sua eliminazione totale, compresi i file di configurazione.

debian.org - Chromium

Infine, un pacchetto può essere stato marcato in modo che non venga aggiornato o sostituito con un’altra versione, `hold’, oppure può essere stato marcato dal sistema di gestione dei pacchetti perché risulta danneggiato in qualche modo, e in tal senso viene indicato come candidato alla reinstallazione, `reinst-required’. Per conoscere lo stato di un pacchetto si può usare `dpkg’ richiedendo l’azione `-l’. L’esempio seguente mostra l’elenco di alcuni pacchetti con l’indicazione del loro stato: Desired=Unknown/Install/Remove/Purge | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description
+++-===============-==============-============================================ ii gnome-admin 1.0.1-1 Gnome Admin Utilities (gulp and logview) ii gnome-bin 1.0.3-1 Miscellaneous binaries used by Gnome rc gnome-card-game 1.0.1-4 Gnome card games – Solitaire games (FreeCell rc gnome-control-c 0.30-2 The Gnome Control Center ii gnome-core 1.0.1-0.3 Common files for Gnome core apps and help br ii gnome-dev-doc 1.0.3-1 Gnome developers documentation pn gnome-games (no description available)
ii gnome-games-loc 1.0.1-4 The locale databases for the gnome-games pa
rc gnome-gnibbles 1.0.1-4 A cute little game that has no description
rc gnome-gnobots 1.0.1-4 Gnome version of text based robots game for
pn gnome-guile (no description available)
un gnome-gxnsnmp (no description available)
pn gnome-gxsnmp (no description available)
ii gnome-terminal 1.0.1-0.3 The Gnome terminal emulator application

Leggi anche:  Oltre 43 000 pacchetti di software libero in Debian.

Colonna Sigla Significato.

1 u Pacchetto sconosciuto.
1 i Pacchetto da installare.
1 r Pacchetto da rimuovere (lasciando la configurazione).
1 p Pacchetto da eliminare completamente.
2 n Pacchetto non installato.
2 i Pacchetto installato.
2 c Sono presenti solo i file di configurazione.
2 u Pacchetto estratto dall’archivio, ma non configurato.
2 f Configurazione interrotta.
2 h Installazione interrotta.
3 Nessuno stato particolare.
3 h Segnato per la conservazione alla versione attuale.
3 r Si richiede la reinstallazione.
3 x Equivalente a «h» e a «r» messi assieme.

Significato delle lettere utilizzate nelle prime tre colonne del rapporto generato con `dpkg -l’.

Debian

Precedente Evolution, client di posta elettronica potente e flessibile targato Gnome. Successivo Gestione dei pacchetti in Debian (2a parte).

Lascia un commento