【问题标题】:easy, straightforward way to package a python program for debian?为 debian 打包 python 程序的简单、直接的方法?
【发布时间】:2011-02-25 00:54:04
【问题描述】:

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

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

从这些文件中,我怎样才能在不使用上面列出的无意义的工具的情况下从头开始构建一个简单、干净的 .deb 文件?

我主要针对 ubuntu,但如果该软件包在直接 debian 上工作,我会喜欢它

【问题讨论】:

    标签: python debian deb debhelper cdbs


    【解决方案1】:

    首先,答案是没有直接的方法来制作 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,您可能需要查看 wiki 上的 DebianPython/Policy 页面(在“CDBS + the hard way”下)。 DEB_PYTHON_SYSTEM 也有一个 pycentral 选项,如果您想了解更多信息,可以通过 Google 搜索。

    【讨论】:

    • 新的 Ubuntu Python 打包指南位于:packaging.ubuntu.com/html/python-packaging.html
    • @DanielTrebbien 该链接不再有效,但archive.org 链接似乎提供了曾经存在的内容。当前的 Ubuntu wiki 似乎除了 wiki.ubuntu.com/Python 之外没有任何实质内容,基本上只是在与打包相关的所有内容上遵循 Debian wiki。
    【解决方案2】:

    python-stdeb 应该适合你。它在 Debian 测试/不稳定和 Ubuntu(从 Lucid 开始)。 apt-get install python-stdeb

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-12
      • 2011-04-22
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多