![构建一个包含模板 [email protected] 的 Debian 包](https://linux22.com/image/783781/%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%8C%85%E5%90%AB%E6%A8%A1%E6%9D%BF%20%5Bemail%20protected%5D%20%E7%9A%84%20Debian%20%E5%8C%85.png)
我需要为应部署为服务的程序构建一个包。我已添加一个debian/helloworld.service
,并且我的包已构建、安装并正常运行,我/lib/systemd/system/helloworld.service
在目标主机上有一个。
但是,用户可能能够运行该服务的多个实例,每个实例都有自己的配置文件,我已经看到这里我需要一个格式的模板服务文件[email protected]
。
但是当我尝试使用构建包时,包中不再有模板服务文件(显示.deb 中没有)debian/[email protected]
dpkg -c
[email protected]
请注意,我正在使用 构建二进制包fakeroot debian/rules binary
。
最好的方法是什么?我应该使用 postinst 脚本吗(但https://www.debian.org/doc/manuals/maint-guide/dother.en.html#maintscripts似乎不鼓励使用它们)?
谢谢。
答案1
看过之后阿帕奇2它是使用模板服务安装的,似乎需要debian/helloworld.service
与模板一起添加才能在.deb 文件中看到模板文件。debian/[email protected]
现在我可以看到[email protected]
了dpkg -c
。
答案2
您可以在 postinst 中添加一个脚本,该脚本将在目标主机上创建模板服务文件。但是,我们不鼓励这样做,因为它违背了声明式打包的原则。
更好的方法是随您的包提供一个脚本,用户可以运行该脚本以使用所需的配置创建所需的服务实例。该脚本可以根据需要运行,并可以生成所需的服务文件并启动服务实例。