Вопрос

Я пытаюсь собрать пакет Debian, но у меня возникла странная проблема с псевдокаталогами. Я бегу:

$ fakeroot debian/rules binary

Я уже создавал бинарный файл, но в моей системе что-то изменилось. Теперь dh_md5sums выдает ошибки и возвращает:

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

Действительно, include - это каталог. Итак, я добавил несколько операторов отладки в dh_md5sums, чтобы выяснить, почему хешируется include , несмотря на строку, которая должна была отфильтровывать каталоги. Добавление:

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

показывает, что действительно, include не является каталогом при запуске 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

Итак, я могу удалить это? Я добавил:

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

и получил:

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

может это ... превратилось в каталог? Я добавил еще один ls -l под rm и получил:

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

и когда скрипты завершены, я могу сделать:

$ 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

... что странно, так как include становится каталогом и меняется владелец ( x - мое имя пользователя). include даже содержит все заголовочные файлы, которые он должен.

Кто-нибудь знает, что происходит?

Это было полезно?

Решение

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

Обратите внимание, что include имеет счетчик ссылок, равный 3, что указывает на то, что это либо каталог с 1 подкаталогом, либо файл с 3 жесткими ссылками. Первое кажется более вероятным.

Это похоже на плохое взаимодействие с fakeroot. Я видел это раньше, когда fakeroot иногда "забывает" разрешения, поэтому дважды проверьте, что при создании или изменении include он имеет правильный тип (и что ни один из них не имеет последних изменений).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top