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

Jer*_*ose 7 python debian deb cdbs debhelper

我在浏览python和debian的分发工具迷宫时遇到了麻烦; cdbs,debhelper,python-support,python-central,等等等等..

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

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

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

Uma*_*ang 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 $@
Run Code Online (Sandbox Code Playgroud)

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


Nic*_*tin 3

首先,答案是没有直接的方法来制作 dpkg,并且文档被分成来自许多地方的一百万个小碎片。然而,ubuntu Python 打包指南非常有用。

对于简单的包(易于描述的包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
Run Code Online (Sandbox Code Playgroud)

如果您不使用distutils,您可能需要查看wiki 上的DebianPython/Policy页面(位于“CDBS + the hard way”下)。还有一个pycentral 选项DEB_PYTHON_SYSTEM,如果您想找到更多信息,可以通过谷歌搜索。