Pacchetti binari e sorgenti: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
==Introduzione==
__TOC__


La velocit� con cui scarichiamo gli aggiornamenti per la nostra distribuzione preferita, soprattutto se questi sono frequenti, � molto importante e ci pu� far risparmiare del tempo prezioso. Molti fattori influiscono nel determinare la qualit� della connessione tra il nostro computer e il server web che vogliamo raggiungere. Con apt-spy � possibile testare una lista di mirror dei repository debian per vedere quale risulta pi� veloce per la nostra connessione.
Su Debian abbiamo fondamentalmente due tipi di pacchetti: i binari e i
sorgenti. Partiamo dai primi.


==Pacchetti binari==


==Installazione==
I pacchetti binari sono archivi contenenti eseguibili, file di
configurazione e documentazione che assieme formano un'applicazione.
Sotto Debian, i binari hanno il suffisso .deb (c'è la possibilità anche
di usare rpm, ma questa è un'altra storia...).
Vediamo cosa contiene un archivio .deb:


Per installare apt-spy, � sufficiente un
<pre> # ls
<pre>
apache_1.3.33-6_i386.deb
# apt-get install apt-spy
# ar -tv apache_1.3.33-6_i386.deb
</pre>
rw-r--r-- 0/0      4 May 11 11:34 2005 debian-binary
rw-r--r-- 0/0  13852 May 11 11:34 2005 control.tar.gz
rw-r--r-- 0/0 369530 May 11 11:34 2005 data.tar.gz</pre>


Abbiamo un file e due tarball. Procediamo estraendo questi ultimi.


==Configurazione==
<pre> # ar -x apache_1.3.33-6_i386.deb
# ls
apache_1.3.33-6_i386.deb  control.tar.gz  data.tar.gz  debian-binary
# cat debian-binary
2.0</pre>


Il parametro -a di apt-spy permette di restringere la ricerca solo su una determinata area geografica (es: nord america, europa, ...). Queste zone sono definite nel file '''/etc/apt-spy.conf''' e pu� tornare utile definirne una personalizzata per risparmiare tempo.
Il file debian-binary stabilisce la versione del formato deb, in questo
caso la 2.0. Estraiamo gli archivi control.tar.gz e data.tar.gz.


La seguente lista ad esempio contiene solo le nazioni che hanno dato risultati migliori sul mio precedente test in cui ho usato l'Europa come area:
<pre> # tar xvzf control.tar.gz           
./
./config
./templates
./postinst
./preinst
./prerm
./postrm
./conffiles
./control
./md5sums
# tar xvzf data.tar.gz
./
./etc/
./etc/apache/
./etc/apache/conf.d/
./etc/init.d/
./etc/init.d/apache
./etc/logrotate.d/
./etc/logrotate.d/apache
./usr/
./usr/lib/
./usr/lib/apache/
./usr/lib/apache/suexec.disabled
./usr/lib/cgi-bin/
./usr/sbin/
./usr/sbin/apache
./usr/sbin/apachectl
./usr/share/
./usr/share/bug/
./usr/share/bug/apache/
./usr/share/bug/apache/presubj
./usr/share/doc/
./usr/share/doc/apache/
./usr/share/doc/apache/examples/
...</pre>


<pre>
L'archivio control.tar.gz contiene le informazioni riguardanti il
Custom-Area:
pacchetto e le sue dipendenze e degli script che vengono lanciati prima
AT
e dopo l'installazione o la rimozione.
DE
Il file ''control'' contiene il nome del pacchetto, la sua versione, la
DK
sezione, la priorità, l'architettura per cui è stato compilato il
GB
pacchetto, le dipendenze, il maintainer del pacchetto e la sua
GR
descrizione. Diamogli un'occhiata.
HR
IT
NO
PT
RO
</pre>


<pre> # cat control
Package: apache
Version: 1.3.33-6
Section: web
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.3.2.ds1-21), libdb4.2, libexpat1 (>= 1.95.8),
mime-support, apache-common (>= 1.3.33-6), apache-common (<< 1.3.34-0),
perl (>= 5.8.4-2), logrotate (>= 3.5.4-1), dpkg (>> 1.9.0), libmagic1,
debconf
Suggests: apache-doc
Conflicts: apache-modules, libapache-mod-perl (<= 1.17-1), jserv (<=
1.1-3)
Replaces: apache-modules
Provides: httpd-cgi, httpd
Installed-Size: 700
Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
Description: versatile, high-performance HTTP server
The most popular server in the world, Apache features a modular
design and supports dynamic selection of extension modules at runtime.
Some of its strong points are its range of possible customization,
dynamic adjustment of the number of server processes, and a whole
range of available modules including many authentication mechanisms,
server-parsed HTML, server-side includes, access control, CERN httpd
metafiles emulation, proxy caching, etc.  Apache also supports multiple
virtual homing.
.
Separate Debian packages are available for PHP, mod_perl, Java
Servlet support, Apache-SSL, and other common extensions.  More
information is available at http://www.apache.org/.</pre>


