Devi probabilmente scegliere il pacchetto che vuoi creare. La prima cosa da
fare è controllare se il pacchetto è già nella distribuzione. Se usi la
distribuzione `stabile', forse è meglio che tu vada all'indirizzo pagina di ricerca dei
pacchetti
. Se usi la corrente distribuzione
`instabile', verificalo con i comandi:
dpkg -s program dpkg -l '*program*'
Se il pacchetto già esiste, bene, installalo! :-) Se fosse stato reso orfano
-- se il suo maintainer è configurato come "Debian QA Group",
dovresti essere in grado di prenderlo in carico. Consulta lista dei pacchetti
orfani
e la lista dei pacchetti in
adozione
per verificare che il pacchetto sia effettivamente
disponibile.
Se sei in grado di adottare il pacchetto, prendi i sorgenti (con qualcosa come apt-get source packagename) ed esaminali. Questo documento purtroppo non include informazioni esaustive sulla adozione di pacchetti. Fortunatamente non dovrai fare un duro lavoro per capire come il pacchetto funziona poichè qualcuno avrà già fatto la configurazione iniziale al posto tuo. Continua a leggere comunque, molti dei suggerimenti nel seguito saranno ancora applicabili nel tuo caso.
Se il pacchetto è nuovo, e decidi che ti piacerebbe facesse parte di Debian, procedi come segue:
la
lista dei pacchetti sui quali si lavora
per vedere se qualcun altro
sta lavorando sullo stesso pacchetto. Se così fosse, contatta il maintainer
corrente se pensi che occorra. Altrimenti - trova un altro programma
interessante che nessuno ha in mantenimento.
Linee Guida per il
Software Libero Debian
. Se non è conforme a qualcuna di tali
regole, ma può comunque essere distribuito, può ancora essere incluso nelle
sezioni `contrib' o `non-free'.. Se non sei sicuro di dove debba essere
incluso chiedi un suggerimento su debian-legal@lists.debian.org
.
Ovviamente queste cose sono solo misure di sicurezza, intese per salvarti dall'ira degli utenti se fai qualcosa di sbagliato in qualche daemon setuid... Una volta acquisita qualche esperienza nella pacchettizzazione, sarai anche in grado di creare quel tipo di pacchetti, ma anche lo sviluppatore più esperto consulta la mailing list debian-devel quando ha qualche dubbio. E i partecipanti saranno lieti di darti una mano.
Per maggiori informazioni su queste cose, consulta la Guida di Riferimento per lo Sviluppatore.
La prima cosa da fare è trovare e scaricare il pacchetto originale. Sto supponendo che tu abbia già i file dei sorgenti recuperati dalla homepage dell'autore. I sorgenti per programmi free Linux sono generalmente in formato tar/gzip, con estensione .tar.gz, contengono una subdirectory dal nome programma-versione e tutti i sorgenti sotto di essa. Se il sorgente è in qualche altro formato di archiviazione (per esempio, il nome del file finisce in ".Z" o ".zip") scompattalo con i programmi appropriati, o chiedi a un esperto Debian se non sei sicuro su come scompattarlo correttamente (suggerimento: usa il comando `file archivio.estensione').
A titolo di esempio, utilizzerò un programma dal nome `gentoo', un file manager per X basato su GTK+. Osserva che il programma in questione è già pacchettizzato ed ha subito sostanziali modifiche dal momento in cui questo testo è stato inizialmente scritto.
Crea una sottodirectory nella tua home dal nome `debian' o `deb' o un altro
nome che ritieni appropriato (per es. anche ~/gentoo/
sarebbe
adatto in questo caso). Sposta l'archivio scaricato in essa e scompattalo (con
`tar xzf gentoo-0.9.12.tar.gz'). Assicurati che non ci siano errori, anche
qualcuno "irrilevante," perché potrebbe probabilmente dare problemi
di spacchettamento sul sistema di altri, i cui programmi di scompattazione
potrebbero o meno ignorare tali anomalie.
A questo punto hai un'altra sottodirectory, dal nome `gentoo-0.9.12'. Spostati sotto tale directory e leggi approfonditamente la documentazione fornita. Generalmente ci sono file come README*, INSTALL*, *.lsm o *.html. Devi trovare le istruzioni su come compilare correttamente e installare il programma (molto probabilmente, si assume che tu voglia installare sotto /usr/local/bin; non lo farai, ma trovi altro su questo argomento più in là in Installazione in una sotto-directory, Sezione 3.1).
La procedura cambia da programma a programma, ma molti dei programmi più recenti hanno uno script `configure' che configura i sorgenti sotto il tuo sistema e ti assicura che il sistema sia nella condizioni di compilarli. Dopo la configurazione (con il comando `./configure'), i programmi sono generalmente compilati con `make'. Alcuni supportano il comando `make check' per lanciare dei controlli automatici inclusi. L'installazione nelle directory destinazione viene generalmente fatta con `make install'.
Adesso prova a compilare ed eseguire il programma, per essere sicuro che lavori correttamente e niente sia andato male durante l'installazione o l'esecuzione.
Puoi anche lanciare generalmente `make clean' per rimuovere i file installati (o meglio ancora `make distclean') per ripulire la directory di compilazione. Talvolta c'e' anche un `make uninstall` che può essere usato per rimuovere tutti i file installati.
Dovresti iniziare la pacchettizzazione con una directory di sorgenti completamente ripulita, o semplicemente partendo da una nuova scompattazione dei sorgenti.
Per costruire correttamente il pacchetto, dovresti modificare il nome del programma originale in minuscolo (se già non lo fosse), e rinominare la directory in <pacchetto>-<versione>.
Se il nome del programma consiste di più di una parola, contrailo in una sola parola, o fanne una abbreviazione. Per esempio, il pacchetto del programma "John's little editor for X" potrebbe essere chiamato johnledx o jle4x, o qualsiasi altra cosa tu decida in modo da stare sotto un numero ragionevole di caratteri, per esempio 20.
Controlla anche l'esatta versione del programma (che deve essere inclusa nella versione del pacchetto). Se il programma non è numerato con versioni quali X.Y.Z, ma con qualche tipo di data, sei libero di utilizzare tale data come numero di versione, con un prefisso "0.0." (giusto nel caso in cui un upstream, un giorno, decida di rilasciare una versione più comoda come "1.0"). Così se la data di rilascio fosse il 19 Dicembre 1998, potresti usare la stringa di versione 0.0.19981219.
Alcuni programmi non hanno affatto una numerazione, nel qual caso dovresti contattare l'upstream maintainer, per vedere se viene usato qualche altro metodo di revisione.
Assicurati di trovarti nella directory dei sorgenti del programma e lancia il comando seguente:
dh_make -e tuo.maintainer@indirizzo -f ../gentoo-0.9.12.tar.gz
Ovviamente, sostituisci alla stringa "tuo.maintainer@indirizzo" il
tuo indirizzo e-mail da includere come voce del changelog e in altri file, e al
nome del file il nome originale dell'archivio dei sorgenti. Vedi
dh_make(1)
per dettagli.
Verranno visualizzate alcune informazioni. Ti verrà chiesto che genere di pacchetto vuoi creare. Gentoo è un singolo pacchetto binario - crea un solo binario, e perciò un solo file .deb - per cui selezionerai la prima opzione con il tasto `s', e controllerai le informazioni sullo schermo, confermando la scelta con <invio>.
Dopo questa esecuzione di dh_make
, una copia del tarpalla
dell'upstream viene creato col nome gentoo_0.9.12.orig.tar.gz
nella directory superiore per consentire la creazione di un pacchetto Debian
sorgente non nativo con il diff.gz
. Nota due caratteristiche
chiave in questo nome di file:
Ancora una volta, come nuovo maintainer non sei incoraggiato a creare pacchetti complessi, per esempio:
Non è difficile, ma richiede un po' più di conoscenze, per cui non ne parleremo in questo documento.
Osserva che dovresti lanciare dh_make
una sola
volta, perché non avrebbe un comportamento corretto se lo eseguissi
nuovamente nella stessa directory già "debianizzata". Questo
significa anche che userai un metodo diverso per rilasciare una nuova revisione
o una nuova versione del tuo pacchetto, in futuro. Leggi altro in merito più
oltre in Aggiornamento del pacchetto, Capitolo
9
Guida per il nuovo Maintainer
versione 1.2.3, 18 January 2005.joy-mg@debian.org
frankie@debian.org