RPM软件包的命名,用于替代configuration

我目前在环境中以几种不同的configuration从源代码安装PHP,每个都提供了其特定部署所需的最小function集:例如,一个部署需要通过“–enable-sockets”提供UNIX套接字支持,但我select不提供该function在其他部署为安全起见。

我想build立一个RPM,但我不确定如何处理这些configuration变化:我应该build立一个单独的'php-sockets'包,提供了一个用' – enable-sockets'构build的PHP? 有没有办法提供一个单一的命名包,可以部署不同的构build选项? 我可以把所有这些都放到一个单独的spec文件中,以便PHP的新更新可以自动生成我需要的所有不同变体。

我在这一个的RPM深度 – 请教育我!

无论哪种方式,你将需要有两个单独的包。 不过还有另一种方法可以解决这个问题。 你可以把你的php包分成三个不同的包组,核心,套接字,无套接字。 在这种情况下,core将包含所有在套接字和无套接字编译选项之间通用的文件。 然后,套接字和无套接字版本将被编译为合适的选项,但将需要核心套件。 这个方法在Fedora的Zabbix包中使用。 如果你有兴趣,你可以看看那里的spec文件。

由于PHP套接字可以被内置到一个单独的扩展中,所以我build议你看看现有的SRPM是如何构build和打包它们的扩展的,并且用你自己的php-sockets扩展包遵循同样的事情。 请注意,供应商软件包通常会提供内置的套接字,所以您可能会遇到一些远程软件包,希望将其作为php软件包的一部分进行安装。