==Utilizzo==
Un pacchetto può avere priorità ''required'', ossia è necessario al funzionamento
del sistema, ''important'', quindi costituisce la base del sistema, ''standard'',
cioè i pacchetti comuni presenti su sistemi non troppo minimali, ''optional'',
i pacchetti totalmente opzionali, quindi X11, Emacs, e via dicendo, e infine
''extra'', che contiene pacchetti aventi caratteristiche particolari che li
distinguono dagli optional.
Oltre alle dipendenze vere e proprie (nel caso di sopra le libc, dpkg,
debconf, ecc.), abbiamo anche altri pacchetti citati, ossia i ''suggested
packages'', quindi quelli che possono funzionare bene assieme al pacchetto
che si sta installando, i ''recommended'', che comunemente vengono
installati assieme a quest'ultimo, i ''conflicts'' e i ''replaced packages'',
rispettivamente i pacchetti con cui va in contrasto e che sostituisce, e
infine i ''provided services'', i servizi che il pacchetto fornisce (in
questo caso, demone http con supporto cgi).
Guardiamo ora il file ''conffiles:''


Per prima cosa aggiornate la lista dei mirror:
<pre> # cat conffiles
<pre>
/etc/init.d/apache
# apt-spy update
/etc/logrotate.d/apache</pre>
</pre>


A questo punto siete pronti per lanciare apt-spy:
Vengono elencati i file di configurazione che verranno creati.
Gli scripts di cui parlavo prima sono postinst, postrm, preinst e prerm,
che si occupano come già detto delle operazione pre e post
installazione/rimozione.


<pre>
L'archivio data.tar.gz contiene tutti i file che verranno effettivamente
$ apt-spy -d unstable -o new_sources.list -a Custom-Area -w top5mirrors.txt
disposti nel filesystem.
</pre>
Diamo per esempio un'occhiata alla directory usr:


Vediamo i parametri usati:
<pre> # ls
apache_1.3.33-6_i386.deb  control.tar.gz  md5sums  prerm
conffiles                data.tar.gz    postinst  templates
config                    debian-binary  postrm    usr
control                  etc            preinst  var
# ls usr
lib  sbin  share
# ls usr/sbin
apache  apacheconfig  apachectl</pre>


; -d: specifica la distribuzione da usare (stable, testing, unstable, ..)
==Pacchetti sorgenti==


; -o: specifica il file in cui salvare il sources.list generato; di default verrebbe salvato in /etc/apt/sources.list per questo � consigliato specificare un nome diverso in modo che il nostro sources.list non venga sovrascritto!
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
contiene i sorgenti originali del software, e un .diff.gz contenente le
patch applicate da Debian al pacchetto.


; -a: specifica l'area da usare
<pre> # apt-get source irssi-text
Reading Package Lists... Done
Building Dependency Tree... Done
Need to get 1168kB of source archives.
Get:1 http://ftp.de.debian.org unstable/main irssi-text 0.8.9-3 (dsc)
[691B]
Get:2 http://ftp.de.debian.org unstable/main irssi-text 0.8.9-3 (tar)
[1154kB]
Get:3 http://ftp.de.debian.org unstable/main irssi-text 0.8.9-3 (diff)
[13.9kB]
Fetched 1168kB in 11s (103kB/s)                                               
dpkg-source: extracting irssi-text in irssi-text-0.8.9
# ls
irssi-text-0.8.9            irssi-text_0.8.9-3.dsc
irssi-text_0.8.9-3.diff.gz  irssi-text_0.8.9.orig.tar.gz</pre>


