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,我会很喜欢
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等.您实际上需要阅读文档 - 没有捷径.
首先,答案是没有直接的方法来制作 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
,如果您想找到更多信息,可以通过谷歌搜索。