Questo è un posto dove ho sempre trovato carente la documentazione. Praticamente ho imparato solo come funziona osservando come viene fatto in altri pacchetti. Come per la maggior parte delle cose nel packaging Debian, ci sono alcuni modi per farlo. Trovo che il modo più semplice sia usare i debian/package.install
file. Ecco un esempio di un pacchetto su cui ho lavorato, immaginazione (ramo bzr) .
Innanzitutto, dobbiamo creare il pacchetto in debian/control
. Adesso ci sono tre stanze. Uno per il pacchetto sorgente e uno per ciascun pacchetto binario. Si noti che il pacchetto foo-data dovrebbe essere Architecture: all
. Nota anche che l'immaginazione dipende imagination-common (= ${source:Version})
.
Quindi, creiamo un debian/imagination.install
file. Questo contiene i file o percorsi specifici che vogliamo finire nel pacchetto di immaginazione. Per questo pacchetto vogliamo tutti i file dipendenti dall'architettura. Il file desktop è incluso come deve dire con il binario che chiama nella sua Exec:
linea.
usr/bin/
usr/lib/
/usr/share/applications/imagination.desktop
Dobbiamo creare un debian/imagination-common.install
file. Ciò conterrà tutti i file, le immagini, le traduzioni, i documenti e simili indipendenti dall'architettura.
/usr/share/doc/
/usr/share/icons/
/usr/share/imagination/
/usr/share/locale/
man dh_install
descrive cosa sta realmente succedendo qui:
forse hai un pacchetto di grandi dimensioni che crea più pacchetti binari. È possibile utilizzare il Makefile upstream per installarlo tutto in debian / tmp, quindi utilizzare dh_install per copiare directory e file da lì nelle directory di compilazione del pacchetto appropriate.
Che cosa intende per "la corretta pacchetto directory costruire" è che entro la fine del processo di generazione, tutto ciò che sarà nella risultante foo.deb
sarà trovato in src/debian/foo
. I file che finiranno si foo-data.deb
troveranno in src/debian/foo-data
. Essendo debian/rules
essenzialmente solo un Makefile, puoi iniziare a immaginare altri modi per ottenere lo stesso risultato.