; -w: specifica in quale file scrivere la lista dei migliori server trovati; il numero predefinito di server di server che verranno listati � 5
Il file .dsc contiene la versione del software, l'architettura per cui è
stato scritto, la dipendenze da soddisfare e gli hash dei due archivi
per verificarne l'integrità.


<pre> # cat irssi-text_0.8.9-3.dsc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Altre opzioni interessanti:
Format: 1.0
Source: irssi-text
Version: 0.8.9-3
Binary: irssi-text
Maintainer: David Pashley <david@davidpashley.com>
Architecture: any
Standards-Version: 3.6.1
Build-Depends: libglib2.0-dev, perl (>= 5.8.1), libperl-dev (>= 5.8.1),
libncurses5-dev, debhelper (>= 3.0.18), libssl-dev, openssl,
autotools-dev
Files:
1df516a770656ff0bec0ab62f9096bf6 1153560 irssi-text_0.8.9.orig.tar.gz
37f128f0dafa596c006090a1036ec9b2 13944 irssi-text_0.8.9-3.diff.gz


; -t: specifica il tempo aprossimativo per ogni test; di default � 15 secondi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)


; -n: specifica il numero di server migliori da scrivere nel file specificato con -w
iD8DBQFCQU0ffDt5cIjHwfcRAoApAKCL5BUc7i9X3iQIQyapUJboWF9IPACgrWPd
/t+qP8OkRmh1e6mUH8wz+ic=
=TYfB
-----END PGP SIGNATURE-----</pre>


; -s: lista di nazioni, separate da virgola, da testare. Al momento non pu� essere usato insieme all'opzione -a. ''Per conoscere i codici delle nazioni potete guardare il file /etc/apt-spy.conf''.
I file di control già visti nei pacchetti binari sono anche qui,  
contenuti nella cartella debian dell'archivio.


<pre> # ls irssi-text-0.8.9
AUTHORS      README.cygwin    config.sub      findsyntax.pl      ltmain.sh
COPYING      TODO            configure      install-sh          missing
ChangeLog    acconfig.h      configure.in    irssi-config.in    mkinstalldirs
INSTALL      aclocal.m4      curses.m4      irssi-icon.png      scripts
Makefile.am  autogen.sh      debian          irssi-version.h.in  src
Makefile.in  colorless.theme  default.theme  irssi.conf          stamp-h.in
NEWS        config.guess    docs            irssi.spec          stamp.h.in
README      config.h.in      file2header.sh  irssi.spec.in      syntax.pl
# ls irssi-text-0.8.9/debian
botti.1    conffiles  copyright  irssi-text.postinst  prerm  undocumented
changelog  control    dirs      menu                rules</pre>
Nel caso si stia installando un pacchetto sorgente, è bene non seguire
la procedura ./configure;make;make install; perchè il pacchetto non
verrà tracciato, non si potrà prenderne informazioni tramite dpkg-query
e per la rimozione bisognerà procedere manualmente, con il rischio di
'sporcare' la distro.
È meglio usare strumenti quali dpkg-buildpackage e apt-build (per
cui rimando alle pagine di man) per avere i vantaggi della compilazione
senza 'sporcare' il sistema.


---- [[Utente:Virtual DarKness|Virtual DarKness]] 09:55, May 31, 2005 (EDT)
==Metapacchetti==
[[Categoria:Apt]]
 
Esiste un tipo particolare di pacchetto detto metapacchetto. Questo è un
pacchetto che in realtà non contiene alcun eseguibile o sorgente. Serve
semplicemente per installare tutto l'insieme di pacchetti (a volte a
loro volta metapacchetti) che lo costituisce.
Un esempio è il pacchetto kdebase:
 
<pre> # ls -l
total 6348
-rw-r--r--  1 root root 6486276 Jan 26 17:32 kdebase_2.2.2-14.9_i386.deb</pre>
 
Già le dimensioni lasciano presagire qualcosa: come può un pacchetto
come kdebase occupare solo poco più di 6 Mb? Spacchettiamolo:
 
