pacchetto debian creando le directory necessarie in preinst
Domanda
Ho la seguente struttura debian:
- debian / usr / share / test
- debian / usr / share / test / test
- debian / usr / share / test / test / a
- debian / usr / share / test / test / b
Dopo aver compilato il pacchetto usando dpkg-deb --build e averlo installato usando dpkg -i, non sembra creare automaticamente il test delle cartelle se non esistono. Devo crearli manualmente nello script preinst?
AGGIORNAMENTO: il problema era dovuto al fatto che preinst aveva un errore, quindi il disimballaggio non ha avuto la possibilità di accadere.
Laurent
Soluzione
Guarda un mio esempio qui .
debian/DEBIAN
debian/usr/bin
debian/usr/lib
Hai un paio di scelte:
- Popolare le directory con i file prima di generare il pacchetto (pacchetto binario)
- Crea un pacchetto sorgente in cui verrà chiamato MAKE per compilare il pacchetto e installarlo.
Nel primo caso, non è necessario creare le directory tramite uno script preinst
: la gerarchia di cartelle verrà creata, se necessario, dal gestore pacchetti quando il pacchetto viene installato.
Nel secondo caso, dovrai usare mkdir -p
per creare la gerarchia di cartelle durante la fase installa
.
Ho passato 3 diversi modi di impacchettare i repository Debian nell'ultimo anno e credetemi, i dettagli da tenere in considerazione sono numerosi. Un sollievo è stato quello di fare conoscenza con Launchpad e il loro processo di pubblicazione PPA.
Altri suggerimenti
Hai bisogno di quelli nel pacchetto chiamato tmp
o uguale al tuo primo pacchetto elencato in debian / control, a seconda della versione della modalità di compatibilità debhelper scelta.
es. una chiamata da uno dei file di esempio debhelper
:
$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
Qui manca un livello di riferimento indiretto.