gpt4 book ai didi

python - 如何使用 rc.d 脚本从 python 应用程序构建 FreeBSD pkg?

转载 作者:行者123 更新时间:2023-12-01 02:23:06 27 4
gpt4 key购买 nike

我有一个 python 应用程序,其 setup.py通过 setuptools 安装它就可以了。然后我使用优秀的 Effing package management 将其打包在 DEB 和 PKGNG 中。我还使用 setuptools-pkg 进行了一些快速测试这似乎也有效。

现在我需要分发包括初始化脚本的包来启动/停止/管理服务。我的初始化脚本位于源存储库中,并且根据 what seems to be best practice ,我没有在 setuptools 中对它们做任何事情,而是在特定于操作系统的包装中处理它们:对于基于 debian 的系统,我使用 --deb-init , --deb-upstart--deb-systemd根据需要选择 FPM 选项。

如何构建包含正确的 rc.d 的 FreeBSD 软件包脚本,使用 FPM 还是通过任何其他方式?

我见过的所有示例都添加了 rc.d通过ports collection构建包时的脚本但这是一个内部应用程序,不会发布到 Ports 或 PyPi 上。我希望能够检查 FreeBSD 系统上的存储库,启动一个为我提供软件包的命令,将其分发到其他 FreeBSD 系统,然后使用 pkg 安装它。并将我的初始化脚本正确部署到 /usr/local/etc/rc.d/<myappname> 。没有必要为此继续使用 FPM,只要它给我一个格式良好的包,任何东西都可以工作。

最佳答案

我强烈建议创建您的包,就像它是任何其他端口一样,无论是否要发布。

通过这样做您可以继承的优势之一是,您还可以包含所有测试并自动化部署,为持续集成/交付设置提供开箱即用的基础。

查看 poudriere 。您确实可以使用自己的设置维护一组自定义端口,并将它们轻松地分布在您的环境中:

pkg install -r your-poudriere yourpkg

如果这可能太多或者可能不能很好地适应您的用例,您可以随时回退到 ansible ,您可以在其中创建一个自定义 rc.d 模板ansible role

如果你只是想构建和部署一些东西,比如说一个微服务,那么pkg可能不是最好的工具,也许你只需要一个可以在你的所有平台上工作的主管(sysutils/immortal)这样您就可以分发代码并拥有启动/停止服务的单一方法。

关于python - 如何使用 rc.d 脚本从 python 应用程序构建 FreeBSD pkg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47738376/

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