<pre> # ar -x  kdebase_2.2.2-14.9_i386.deb
# ls
control.tar.gz  data.tar.gz  debian-binary  kdebase_2.2.2-14.9_i386.deb
# tar xvzf data.tar.gz
./
./usr/
./usr/share/
./usr/share/doc/
./usr/share/doc/kdebase/
./usr/share/doc/kdebase/README.pam
./usr/share/doc/kdebase/README.Debian
./usr/share/doc/kdebase/copyright
./usr/share/doc/kdebase/README.gz
./usr/share/doc/kdebase/changelog.Debian.gz
./usr/share/doc/kde/
./usr/share/doc/kde/HTML/
./usr/share/doc/kde/HTML/en/
./usr/share/doc/kde/HTML/en/kcontrol/
./usr/share/doc/kde/HTML/en/kdebugdialog/
./usr/share/doc/kde/HTML/en/kdesu/
./usr/share/doc/kde/HTML/en/kdm/
./usr/share/doc/kde/HTML/en/khelpcenter/
./usr/share/doc/kde/HTML/en/khelpcenter/faq/
./usr/share/doc/kde/HTML/en/khelpcenter/glossary/
./usr/share/doc/kde/HTML/en/khelpcenter/quickstart/
./usr/share/doc/kde/HTML/en/khelpcenter/userguide/
./usr/share/doc/kde/HTML/en/khelpcenter/visualdict/
...</pre>
 
L'archivio data.tar.gz contiene solo documentazione e delle librerie.
Diamo un'occhiata al control:
 
<pre> station:/opt# tar xvzf control.tar.gz
./
./shlibs
./postinst
./preinst
./prerm
./postrm
./conffiles
./md5sums
./control
station:/opt# cat control
Package: kdebase
Version: 4:2.2.2-14.9
Section: x11
Priority: optional
Architecture: i386
Depends: kdelibs3 (>= 4:2.2.2-1), libc6 (>= 2.2.4-4), libfam0,
libjpeg62, libkonq3 (>= 4:2.2.2-14.9), libpng2(>=1.0.12), libqt2 (>=
3:2.3.1-1), libstdc++2.10-glibc2.2 (>= 1:2.95.4-0.010810), xlibs (>>
4.1.0), zlib1g (>= 1:1.1.4), debianutils (>= 1.6), xfree86-common,
libpam-modules, kdewallpapers, kdebase-libs (= 4:2.2.2-14.9)
Recommends: kdebase-doc, konqueror, konsole, kate | kedit | kword,
libarts | libarts-alsa, kdebase-audiolibs | kdebase3-audiolibs, kscreensaver
Suggests: menu (>=1.5-5), kdm | x-display-manager, kde-i18n,
libpam-cracklib, xscreensaver, xscreensaver-gl, xearth, xplanet, usbutils
Provides: x-session-manager
Installed-Size: 16280
Maintainer: Christopher L Cheney <ccheney@debian.org>
Description: KDE core applications
This is a suite of all kde core applications :
Includes:  kicker, kwin, kdesktop and others...</pre>
 
In realtà, vediamo che a costituire il cuore di KDE sono le sue
dipendenze. Senza i metapacchetti bisognerebbe installare uno per uno i
pacchetti che costituiscono KDE.
 
 
 
---- [[User:sync|sync]]
[[Categoria:Apt-Dev]]

Versione delle 16:17, 17 gen 2010

Su Debian abbiamo fondamentalmente due tipi di pacchetti: i binari e i sorgenti. Partiamo dai primi.

Pacchetti binari

I pacchetti binari sono archivi contenenti eseguibili, file di configurazione e documentazione che assieme formano un'applicazione. Sotto Debian, i binari hanno il suffisso .deb (c'è la possibilità anche di usare rpm, ma questa è un'altra storia...). Vediamo cosa contiene un archivio .deb:

	# ls
	apache_1.3.33-6_i386.deb
	# ar -tv apache_1.3.33-6_i386.deb
	rw-r--r-- 0/0      4 May 11 11:34 2005 debian-binary
	rw-r--r-- 0/0  13852 May 11 11:34 2005 control.tar.gz
	rw-r--r-- 0/0 369530 May 11 11:34 2005 data.tar.gz

