Erreur de création du paquet Debian
Question
J'essaie de construire un paquet Debian, mais j'ai ce problème étrange de pseudo-répertoire. Je cours:
$ fakeroot debian/rules binary
J'ai déjà construit le binaire, mais quelque chose doit avoir changé sur mon système. Maintenant dh_md5sums sort et retourne:
md5sum: include: Is a directory
dh_md5sums: command returned error code
make: *** [binary-arch] Error 1
En effet, include
est un répertoire. J'ai donc ajouté quelques instructions de débogage à dh_md5sums, pour comprendre pourquoi le code
doit("ls", "-l", "$tmp");
montre qu'en effet, include
n'est pas un répertoire lorsque dh_md5sums est exécuté:
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
Alors, puis-je l'enlever? J'ai ajouté:
doit("rm", "$tmp/include");
et j'ai:
rm: cannot remove `debian/myproject/include': Is a directory
peut-être que ... transformé en un répertoire? J'ai ajouté un autre ls -l
sous le rm
et j'ai obtenu:
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
et lorsque les scripts sont terminés, je peux faire:
$ 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
... ce qui est étrange, car include
devient un répertoire et la propriété change ( x
est mon nom d'utilisateur). include
contient même tous les fichiers d’en-tête qu’il est supposé utiliser.
Quelqu'un sait-il ce qui se passe?
La solution
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
Notez que include
a un nombre de liens de 3, indiquant qu'il s'agit soit d'un répertoire avec 1 sous-répertoire, soit d'un fichier avec 3 liens physiques. Le premier semble plus probable.
Cela semble être une mauvaise interaction avec fakeroot. Je l'ai déjà vu auparavant, où fakeroot parfois "oublie" Vérifiez donc que lorsque include
est créé ou modifié, il a le bon type (et qu’aucun d’entre eux n’a fait l’objet de modifications récentes).