я испытываю затруднения при навигации по лабиринту инструментов распределения для Python и debian; cdbs
, debhelper
, python-support
, python-central
, и тому подобное..
мое приложение является довольно простым - единственный пакет Python (каталог, содержащий модули и a __init__.py
), сценарий для того, чтобы запустить программу (script.py
) и некоторые значки (.png
) и пункты меню (.desktop
файлы).
из этих файлов, как я могу создать простое, чистят .deb файл с нуля, не используя бессмысленные упомянутые выше инструменты?
я главным образом нацелен на человечность, но хотел бы ее, если пакет продолжил работать прямой debian
Во-первых, ответ заключается в том, что не существует прямого способа создания dpkg, а документация разбросана в миллионе крошечных кусочков из стольких же мест. Однако, ubuntu Python Packaging Guide довольно полезен.
Для простых пакетов (тех, которые легко описать с помощью setuptools
), шаги довольно просты, если у вас настроена структура управления debian:
setup. py --sdist --prune
и также убедитесь, что установили dist-dir
на что-то разумноеdpkg-buildpackage
с соответствующими опциями для вашего пакета (вероятно, -b
, по крайней мере)Вам понадобится файл debian/rules
для работы buildpackage, но, к счастью, работа сделана за вас, если вы используете cdbs
, вам понадобится что-то очень похожее:
#!/usr/bin/make -f
DEB_PYTHON_SYSTEM := pysupport
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/python-distutils.mk
Если вы не используете distutils
, вы можете взглянуть на страницу DebianPython/Policy в wiki (в разделе "CDBS + трудный путь"). Существует pycentral
опция для DEB_PYTHON_SYSTEM
, о которой вы также можете погуглить, если хотите найти больше информации.
python-stdeb
должен вам подойти. Он есть в Debian testing/unstable и Ubuntu (Lucid и далее). apt-get install python-stdeb
Это не столько метод быстрого доступа, сколько инструмент, который пытается создать как можно больше исходного пакета. Он действительно может создать пакет, который работает правильно и почти соответствует стандартам. Если вы хотите, чтобы ваш пакет соответствовал стандартам качества для включения в Debian, Ubuntu и т.д., вам нужно будет заполнить файлы типа debian/copyright
и т.д.
Как бы люди ни утверждали, что cdbs действительно прост, я хотел бы отметить, что файл правил, о котором упомянул Ник, легко можно было бы сделать с помощью debhelper7. Не стоит забывать, что dh7 можно настроить гораздо проще, чем cdbs.
#!/usr/bin/make -f
%:
dh $@
Примечание: Вы должны проверить, соответствует ли ваш пакет политике Debian, политике Debian Python и т.д., прежде чем отправлять его в Debian. Для этого вам придётся прочитать документы - это не просто.