我在浏览python和debian的分发工具迷宫时遇到了麻烦; cdbs
,debhelper
,python-support
,python-central
,等等等等等。
我的应用程序非常简单 - 一个python包(包含模块和__init__.py
的目录),一个用于运行程序的脚本(script.py
)和一些图标(.png
)和菜单项(.desktop
文件)。
从这些文件中,如何在不使用上面列出的无意义工具的情况下从头构建一个简单,干净的.deb文件?
我主要针对的是ubuntu,但是如果这个软件包适用于直接的debian
,我希望如此答案 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。