Подтвердить что ты не робот

Как сделать упаковку Debian пакета Python?

Мне нужно написать или найти script для создания пакета Debian с использованием поддержки python из пакета Python. Пакет Python будет чистым Python без расширений C.

Пакет Python для тестирования будет просто каталогом с пустым файлом __init__.py и одним модулем Python, package_test.py.

Упаковка script должна использовать поддержку python для предоставления правильного байт-кода для возможной множественной установки Python на целевой платформе, то есть v2.5 и v2.6 на Ubuntu Jaunty.

Большинство советов, которые я нахожу во время поиска в Google, - это просто примеры неприятных хаков, которые даже не используют поддержку python или python-central.

Я потратил часы на изучение этого, и самое лучшее, что я могу придумать, - это взломать script из существующего проекта с открытым исходным кодом, но я не знаю, какие бит необходимы для того, что я делаю.

Кто-нибудь здесь сделал пакет Debian из пакета Python разумно не-взломанным способом?

Я начинаю думать, что мне понадобится больше недели, чтобы отказаться от знания упаковки Debian и поддержки python для получения рабочего script. Как долго он принимает других?

4b9b3361

Ответ 1

Я бы взял источники существующего пакета Debian и заменил фактический пакет в нем вашим пакетом. Чтобы найти список пакетов, зависящих от поддержки python, выполните

 apt-cache rdepends python-support

Выберите пакет Architecture: all, так что это пакет pure-Python. Пройдя этот список, я обнаружил, что, например, python-flup может быть хорошей отправной точкой. Чтобы получить источник одного такого пакета, сделайте

apt-get source <package>

Чтобы построить его, сделайте

cd <packagesrc>
dpkg-buildpackage -rfakeroot

При его редактировании ожидайте, что вам понадобятся только файлы в папке debian; замените все ссылки на flup своим собственным именем пакета.

Как только вы начнете, вам потребуется один день.

Ответ 2

Я думаю, что вы хотите http://pypi.python.org/pypi/stdeb:

stdeb создает исходные пакеты Debian из пакетов Python через новый команда distutils, sdist_dsc. Автоматические значения по умолчанию предоставляются для пакет Debian, но многие аспекты полученного пакета может быть настраиваемый (см. настройку раздел ниже). Вдобавок command, bdist_deb, создает Debian бинарный пакет, файл .deb.

Ответ 3

Правильный способ создания пакета deb - использовать dpkg-buildpackage но иногда это немного сложно. Вместо этого вы можете использовать dpkg -b <folder> и он создаст ваш пакет Debian.

Вот основные dpkg -b <folder> создания пакета Debian с помощью dpkg -b <folder> с любым двоичным dpkg -b <folder> или с любым видом сценария, который запускается автоматически без необходимости ручной компиляции (Python, Bash, Pearl, Ruby):

  1. Создайте файлы и папки, чтобы воссоздать следующую структуру:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Сценарии, расположенные в /usr/bin/ вызываются напрямую из терминала, обратите внимание, что я не добавил расширение в сценарий. Также вы можете заметить, что структура пакета deb будет структурой программы после ее установки. Поэтому, если вы следуете этой логике, если ваша программа имеет один файл, вы можете непосредственно поместить его в ProgramName-Version/usr/bin/your_script, но если у вас есть несколько файлов, вы должны поместить их в ProgramName-Version/usr/share/ProgramName/all your files и поместите только один файл в /usr/bin/ который будет вызывать ваши скрипты из /usr/share/ProgramName/

  2. Измените все права доступа к папке на root:

    chown root:root -R /path/to/ProgramName-Version
    
  3. Измените права доступа к скрипту:

    chmod 0755 /path/to/the/script
    
  4. Наконец, вы можете запустить: dpkg -b/path/to/the/ProgramName-Version и ваш пакет deb будет создан! (Вы также можете добавить сценарии post/pre inst и все, что вам нужно, это работает как обычный пакет Debian)

Вот пример control файла. Вам нужно только скопировать и вставить его в пустой файл с именем "control" и поместить в папку DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description. This is the short Description.
 Here you put the long description, indented by 1 space.

Полную статью о пакетах Debian можно прочитать здесь.

Ответ 4

Большинство ответов, опубликованных здесь, устарели, к счастью, недавно был добавлен большой вики-сайт Debian, в котором объясняются текущие лучшие практики и описывается, как создавать пакеты Debian для модулей и приложений Python.

Ответ 5

Во-первых, в Debian уже есть множество пакетов Python; Вы можете скачать исходный код (включая все пакеты) для любого из них, используя источник apt-get source или посетив http://packages.debian.org.

Вы можете найти следующие ресурсы использования: