使用dh_python2,如何使用不同的python包构建几个debian包?

时间:2014-09-19 11:33:15

标签: python debian

我正在使用像%: … dh $@ --with=python-central …这样的debian / rules文件,它使用setup.py安装python包;如何正确修改它以将两个python包放在一个debian包中,其余的放在另一个包中?

1 个答案:

答案 0 :(得分:1)

有一种方法可以做到这一点,正如我通过过多的探索而发现的那样:

  • 两个单独的安装文件(setup_firstpackage.py,setup_secondpackage.py)
    • 也许是导入(并因此运行)两者的常见setup.py
  • 来自debian/control
  • 中相同源包的两个包
  • debian / rules中的几个重写:
    • override_dh_auto_build: - 已禁用(请参阅进一步详情)
    • override_dh_auto_install:
      • python setup_firstpackage.py build --force -b build/firstpackage install --force --root=debian/firstpackage --no-compile -O0 --install-layout=deb
      • python setup_firstpackage.py build --force -b build/secondpackage install --force --root=debian/secondpackage --no-compile -O0 --install-layout=deb
      • 这与auto_build和auto_install的作用基本相同,但是使用chaining to use a cutom build directory
    • 有趣的是,dh_python不需要覆盖,之后就可以正常工作了。
    • override_dh_auto_clean:
      • rm -fr build/firstpackage build/secondpackage - 那些不会自动清理。但是,可能会修改它发生的路径。
      • dh_auto_clean

优点:

  • 单独的软件包当然可以单独安装(例如,如果secondpackage依赖于firstpackage,例如公共库和主应用程序)。
  • 这些包使用相同的更改日志和版本控制,如果它们经常一起更新,这非常有用。
  • 除了打包,可以使用自己的安装文件安装单独的python应用程序(例如,如果它具有较少的依赖项,则很有用)
    • 虽然可能不太适合pip;最好至少制作一个可以同时导入的setup.py