Ошибка создания пакета Debian - PullRequest
0 голосов
/ 18 июня 2009

Я пытаюсь собрать пакет 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 даже содержит все заголовочные файлы, которые он должен.

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

1 Ответ

1 голос
/ 18 июня 2009
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 он имеет правильный тип (и что ни у одного из них нет последних изменений).

...