Error de creación del paquete Debian
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?
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).