Pacchetti binari e sorgenti: differenze tra le versioni

revisionata
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 ''control'' contiene il nome del pacchetto, la sua versione, la  
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 ''conffiles:''
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
1 508

contributi