Pregunta

Estoy tratando de construir un paquete Debian, pero tengo este extraño problema de pseudo-directorio. Ejecuto:

$ fakeroot debian/rules binary

He construido el binario antes, pero algo debe haber cambiado en mi sistema. Ahora dh_md5sums errores y devuelve:

md5sum: include: Is a directory
dh_md5sums: command returned error code
make: *** [binary-arch] Error 1

De hecho, include es un directorio. Entonces, agregué algunas declaraciones de depuración a dh_md5sums, para descubrir por qué include se estaba modificando a pesar de la línea que supuestamente filtraría los directorios. Agregando:

doit("ls", "-l", "$tmp");

muestra que, de hecho, include no es un directorio cuando se ejecuta 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

Entonces, ¿puedo eliminarlo? Agregué:

doit("rm", "$tmp/include");

y obtuve:

rm: cannot remove `debian/myproject/include': Is a directory

tal vez ... ¿se convirtió en un directorio? Agregué otro ls -l debajo del rm y obtuve:

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

y cuando los scripts terminen de ejecutarse, puedo hacer:

$ 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

... lo cual es extraño, ya que include se convierte en un directorio y la propiedad cambia ( x es mi nombre de usuario). include incluso contiene todos los archivos de encabezado que se supone que debe contener.

¿Alguien sabe lo que está pasando?

¿Fue útil?

Solución

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

Tenga en cuenta que include tiene un recuento de enlaces de 3, lo que indica que es un directorio con 1 subdirectorio o un archivo con 3 enlaces duros. Lo primero parece más probable.

Esto parece una mala interacción con fakeroot. Lo he visto antes donde fakeroot a veces "olvida". permisos, así que verifique dos veces que cuando se está creando o modificando include que tiene el tipo correcto (y que ninguno de estos tiene cambios recientes).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top