Errore di creazione del pacchetto Debian
Domanda
Sto cercando di creare un pacchetto Debian, ma ho questo strano problema di pseudo-directory. Corro:
$ fakeroot debian/rules binary
Ho già creato il binario prima, ma qualcosa deve essere cambiato sul mio sistema. Ora dh_md5sums esce e restituisce:
md5sum: include: Is a directory
dh_md5sums: command returned error code
make: *** [binary-arch] Error 1
In effetti, include
è una directory. Quindi, ho aggiunto alcune dichiarazioni di debug a dh_md5sums, per capire perché include
è stato sottoposto a hash, nonostante la riga che avrebbe dovuto filtrare le directory. Aggiunta:
doit("ls", "-l", "$tmp");
mostra che, in effetti, include
non è una directory quando viene eseguito dh_md5sums:
total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
# some directories removed for brevity's sake
Quindi, posso rimuoverlo? Ho aggiunto:
doit("rm", "$tmp/include");
e ottenuto:
rm: cannot remove `debian/myproject/include': Is a directory
forse ... trasformato in una directory? Ho aggiunto un altro ls -l
sotto il rm
e ho ottenuto:
total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
e quando gli script sono stati eseguiti, posso fare:
$ ls -l
drwxr-xr-x 2 x x 4096 2009-06-18 13:48 bin
drwxr-xr-x 3 x x 4096 2009-06-18 13:48 include
drwxr-xr-x 3 x x 4096 2009-06-18 13:48 var
... il che è strano, poiché include
diventa una directory e la proprietà cambia ( x
è il mio nome utente). include
contiene anche tutti i file di intestazione che dovrebbe.
Qualcuno sa cosa sta succedendo?
Soluzione
total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
# some directories removed for brevity's sake
Nota che include
ha un numero di collegamenti pari a 3, a indicare che si tratta di una directory con 1 sottodirectory o di un file con 3 collegamenti reali. Il primo sembra più probabile.
Sembra una cattiva interazione con fakeroot. L'ho visto prima in cui a volte fakeroot "dimentica" permessi, quindi ricontrolla che quando include
viene creato o modificato che abbia il tipo giusto (e che nessuno di questi abbia cambiamenti recenti).