Не удается создать .deb проекта Python — dpkg-buildpackage пытается удалить файлы как каталоги?

Это моя вторая попытка создать файл deb - первой был проект C, для которого я использовал FPM - это сработало отлично, хотя и неприемлемый пакет - он работает. Это, однако, проект Python (GNS3), и я бы предпочел сделать это правильно, поскольку, если я собираюсь это сделать, это может быть и правильно. Сказав это, прямо сейчас я бы согласился на файл .deb, который работал.

Проблема: я модифицировал GNS3 как проект, и последний шаг, который мне нужно сделать, это переупаковать его в файл .deb. Я знаю, что это можно сделать, так как он находится в репозиториях Ubuntu, но мои исследования привели меня к информации о том, что некто по имени Эрик Венцель из Debian создал deb, и он больше не доступен, а разработчики GNS3, по-видимому, сосредоточены на Windows. и у меня нет текущих знаний, чтобы упаковать его («предположительно» - я недавно спрашивал их, но еще не получил ответа - если я это сделаю, я добавлю любую информацию, которую они предоставляют к этому вопросу).

Я пробовал разные способы получить пакет Debian, но последний, который я попробовал, показался мне наиболее многообещающим. Я использовал (из: https://pypi.python.org/pypi/stdeb):

python setup.py --command-packages=stdeb.command bdist_deb

который дал мне архив, затем попробовал:

dpkg-buildpackage -rfakeroot -uc -us

что не сработало. Это не удается с этим выводом (отрезанным с конца):

...
dh_python2 -O--buildsystem=python_distutils
dh_usrlocal -O--buildsystem=python_distutils
dh_usrlocal: debian/python-gns3/usr/local/share/examples/gns3/baseconfig.txt is not a directory
dh_usrlocal: debian/python-gns3/usr/local/share/examples/gns3/baseconfig_sw.txt is not a directory
rmdir: failed to remove `debian/python-gns3/usr/local/share/examples/gns3': Directory not empty
dh_usrlocal: rmdir debian/python-gns3/usr/local/share/examples/gns3 returned exit code 1
make: *** [binary] Error 25
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2

Ошибки правильные (?!) - эти два файла не являются каталогами - это текстовые файлы - и они не имеют каких-либо необычных характеристик:

drwxr-xr-x 2 steved swdept 4096 Feb 27 16:57 ./
drwxr-xr-x 3 steved swdept 4096 Feb 27 16:57 ../
-rw-r--r-- 1 steved swdept 3146 Feb 26 15:00 baseconfig_sw.txt
-rw-r--r-- 1 steved swdept 257 Feb 26 15:00 baseconfig.txt

Похоже, что STDEB выполняет свою часть работы должным образом, но я не могу сказать наверняка. Возможно, он делает что-то, что вызывает сбой dpkg-buildpackage. Я надеюсь, что кто-то посмотрит на это и скажет: «Конечно, это не сработает — вам нужно сделать x и y, тогда это будет построено». Или, по крайней мере, «Попробуйте это и это».

Если я смогу сделать это правильно, я также смогу внести свой вклад в проект GNS3, что было бы здорово.

Любая помощь приветствуется.

Ваше здоровье

Стив


person Steve    schedule 27.02.2013    source источник


Ответы (2)


Просто поместите это в свой файл debian/rules override_dh_usrlocal:, и это остановит запуск dh_usrlocal, который, я думаю, на самом деле вызывает у вас проблемы. Я застрял в подобной ситуации, и это помогло мне.

person shivams    schedule 14.05.2015

Ничего не устанавливайте в /usr/local. И если вы хотите упаковать новую версию программного обеспечения, у которого уже есть официальный пакет, не пытайтесь создать пакет с нуля, вместо этого измените существующий.

person wRAR    schedule 27.02.2013
comment
Я не изменил путь установки из исходного источника, но я полагаю, что на форумах GNS3 обсуждалось изменение места установки. Что касается изменения исходного пакета, есть ли правильный способ сделать это? Я не делаю новую версию как таковую, это скорее форк. - person Steve; 28.02.2013
comment
@Steve использует dch --local, чтобы добавить новую запись в журнал изменений и внести необходимые изменения. - person wRAR; 28.02.2013
comment
Возможно, я делаю это неправильно, но я использовал AR для распаковки deb, использовал python setup.py --command-packages=stdeb.command и bdist_deb для создания нового архива для замены data.tar.gz, а затем переупаковал его с помощью AR, но он больше не кажется файлом deb для dpkg. У меня еще не было возможности подробно изучить его, но на правильном ли я пути? Ваше здоровье - person Steve; 01.03.2013
comment
@Steve Совершенно неправильный. Начните с debian.org/doc/manuals/maint-guide. - person wRAR; 01.03.2013