如何在 RPM 包中使用 systemd 预设

问题描述 投票:0回答:2

我正在阅读有关使用 systemd 预设的 Fedora 打包指南,但缺少一个关键点:

宏 %systemd_post 运行

systemctl preset
意味着有关是否启用或禁用该服务的信息必须已存在于 systemd 预设文件中。但它首先是从哪里去的呢?软件包是否应该首先将其自己的预设文件放置在提供的位置(据我所知,不建议这样做,因为它会使一般策略的管理变得复杂),还是将要安装的服务添加到现有的 systemd 预设文件之一中?既然有几个,那么到哪一个呢?

我说的是一个自写的服务,它满足默认启用的要求,因此我希望在安装过程中自动启用它。

rpm systemd preset
2个回答
0
投票

关于预设: https://fedoraproject.org/wiki/Features/PackagePresets https://www.freedesktop.org/software/systemd/man/systemd.preset.html

这些预设旨在用于分发本身(例如,应为工作站启用某些服务,但不应为服务器启用)。 您的第 3 方包将永远不会启用。 因此,如果您确实认为应该启用它(三思而后行),那么您只需在 %post 中启用它即可。 如果你想将你的包放入 Fedora,这将被拒绝,但我想这不是你的情况。


0
投票

预设文件也由集成商分发。

集成商可以设计商业服务(“解决方案”),该服务需要安装和配置多个软件包以相互协作(集成),以提供解决方案的功能。然后,集成商将提供一系列包、一组配置文件和服务预设,作为一组实现“解决方案”

例如。假设“解决方案”是一个经过身份验证的 git 服务器,提供在 CentOS 上运行的 SSH 推/拉、webgui 和 bugzilla。他会指定 lighttpd、git、openssh-server 和 bugzilla、ldap-server 和 rsyslog,也许还有一些私有 RPM。他将为所有这些组件创建配置文件以进行互操作,并决定应运行哪些服务以及使用哪些参数。然后他可以以某种方式打包所有这些配置(可能在方便的 RPM 或 puppeteer 脚本等中),以便解决方案所有者可以将其部署为“应用程序”或“统包解决方案”。集成商需要提供的内容之一是预设文件,它描述了应启用或禁用哪些服务以使解决方案正常工作。

在这种情况下,“供应商”是解决方案提供商,而不是发行版,也不是管理员。预设是集成商制定的规范。

© www.soinside.com 2019 - 2024. All rights reserved.