Я уже боролся с упаковкой Python для Ubuntu / Debian и раньше, и я согласен, документы - это беспорядок / несуществующий / вводящий в заблуждение: им действительно нужно руководство по быстрому старту для самой простой возможной ситуации.
Ну, вот оно!
Установите ваши инструменты. Это может быть излишним, хотя:
sudo apt-get install build-essential python-all dh-make devscripts fakeroot
Начните с извлечения кода в каталог с именем $packagename-$version
, например library_name-0.6.0/
и cd
в этот каталог. Запустите что-то вроде dh_make -i -c gpl3 -e nfirvine@example.com
(см. dh_make --help
для других опций). Если все пойдет хорошо, вы не получите ошибок, и это создаст загрузку файлов в ./debian
. Вы можете проигнорировать или удалить ./debian/*.{ex,EX}
; это только примеры.
Вам, вероятно, стоит проверить все эти файлы в какой-то момент, но, по крайней мере, вам потребуется для редактирования ./debian/control
и ./debian/rules
. Вы должны заполнить все временно контролируемые поля, а именно Description
и Homepage
. Измените строку Package
на python-$libname
Измените строку Depends
в control
на эту:
Depends: ${misc:Depends}, ${python:Depends}
Это гарантирует, что наш бинарный пакет python-$libname
зависит от версий Python, в которых он нуждается. (${python:Depends} is a "substvar"; they're created when we build; you can inspect their values after your first build in
. / Debian / $ packagename.substvars`.)
Измените строку в rules
с dh $@
на dh $@ --with python2
, сохранив вкладку спереди (это Makefile). Это заставляет debhelper использовать свое дополнение python2; по умолчанию все еще используется pysupport (что устарело, помните?).
Затем выполните следующую команду в корневом каталоге:
debuild -us -uc
Это собирает пакет, не подписывая его (то, что вы должны узнать, как сделать позже!). Вы должны увидеть несколько знакомых строк setuptools (дважды: один раз для 2.6, один раз для 2.7), кучу аддонов dh_ и другие строительные помехи. В конце выводится lintian, который может обнаружить некоторые распространенные проблемы с упаковкой; Вы должны это исправить. Многие вещи, на которые жалуются lintian и друзья, это просто соблюдение правил упаковки, и если ваша библиотека просто внутренняя, не стесняйтесь играть в нее свободно.
Кстати, На этой странице говорится об устаревании python-support
и python-central