2011-10-16 7 views
5

Sto provando a creare un pacchetto .deb Debain. Pacchetto è stato creato con successo ma sto ottenendo seguente errore quando provo ad installarlo:dpkg che dà errore "È una directory"

unable to open file '/var/lib/dpkg/tmp.ci//opt': Is a directory 

Il pacchetto struttura della directory è:

. 
└── DEBIAN 
    ├── control 
    ├── opt 
    │   └── myDir 
    │    └── myfile 
    ├── postinst 
    └── preinst 

In preinst ho - mkdir -p /opt/myDir postinst è vuoto

Se provo ad installare il pacchetto su un host diverso, ottengo sotto l'errore:

package control info rmdir of `opt' didn't say not a dir: Directory not empty

Qualche idea?

+1

Per prima cosa, non si desidera creare le directory in fase di preinstallazione. Dpkg lo creerà se necessario. In secondo luogo, non si desidera installare i pacchetti Debian in/opt. Questa è una violazione di Debian Policy e dell'FHS. Detto questo, non so esattamente perché stai vedendo l'errore. –

+0

Si prega di postare l'intero script 'preinst'. – Flimzy

risposta

4

Il layout della directory è errato. Dovrebbe essere simile a questo:

. 
├── opt 
│ └── myDir 
│  └── myfile 
└── DEBIAN 
    ├── control 
    ├── postinst 
    └── preinst 

Dopo aver creato il pacchetto è possibile testare il suo formato con lintian:

lintian my-package.deb 

Ho avuto lo stesso problema, come si e lintian mi ha aiutato a risolvere il problema.