Qualche volta vogliamo usare una specifica versione di un programma disponibile solo tramite i sorgenti, senza alcun pacchetto Debian. Ma per il sistema di gestione dei pacchetti questo può essere un problema. Supponiamo che si voglia compilare una nuova versione del server e-mail SMTP. Non ci sarebbero problemi, ma molti pacchetti di Debian dipendono da un MTA. E quando si installa qualcosa che abbiamo compilato in proprio, il sistema di gestione dei pacchetti non sa nulla del nuovo software.
Qui entra in scena equivs
. Per installarlo si può usare
apt-get install equivs. Equivs crea un pacchetto vuoto che è
capace di soddisfare qualunque dipendenza, facendo così credere al sistema di
gestione dei pacchetti che le dipendenze sono soddisfatte.
Prima di iniziare è bene ricordare che esistono modi più sicuri per compilare un programma già impacchettato per Debian con opzioni differenti, e che non si dovrebbe usare equivs per rimpiazzare le dipendenze se non sa quali possono essere le conseguenze sul sistema. Vedere Lavorare con i pacchetti sorgente, Capitolo 6 per ulteriori informazioni.
Continuiamo con l'esempio del MTA, si è appena installato il neo-compilato
postfix
e ora vuoi installare mutt
. Immediatamente
ci accorgeremo che mutt
vuole installare un altro MTA. Ma abbiamo
già il nostro!
Cambiando directory (/tmp
, per esempio), eseguire:
# equivs-control name
Mettere al posto di name il nome del file di controllo da creare. Il file che sarà creato è come quello che segue:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: <enter package name; defaults to equivs-dummy> Version: <enter version here; defaults to 1.0> Maintainer: <your name and email address; defaults to username> Pre-Depends: <packages> Depends: <packages> Recommends: <packages> Suggests: <package> Provides: <(virtual)package> Architecture: all Copyright: <copyright file; defaults to GPL2> Changelog: <changelog file; defaults to a generic changelog> Readme: <README.Debian file; defaults to a generic one> Extra-Files: <additional files for the doc directory, commaseperated> Description: <short description; defaults to some wise words> long description and info . second paragraph
Ora dobbiamo modificarlo per fargli fare quello che vogliamo. Vediamo il formato dei campi e la loro descrizione, non li spiegheremo tutti ma soltanto quelli necessari:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: mta-local Provides: mail-transport-agent
mutt
dipende da mail-transport-agent
, che è un
pacchetto virtuale fornito da tutti i MTA, si potrebbe semplicemente nominare
il pacchetto mail-transport-agent
, ma è preferibile usare lo
schema dei pacchetti virtuali tramite `Provides'.
Ora serve solo creare il pacchetto:
# equivs-build name dh_tstdir touch build-stamp dh_testdir dh_testroot dh_clean -k # Add here commands to install the package into debian/tmp. touch install-stamp dh_testdir dh_testroot dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package `name' in `../name_1.0_all.deb'. The package has been created. Attention, the package has been created in the current directory,
Ed installare il .deb finale.
Come possiamo vedere, ci sono molti usi di equivs
. Si può creare
un pacchetto my-fovorites, che dipende dai programmi che
abitualmente si installano, per esempio. Abbiamo la più completa libertà di
scelta, ma dobbiamo valutare attentamente quello che abbiamo intenzione di
fare.
Infine facciamo notare che ci sono vari esempi di file di controllo in
/usr/share/doc/equivs/example
.
Molti utenti Debian usano solo un locale (si intende la specifica di lingua e timezone). Un utente brasiliano, per esempio, generalmente usa locale settato come pt_BR tutto il tempo e non gli interessa avere a disposizione anche es.
localepurge
è uno strumento molto utile per questi utenti. Si può
liberare molto spazio mantenendo solo i file di locale che realmente si usano.
Per installare localepurge: apt-get install localepurge.
Questo pacchetto è veramente semplice da configurare dato che debconf guida l'utente passo dopo passo nella sua configurazione. Tuttavia si deve porre attenzione alle risposte delle prime domande, che, se non corrette, potrebbero causare la rimozione di tutti i file di locale, compresi quelli che si indendeva mantenere. In questo caso, l'unico modo per ripristinare questi file è reinstallare i pacchetti che li forniscono.
APT HOWTO
1.7.6 - Gennaio 2002kov@debian.org