为debian打包python程序简单直接的方法?

时间:2010-05-28 08:37:33

标签: python debian deb debhelper cdbs

我在浏览python和debian的分发工具迷宫时遇到了麻烦; cdbsdebhelperpython-supportpython-central,等等等等等。

我的应用程序非常简单 - 一个python包(包含模块和__init__.py的目录),一个用于运行程序的脚本(script.py)和一些图标(.png )和菜单项(.desktop文件)。

从这些文件中,如何在不使用上面列出的无意义工具的情况下从头构建一个简单,干净的.deb文件?

我主要针对的是ubuntu,但是如果这个软件包适用于直接的debian

,我希望如此

2 个答案:

答案 0 :(得分:5)

python-stdeb应该适合你。这是在Debian测试/不稳定和Ubuntu(Lucid以后)。 apt-get install python-stdeb

它不是一种快捷方法,而是一种尝试尽可能多地生成源包的工具。它可以实际构建一个既能正常工作又几乎符合标准的软件包。如果您希望您的软件包符合包含在Debian,Ubuntu等中的质量标准,您需要填写debian/copyright等文件。

尽管人们声称cdbs非常简单,但我想指出Nick提到的规则文件很容易用debhelper7完成。不要忘记,dh7可以比cdbs更容易定制。

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

注意:在提交给Debian之前,您应该检查您的软件包是否符合Debian Policy,Debian Python Policy等。你实际上需要为此阅读文档 - 没有捷径。

答案 1 :(得分:3)

首先,答案是没有直接的方法来制作dpkg,并且文档在很多地方被分成了数百万个小块。但是,ubuntu Python Packaging 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。