Abbiamo un file e due tarball. Procediamo estraendo questi ultimi.

	# ar -x apache_1.3.33-6_i386.deb
	# ls
	apache_1.3.33-6_i386.deb  control.tar.gz  data.tar.gz  debian-binary
	# cat debian-binary
	2.0

Il file debian-binary stabilisce la versione del formato deb, in questo caso la 2.0. Estraiamo gli archivi control.tar.gz e data.tar.gz.

	# tar xvzf control.tar.gz            
	./
	./config
	./templates
	./postinst
	./preinst
	./prerm
	./postrm
	./conffiles
	./control
	./md5sums
	# tar xvzf data.tar.gz
	./
	./etc/
	./etc/apache/
	./etc/apache/conf.d/
	./etc/init.d/
	./etc/init.d/apache
	./etc/logrotate.d/
	./etc/logrotate.d/apache
	./usr/
	./usr/lib/
	./usr/lib/apache/
	./usr/lib/apache/suexec.disabled
	./usr/lib/cgi-bin/
	./usr/sbin/
	./usr/sbin/apache
	./usr/sbin/apachectl
	./usr/share/
	./usr/share/bug/
	./usr/share/bug/apache/
	./usr/share/bug/apache/presubj
	./usr/share/doc/
	./usr/share/doc/apache/
	./usr/share/doc/apache/examples/
	...

L'archivio control.tar.gz contiene le informazioni riguardanti il pacchetto e le sue dipendenze e degli script che vengono lanciati prima e dopo l'installazione o la rimozione. Il file control contiene il nome del pacchetto, la sua versione, la sezione, la priorità, l'architettura per cui è stato compilato il pacchetto, le dipendenze, il maintainer del pacchetto e la sua descrizione. Diamogli un'occhiata.

	# cat control
	Package: apache
	Version: 1.3.33-6
	Section: web
	Priority: optional
	Architecture: i386
	Depends: libc6 (>= 2.3.2.ds1-21), libdb4.2, libexpat1 (>= 1.95.8), 
	mime-support, apache-common (>= 1.3.33-6), apache-common (<< 1.3.34-0), 
	perl (>= 5.8.4-2), logrotate (>= 3.5.4-1), dpkg (>> 1.9.0), libmagic1, 
	debconf
	Suggests: apache-doc
	Conflicts: apache-modules, libapache-mod-perl (<= 1.17-1), jserv (<= 
	1.1-3)
	Replaces: apache-modules
	Provides: httpd-cgi, httpd
	Installed-Size: 700
	Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
	Description: versatile, high-performance HTTP server
	 The most popular server in the world, Apache features a modular
	 design and supports dynamic selection of extension modules at runtime.
	 Some of its strong points are its range of possible customization,
	 dynamic adjustment of the number of server processes, and a whole
	 range of available modules including many authentication mechanisms,
	 server-parsed HTML, server-side includes, access control, CERN httpd
	 metafiles emulation, proxy caching, etc.  Apache also supports multiple
	 virtual homing.
	 .
	 Separate Debian packages are available for PHP, mod_perl, Java
	 Servlet support, Apache-SSL, and other common extensions.  More
	 information is available at http://www.apache.org/.

Un pacchetto può avere priorità required, ossia è necessario al funzionamento del sistema, important, quindi costituisce la base del sistema, standard, cioè i pacchetti comuni presenti su sistemi non troppo minimali, optional, i pacchetti totalmente opzionali, quindi X11, Emacs, e via dicendo, e infine extra, che contiene pacchetti aventi caratteristiche particolari che li distinguono dagli optional. Oltre alle dipendenze vere e proprie (nel caso di sopra le libc, dpkg, debconf, ecc.), abbiamo anche altri pacchetti citati, ossia i suggested packages, quindi quelli che possono funzionare bene assieme al pacchetto che si sta installando, i recommended, che comunemente vengono installati assieme a quest'ultimo, i conflicts e i replaced packages, rispettivamente i pacchetti con cui va in contrasto e che sostituisce, e infine i provided services, i servizi che il pacchetto fornisce (in questo caso, demone http con supporto cgi). Guardiamo ora il file conffiles:

	# cat conffiles
	/etc/init.d/apache
	/etc/logrotate.d/apache

Vengono elencati i file di configurazione che verranno creati. Gli scripts di cui parlavo prima sono postinst, postrm, preinst e prerm, che si occupano come già detto delle operazione pre e post installazione/rimozione.

