gpt4 book ai didi

python - 使用 setuputils 安装带有 Upstart 服务的 Python 包

转载 作者:行者123 更新时间:2023-12-04 19:20:42 25 4
gpt4 key购买 nike

我正在尝试创建一个 python 包,它在安装时也会创建一个 Upstart 服务。目前,我的选择是将服务从包目录符号链接(symbolic link)到/etc/init,或者将文件复制到/etc/init。只要我可以在卸载软件包时取消链接/删除文件,任何一个都可以正常工作。我看到另一个相关的问题,评论者表示这不应该是 setuputils 的工作。所以我的问题如下:

setuputils 是否应该负责在机器上创建服务,或者应该由外部包管理器(如 dpkg/apt/rpm)处理;如果它是谨慎的,有没有办法在卸载软件包时以某种方式运行脚本,或者让 setuputils 从/etc/init 中删除文件,而不在运行 sdist 后修改鸡蛋中的 SOURCES.txt?

谢谢!

最佳答案

Should setuputils even be responsible for creating the service on the machine, or rather should this be handled by an external package manager like dpkg/apt/rpm



几乎可以肯定是后者。
distutils/ setuptools不是为了处理这样的事情而设计的。

有一些配置信息足以以在您的平台上有意义的方式安装站点包、共享数据、可执行文件以及其他一些东西。但是没有足够的地方来处理诸如安装初始化脚本之类的事情。

这些工具不仅可以处理稍有不同的 2010 年代早期类似 Ubuntu 的 linux 发行版,还可以处理各种不同的平台。在非 Ubuntu-like 发行版(和 pre-lucid Ubuntu)上没有 Upstart,但有 SysV 风格的 init .在其他一些 *nixes 上,甚至没有 SysV 风格的 init , 但有 BSD 风格的 init .在 OS X 上,而 SysV 风格的 init确实存在,它已被严重弃用, launchd改为使用。在 Windows 上,甚至没有任何类似的东西,但是有完全不同的方式来设置“服务”和“启动时运行”程序和相关概念。

最重要的是,在许多平台上,包管理器希望能够拥有所有启动脚本,并且您不希望在没有他特别要求的情况下代表用户/系统管理员违反该期望。

因此,您需要为每个平台提供一个特定于平台的包。如果你只是为 Ubuntu Precise 或任何你使用的东西创建一个 PyPI 包和一个 .deb,如果某些 Fedora 或 Mac 或 Ubuntu Natty 用户嫉妒,他们要么自己做,要么问你。

关于python - 使用 setuputils 安装带有 Upstart 服务的 Python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671719/

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