我目前在我的环境中以几种不同的配置从源代码安装 PHP,每种配置都提供其特定部署所需的最小功能集:例如,一个部署需要通过“--enable-sockets”提供 UNIX 套接字支持,但出于安全考虑,我选择不在其他部署中提供该功能。
我想将其构建到 RPM 中,但我不确定如何处理这些配置变体:我是否应该构建一个单独的“php-sockets”包来提供使用“--enable-sockets”构建的 PHP?有没有办法提供一个可以使用不同构建选项部署的命名包?我可以将所有这些汇总到一个 spec 文件中,以便可以对 PHP 进行新的更新以自动构建我需要的所有不同变体?
我对这个 RPM 了解不够深入 – 请指教我!
答案1
无论哪种方式,您都需要有两个单独的包。但是,还有另一种方法可以解决这个问题。您可以将 php 包分为三个不同的包组:核心、套接字、无套接字。在这种情况下,核心将包含套接字和无套接字编译选项之间通用的所有文件。然后,套接字和无套接字版本将使用适当的选项进行编译,但需要核心包。此方法用于 Fedora 中的 Zabbix 包。 如果您有兴趣,可以查看那里的规范文件。
答案2
由于 PHP 套接字可以内置到单独的扩展中,因此我建议您查看现有 SRPM 如何构建和打包其扩展,并对您自己的php-sockets
扩展包进行相同的操作。请注意,供应商包通常提供内置套接字,因此您可能会遇到一些需要将其作为包的一部分安装的远程包php
。