Я и раньше боролся с упаковкой 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 [email protected]
(другие варианты см. в 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
.
person
nfirvine
schedule
08.02.2012