Debian erro de criação de pacote
Pergunta
Eu estou tentando construir um pacote Debian, mas eu tenho este problema pseudo-diretório estranho. Eu corro:
$ fakeroot debian/rules binary
Eu construí o binário antes, mas algo deve ter mudado no meu sistema. Agora dh_md5sums erros fora e retornos:
md5sum: include: Is a directory
dh_md5sums: command returned error code
make: *** [binary-arch] Error 1
Na verdade, include
é um diretório. Então, eu adicionei algumas declarações de depuração para dh_md5sums, para descobrir por que include
estava sendo hash apesar da linha que deveria filtrar diretórios. Acrescentando:
doit("ls", "-l", "$tmp");
mostra que, de fato, include
não é um diretório quando dh_md5sums é executado:
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
Assim, posso removê-lo? Acrescentei:
doit("rm", "$tmp/include");
e tenho:
rm: cannot remove `debian/myproject/include': Is a directory
talvez ... se transformou em um diretório? Eu adicionei um outro ls -l
abaixo do rm
e tenho:
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 os scripts são feitas correr, eu posso fazer:
$ 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
... o que é estranho, como include
torna-se um diretório e as mudanças de propriedade (x
é meu nome de usuário). include
contém ainda todos os arquivos de cabeçalho que é suposto.
Alguém sabe o que está acontecendo?
Solução
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
Note que include
tem uma contagem da ligação de 3, indicando que ou é um diretório com um subdiretório, ou um arquivo com 3 links de disco rígido. O primeiro parece mais provável.
Esta parece ser uma má interação com fakeroot. Eu já vi isso antes onde fakeroot às vezes "esquece" permissões, verificação de modo duplo que quando include
está sendo criado ou modificado que tem o tipo certo (e que nenhum destes tem mudanças recentes).