простой, простой способ упаковать программу на python для Debian? - PullRequest
7 голосов
/ 28 мая 2010

У меня проблемы с навигацией в лабиринте инструментов распространения для python и debian; cdbs, debhelper, python-support, python-central, бла-бла-бла ..

мое приложение довольно простое - один пакет python (каталог, содержащий модули и __init__.py), скрипт для запуска программы (script.py) и некоторые значки (.png) и пункты меню (.desktop файлов).

из этих файлов, как я могу создать простой, чистый файл .deb с нуля, не используя бессмысленные инструменты, перечисленные выше?

Я в основном нацелен на Ubuntu, но хотел бы, чтобы пакет работал на прямом Debian

Ответы [ 2 ]

5 голосов
/ 20 июня 2010

python-stdeb должно работать на вас. Он находится на тестировании Debian / нестабильно и в Ubuntu (Lucid и далее). apt-get install python-stdeb

Это менее быстрый метод, чем инструмент, который пытается сгенерировать как можно больше исходного пакета. Он может реально создать пакет, который работает как правильно, так и практически соответствует стандартам. Если вы хотите, чтобы ваш пакет соответствовал стандартам качества для включения в Debian, Ubuntu и т. Д., Вам необходимо заполнить такие файлы, как debian/copyright и т. Д.

Несмотря на то, что люди утверждают, что cdbs действительно прост, я хотел бы отметить, что файл правил, о котором упоминал Ник, можно было легко сделать с помощью debhelper7. Не стоит забывать, что dh7 можно настроить гораздо проще, чем cdbs.

#!/usr/bin/make -f
%:
    dh $@

Примечание. Перед отправкой в ​​Debian вы должны проверить, соответствует ли ваш пакет Политике Debian, Политике Debian Python и т. Д. Вам действительно нужно будет прочитать документы для этого - без ярлыка.

3 голосов
/ 28 мая 2010

Во-первых, ответ заключается в том, что не существует простого способа сделать dpkg, а документация разбита на миллионы крошечных кусочков из такого же количества мест. Тем не менее, ubuntu Python Package 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 в вики (в разделе «CDBS + трудный путь»). Существует также опция pycentral для DEB_PYTHON_SYSTEM, которую вы можете найти в Google, если хотите найти больше информации о.

...