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?

È stato utile?

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top