1 508
contributi
S3v (discussione | contributi) Nessun oggetto della modifica |
(revisionata) |
||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|Tutte le versioni di Debian}} | |||
__TOC__ | __TOC__ | ||
==Introduzione== | |||
Su Debian abbiamo fondamentalmente due tipi di pacchetti: i binari e i | Su Debian abbiamo fondamentalmente due tipi di pacchetti: i binari e i | ||
sorgenti. Partiamo dai primi. | sorgenti. Partiamo dai primi. | ||
Riga 9: | Riga 11: | ||
configurazione e documentazione che assieme formano un'applicazione. | configurazione e documentazione che assieme formano un'applicazione. | ||
Sotto Debian, i binari hanno il suffisso .deb (c'è la possibilità anche | Sotto Debian, i binari hanno il suffisso .deb (c'è la possibilità anche | ||
di usare rpm, ma questa è un'altra storia | di usare rpm, ma questa è un'altra storia). | ||
Vediamo cosa contiene un archivio .deb: | Vediamo cosa contiene un archivio .deb: | ||
Riga 27: | Riga 29: | ||
2.0</pre> | 2.0</pre> | ||
Il file debian-binary stabilisce la versione del formato deb, in questo | Il file <code>debian-binary</code> stabilisce la versione del formato deb, in questo | ||
caso la 2.0. Estraiamo gli archivi control.tar.gz e data.tar.gz. | caso la 2.0. Estraiamo gli archivi <code>control.tar.gz</code> e <code>data.tar.gz</code>. | ||
<pre> # tar xvzf control.tar.gz | <pre> # tar xvzf control.tar.gz | ||
Riga 67: | Riga 69: | ||
...</pre> | ...</pre> | ||
L'archivio control.tar.gz contiene le informazioni riguardanti il | L'archivio <code>control.tar.gz</code> contiene le informazioni riguardanti il | ||
pacchetto e le sue dipendenze e degli script che vengono lanciati prima | pacchetto e le sue dipendenze e degli script che vengono lanciati prima | ||
e dopo l'installazione o la rimozione. | e dopo l'installazione o la rimozione. | ||
Il file | Il file <code>control</code> contiene il nome del pacchetto, la sua versione, la | ||
sezione, la priorità, l'architettura per cui è stato compilato il | sezione, la priorità, l'architettura per cui è stato compilato il | ||
pacchetto, le dipendenze, il maintainer del pacchetto e la sua | pacchetto, le dipendenze, il maintainer del pacchetto e la sua | ||
Riga 120: | Riga 122: | ||
infine i ''provided services'', i servizi che il pacchetto fornisce (in | infine i ''provided services'', i servizi che il pacchetto fornisce (in | ||
questo caso, demone http con supporto cgi). | questo caso, demone http con supporto cgi). | ||
Guardiamo ora il file | Guardiamo ora il file <code>conffiles</code>: | ||
<pre> # cat conffiles | <pre> # cat conffiles | ||
Riga 127: | Riga 129: | ||
Vengono elencati i file di configurazione che verranno creati. | Vengono elencati i file di configurazione che verranno creati. | ||
Gli scripts di cui parlavo prima sono postinst, postrm, preinst e prerm, | Gli scripts di cui parlavo prima sono <code>postinst</code>, <code>postrm</code>, <code>preinst</code> e <code>prerm</code>, | ||
che si occupano come già detto delle operazione pre e post | che si occupano come già detto delle operazione pre e post | ||
installazione/rimozione. | installazione/rimozione. | ||
L'archivio data.tar.gz contiene tutti i file che verranno effettivamente | L'archivio <code>data.tar.gz</code> contiene tutti i file che verranno effettivamente | ||
disposti nel filesystem. | disposti nel filesystem. | ||
Diamo per esempio un'occhiata alla directory usr: | Diamo per esempio un'occhiata alla directory <code>usr</code>: | ||
<pre> # ls | <pre> # ls | ||
Riga 148: | Riga 150: | ||
I pacchetti sorgenti sono costituiti da due archivi e un file di testo: | I pacchetti sorgenti sono costituiti da due archivi e un file di testo: | ||
un file .dsc che descrive il pacchetto, un archivio .orig.tar.gz che | un file <code>.dsc</code> che descrive il pacchetto, un archivio <code>.orig.tar.gz</code> che | ||
contiene i sorgenti originali del software, e un .diff.gz contenente le | contiene i sorgenti originali del software, e un <code>.diff.gz</code> contenente le | ||
patch applicate da Debian al pacchetto. | patch applicate da Debian al pacchetto. | ||
Riga 168: | Riga 170: | ||
irssi-text_0.8.9-3.diff.gz irssi-text_0.8.9.orig.tar.gz</pre> | irssi-text_0.8.9-3.diff.gz irssi-text_0.8.9.orig.tar.gz</pre> | ||
Il file .dsc contiene la versione del software, l'architettura per cui è | Il file <code>.dsc</code> contiene la versione del software, l'architettura per cui è | ||
stato scritto, la dipendenze da soddisfare e gli hash dei due archivi | stato scritto, la dipendenze da soddisfare e gli hash dei due archivi | ||
per verificarne l'integrità. | per verificarne l'integrità. | ||
Riga 215: | Riga 217: | ||
Nel caso si stia installando un pacchetto sorgente, è bene non seguire | Nel caso si stia installando un pacchetto sorgente, è bene non seguire | ||
la procedura ./configure;make;make install; perchè il pacchetto non | la procedura <code>./configure;make;make install</code>; perchè il pacchetto non | ||
verrà tracciato, non si potrà prenderne informazioni tramite dpkg-query | verrà tracciato, non si potrà prenderne informazioni tramite <code>dpkg-query</code> | ||
e per la rimozione bisognerà procedere manualmente, con il rischio di | e per la rimozione bisognerà procedere manualmente, con il rischio di | ||
'sporcare' la distro. | 'sporcare' la distro. | ||
È meglio usare strumenti quali dpkg-buildpackage e apt-build (per | È meglio usare strumenti quali <code>dpkg-buildpackage</code> e <code>apt-build</code> (per | ||
cui rimando alle pagine di man) per avere i vantaggi della compilazione | cui rimando alle pagine di man) per avere i vantaggi della compilazione | ||
senza 'sporcare' il sistema. | senza 'sporcare' il sistema. | ||
Riga 267: | Riga 269: | ||
...</pre> | ...</pre> | ||
L'archivio data.tar.gz contiene solo documentazione e delle librerie. | L'archivio <code>data.tar.gz</code> contiene solo documentazione e delle librerie. | ||
Diamo un'occhiata al control: | Diamo un'occhiata al <code>control</code>: | ||
<pre> station:/opt# tar xvzf control.tar.gz | <pre> station:/opt# tar xvzf control.tar.gz |
contributi