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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top