L'archivio data.tar.gz contiene tutti i file che verranno effettivamente disposti nel filesystem. Diamo per esempio un'occhiata alla directory usr:

	# ls
	apache_1.3.33-6_i386.deb  control.tar.gz  md5sums   prerm
	conffiles                 data.tar.gz     postinst  templates
	config                    debian-binary   postrm    usr
	control                   etc             preinst   var
	# ls usr
	lib  sbin  share
	# ls usr/sbin
	apache  apacheconfig  apachectl

Pacchetti sorgenti

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 contiene i sorgenti originali del software, e un .diff.gz contenente le patch applicate da Debian al pacchetto.

	# apt-get source irssi-text
	Reading Package Lists... Done
	Building Dependency Tree... Done
	Need to get 1168kB of source archives.
	Get:1 http://ftp.de.debian.org unstable/main irssi-text 0.8.9-3 (dsc) 
	[691B]
	Get:2 http://ftp.de.debian.org unstable/main irssi-text 0.8.9-3 (tar) 
	[1154kB]
	Get:3 http://ftp.de.debian.org unstable/main irssi-text 0.8.9-3 (diff) 
	[13.9kB]
	Fetched 1168kB in 11s (103kB/s)                                                
	dpkg-source: extracting irssi-text in irssi-text-0.8.9
	# ls
	irssi-text-0.8.9            irssi-text_0.8.9-3.dsc
	irssi-text_0.8.9-3.diff.gz  irssi-text_0.8.9.orig.tar.gz

Il file .dsc contiene la versione del software, l'architettura per cui è stato scritto, la dipendenze da soddisfare e gli hash dei due archivi per verificarne l'integrità.

	# cat irssi-text_0.8.9-3.dsc
	-----BEGIN PGP SIGNED MESSAGE-----
	Hash: SHA1

	Format: 1.0
	Source: irssi-text
	Version: 0.8.9-3
	Binary: irssi-text
	Maintainer: David Pashley <david@davidpashley.com>
	Architecture: any
	Standards-Version: 3.6.1
	Build-Depends: libglib2.0-dev, perl (>= 5.8.1), libperl-dev (>= 5.8.1), 
	libncurses5-dev, debhelper (>= 3.0.18), libssl-dev, openssl, 
	autotools-dev
	Files: 
	 1df516a770656ff0bec0ab62f9096bf6 1153560 irssi-text_0.8.9.orig.tar.gz
	 37f128f0dafa596c006090a1036ec9b2 13944 irssi-text_0.8.9-3.diff.gz

	-----BEGIN PGP SIGNATURE-----
	Version: GnuPG v1.2.5 (GNU/Linux)

	iD8DBQFCQU0ffDt5cIjHwfcRAoApAKCL5BUc7i9X3iQIQyapUJboWF9IPACgrWPd
	/t+qP8OkRmh1e6mUH8wz+ic=
	=TYfB
	-----END PGP SIGNATURE-----

I file di control già visti nei pacchetti binari sono anche qui, contenuti nella cartella debian dell'archivio.

	# ls irssi-text-0.8.9
	AUTHORS      README.cygwin    config.sub      findsyntax.pl       ltmain.sh
	COPYING      TODO             configure       install-sh          missing
	ChangeLog    acconfig.h       configure.in    irssi-config.in     mkinstalldirs
	INSTALL      aclocal.m4       curses.m4       irssi-icon.png      scripts
	Makefile.am  autogen.sh       debian          irssi-version.h.in  src
	Makefile.in  colorless.theme  default.theme   irssi.conf          stamp-h.in
	NEWS         config.guess     docs            irssi.spec          stamp.h.in
	README       config.h.in      file2header.sh  irssi.spec.in       syntax.pl
	# ls irssi-text-0.8.9/debian
	botti.1    conffiles  copyright  irssi-text.postinst  prerm  undocumented
	changelog  control    dirs       menu                 rules

Nel caso si stia installando un pacchetto sorgente, è bene non seguire la procedura ./configure;make;make install; perchè il pacchetto non verrà tracciato, non si potrà prenderne informazioni tramite dpkg-query e per la rimozione bisognerà procedere manualmente, con il rischio di 'sporcare' la distro. È meglio usare strumenti quali dpkg-buildpackage e apt-build (per cui rimando alle pagine di man) per avere i vantaggi della compilazione senza 'sporcare' il sistema.

