如何创建一个debian包来分发python模块而不使用distutils?
我完全搞不懂如何正确包装我的产品 我的应用程序使用Makefile将内容安装到正确的文件位置,例如如何创建一个debian包来分发python模块而不使用distutils?,python,debian,package,debhelper,Python,Debian,Package,Debhelper,我完全搞不懂如何正确包装我的产品 我的应用程序使用Makefile将内容安装到正确的文件位置,例如 /usr/lib/rhythmbox/plugins/foo/myfoo.plugin /usr/lib/rhythmbox/plugins/foo/myfoo/po/translation.mo /usr/lib/rhythmbox/plugins/foo/myfoo_module.py /usr/lib/rhythmbox/plugins/foo/myfoo_module2.py 我没有使用
/usr/lib/rhythmbox/plugins/foo/myfoo.plugin
/usr/lib/rhythmbox/plugins/foo/myfoo/po/translation.mo
/usr/lib/rhythmbox/plugins/foo/myfoo_module.py
/usr/lib/rhythmbox/plugins/foo/myfoo_module2.py
我没有使用python distutils setup.py类型的安装-只是一个简单的基于sudo make安装的方法
当我尝试使用Debian软件包时,我的规则非常简单:
#!/usr/bin/make -f
%:
dh $@ --parallel --with autoreconf,python3
override_dh_autoreconf:
dh_autoreconf -- ./autogen.sh
override_dh_auto_configure:
dh_auto_configure -- --libdir="\$${exec_prefix}/lib"
。。。但是我没有使用distutils setup.py来安装我的应用程序
所以我肯定错过了一些非常明显的东西——有什么想法吗?您不需要使用distutils或setup.py为Python程序创建有效的deb<如果使用distutils,code>dh_python3
只会让事情变得更简单。因为您不是,所以应该简单地像使用Python以外的东西一样继续
由于我不知道您的结构是什么,我无法描述确切的步骤,但一般来说,您应该使用
dh_install
将正确的文件安装到正确的位置,并创建适当的维护者脚本,以执行字节编译(安装或更新)和删除字节编译文件所需的任何工作(在删除或清除时)。dh_python3生成的维护者脚本可能提供了一个很好的起点(您可以在系统上与/var/lib/dpkg/info/python3-*.postinst
和.postrm
匹配的大多数文件中找到).您不需要使用distutils或setup.py为Python程序创建有效的deb;dh_python3
如果您使用distutils,只会让事情变得更简单。因为您不需要,所以您应该像使用Python以外的东西一样继续
由于我不知道您的结构是什么,我无法描述确切的步骤,但一般来说,您应该使用dh_install
将正确的文件安装到正确的位置,并创建适当的维护者脚本,以执行字节编译(安装或更新)和删除字节编译文件所需的任何工作(在删除或清除时)。dh_python3生成的维护者脚本可能提供了一个很好的起点(您可以在系统上与/var/lib/dpkg/info/python3-*.postinst
和.postrm
匹配的大多数文件中找到)
Build-Depends: debhelper (>= 9),
dh-autoreconf,
dh-python (>= 1.20130903),
gir1.2-glib-2.0,
gir1.2-gstreamer-1.0,
gir1.2-gtk-3.0,
gir1.2-peas-1.0,
gir1.2-rb-3.0,
gobject-introspection (>= 0.10.0),
intltool (>= 0.35.0),
libglib2.0-dev,
python3
override_dh_auto_install:
dh_auto_install
python setup.py install --root=$(CURDIR)/debian/$(DEB_SOURCE) --install-layout=deb)