2011-09-01 55 views
14

作为How do I write a setup.py for a twistd/twisted plugin that works with setuptools, distribute, etc?的后续,如何为扭曲的插件制作debian软件包?如何制作twistd/twisted插件的ubuntu/debian软件包?

假设setup.py正确写入,使用cdbs/python-central/dh_python2应该可以正常工作,但迄今为止我还没有多少运气。

这些工具的诀窍是,它们基本上运行'python setup.py install --root =',然后将结果打包到''中,所以也许一旦前面的问题得到了正确的回答,那么这个问题就变成了实际意义?

这里的任何人都成功地打包了debian的扭曲插件?

回答

1

呃,我试过这样做并失败了。我认为这取决于哪个是Debian/Ubuntu的发行版,你想要的目标是可能的,并且你要多少精力投入在

有两种方法:

  1. 有您的包裹贴插件文件中twisted/plugins/在扭曲的树中。这是一个痛苦,因为Twisted在不同版本中使用不同的方法进行打包(在Lucid的python-support和在Natty IIRC的dh_python2),并且(大体上说)你的包需要按照Twisted的工作方式打包。
  2. 在您的代码旁边安装twisted/plugins/目录。然后,IIRC,问题就变成了创建符号链接的森林包括扭曲的目录(因为它不是一个包)。
+0

我不明白这些选项非常好。你能提供更多的技术细节,以了解如何在“扭曲的树”中有一个包“插入”插件文件?考虑到Twisted可能由不同版本安装的不同位置,如何知道扭曲树的位置? – Glyph

3

很明显,问题出现在'python-support'中,当它涉及到扭曲的插件时,这是明显的问题。

This message from Ubuntu's Matthias Klose解释了这个问题,并提供了解决方案:扭曲的插件与Python支持

包装设计打破。 即使python策略明确提到您应该对共享相同python命名空间的包使用相同的 包装助手。

您应该使用dh_python2或使用'include-links'使用dh_pycentral(不建议使用)构建 dh_pycentral。

- 马蒂亚斯克洛泽

+2

你的第一句话有点令人误解。由于Twisted包使用dh_python2,python-support只是“在涉及到扭曲的插件时被彻底破坏”,并不是因为python支持的某些内在缺陷。更一般地说,如果您要将python模块安装到另一个软件包的名称空间中,则需要使用该软件包使用的相同包装助手,否则这些文件不会在正确的位置结束。 – mithrandi

+0

这对Debian和Ubuntu来说都是如此吗?每个版本有哪些版本? – Glyph