Metapacchetti

Esiste un tipo particolare di pacchetto detto metapacchetto. Questo è un pacchetto che in realtà non contiene alcun eseguibile o sorgente. Serve semplicemente per installare tutto l'insieme di pacchetti (a volte a loro volta metapacchetti) che lo costituisce. Un esempio è il pacchetto kdebase:

	# ls -l
	total 6348
	-rw-r--r--  1 root root 6486276 Jan 26 17:32 kdebase_2.2.2-14.9_i386.deb

Già le dimensioni lasciano presagire qualcosa: come può un pacchetto come kdebase occupare solo poco più di 6 Mb? Spacchettiamolo:

	# ar -x  kdebase_2.2.2-14.9_i386.deb
	# ls
	control.tar.gz  data.tar.gz  debian-binary  kdebase_2.2.2-14.9_i386.deb
	# tar xvzf data.tar.gz
	./
	./usr/
	./usr/share/
	./usr/share/doc/
	./usr/share/doc/kdebase/
	./usr/share/doc/kdebase/README.pam
	./usr/share/doc/kdebase/README.Debian
	./usr/share/doc/kdebase/copyright
	./usr/share/doc/kdebase/README.gz
	./usr/share/doc/kdebase/changelog.Debian.gz
	./usr/share/doc/kde/
	./usr/share/doc/kde/HTML/
	./usr/share/doc/kde/HTML/en/
	./usr/share/doc/kde/HTML/en/kcontrol/
	./usr/share/doc/kde/HTML/en/kdebugdialog/
	./usr/share/doc/kde/HTML/en/kdesu/
	./usr/share/doc/kde/HTML/en/kdm/
	./usr/share/doc/kde/HTML/en/khelpcenter/
	./usr/share/doc/kde/HTML/en/khelpcenter/faq/
	./usr/share/doc/kde/HTML/en/khelpcenter/glossary/
	./usr/share/doc/kde/HTML/en/khelpcenter/quickstart/
	./usr/share/doc/kde/HTML/en/khelpcenter/userguide/
	./usr/share/doc/kde/HTML/en/khelpcenter/visualdict/
	...

L'archivio data.tar.gz contiene solo documentazione e delle librerie. Diamo un'occhiata al control:

	station:/opt# tar xvzf control.tar.gz
	./
	./shlibs
	./postinst
	./preinst
	./prerm
	./postrm
	./conffiles
	./md5sums
	./control
	station:/opt# cat control
	Package: kdebase
	Version: 4:2.2.2-14.9
	Section: x11
	Priority: optional
	Architecture: i386
	Depends: kdelibs3 (>= 4:2.2.2-1), libc6 (>= 2.2.4-4), libfam0, 
	libjpeg62, libkonq3 (>= 4:2.2.2-14.9), libpng2(>=1.0.12), libqt2 (>= 
	3:2.3.1-1), libstdc++2.10-glibc2.2 (>= 1:2.95.4-0.010810), xlibs (>> 
	4.1.0), zlib1g (>= 1:1.1.4), debianutils (>= 1.6), xfree86-common, 
	libpam-modules, kdewallpapers, kdebase-libs (= 4:2.2.2-14.9)
	Recommends: kdebase-doc, konqueror, konsole, kate | kedit | kword, 
	libarts | libarts-alsa, kdebase-audiolibs | kdebase3-audiolibs, kscreensaver
	Suggests: menu (>=1.5-5), kdm | x-display-manager, kde-i18n, 
	libpam-cracklib, xscreensaver, xscreensaver-gl, xearth, xplanet, usbutils
	Provides: x-session-manager
	Installed-Size: 16280
	Maintainer: Christopher L Cheney <ccheney@debian.org>
	Description: KDE core applications
	 This is a suite of all kde core applications :
	 Includes:  kicker, kwin, kdesktop and others...

In realtà, vediamo che a costituire il cuore di KDE sono le sue dipendenze. Senza i metapacchetti bisognerebbe installare uno per uno i pacchetti che costituiscono KDE.



sync