我之前也曾与 Ubuntu/Debian 的 Python 打包进行过斗争,我同意,这些文档是一团糟/不存在/误导:对于最简单的可能情况,他们确实需要一个快速入门指南。
好吧,就在这里!
安装你的工具。不过,这可能有点矫枉过正:
sudo apt-get install build-essential python-all dh-make devscripts fakeroot
首先将您的代码签出到名为$packagename-$version
, like的目录中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 和朋友抱怨的东西只是遵守了打包规则,如果你的 lib 只是内部的,请随意放宽。
顺便说一句,此页面讨论了弃用python-support
和python-central