gpt4 book ai didi

debian-packaging - 我如何使用 stdeb3/py2dsc 和 dpkg-buildpackage 将 python 应用程序与 systemd 单元打包在一起?

转载 作者:行者123 更新时间:2023-12-05 04:57:43 24 4
gpt4 key购买 nike

我想做的是为 Python3 应用程序创建一个 Debian 包,并让该包安装相关的 systemd 服务,并在包被删除或更新时删除/更新它。

我有一个 Python3 程序,我想将其捆绑到 Ubuntu 18.04 上的 Debian 软件包中。我已经能够使用 setup.py 成功地做到这一点和 py2dsc stdeb3 附带的程序.

$ python setup.py sdist
$ py2dsc dist/mypackage-0.0.1.tar.gz
$ (cd deb_dist/mypackage-0.0.1/ && dpkg-buildpackage -rfakeroot -uc -us)

除了奇怪的 py2dsc 之外,这会创建一个可安装的 .deb。依赖于 Python 3.6,即使我使用的是 3.8,它也运行良好。

py2dsc创建一个 debian staging 树,包括 debian/rules与:

#!/usr/bin/make -f

export PYBUILD_NAME=mypackage
%:
dh $@ --with python3 --buildsystem=pybuild

接下来我想让这个包安装一个将运行 Python3 程序的 systemd 服务单元。 我认为服务文件需要调用 python3-mypackage.service匹配<package-name>.service ,因为 py2dsc前置python3-到包名。

我做了一些研究并发现,而不是破解 pre/postinst脚本,dh命令 debian/rules应该有 --with systemd添加了选项,我需要 dh-systemd安装在我的 Ubuntu 18.04 系统上。为此,我在运行 py2dsc 后暂停, 将相关条目添加到 debian/rules , 然后运行 ​​dpkg-buildpackage .

由于我不明白的原因,没有提到dh-systemddpkg-buildpackage 的输出中:

...
dh_installdocs -O--buildsystem=pybuild
dh_installchangelogs -O--buildsystem=pybuild
dh_python3 -O--buildsystem=pybuild
dh_perl -O--buildsystem=pybuild
dh_link -O--buildsystem=pybuild
dh_strip_nondeterminism -O--buildsystem=pybuild
dh_compress -O--buildsystem=pybuild
dh_fixperms -O--buildsystem=pybuild
dh_missing -O--buildsystem=pybuild
dh_installdeb -O--buildsystem=pybuild
dh_gencontrol -O--buildsystem=pybuild
dh_md5sums -O--buildsystem=pybuild
dh_builddeb -O--buildsystem=pybuild
...

我四处搜索,虽然我可以找到人们构建 python 包的示例,以及人们使用 systemd Units 构建包的示例,但我无法找到有人打包 python 项目和相关 systemd Unit 的示例,所以我不确定从这里去哪里。我想知道是否使用 pybuild--with systemd 的使用冲突?

最佳答案

如果您打算使用 dpkg-buildpackage,您应该根据 python packaging documentation 创建 debian/目录和所有文件。 .这将创建一个完全符合政策的 Debian 软件包。 stdeb 软件包只提供了一种创建 Debian 软件包的快速而肮脏的方法。如果您打算在 Debian 存储库中发布此软件包,使用 stdeb 会适得其反。

使用此方法,you can use the dh_systemd helper , 并使用 debcompat >= 10 自动激活它。服务文件必须是 Debian 目录中的 packagename.service。

关于debian-packaging - 我如何使用 stdeb3/py2dsc 和 dpkg-buildpackage 将 python 应用程序与 systemd 单元打包在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64345965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com