有一个 PHP 扩展,当我使用命令安装它时,需要向其传递一个配置选项pecl
。我找不到这样做的方法。
当然我可以手动安装它,但我需要能够使用单个命令来安装它 - 以便可以通过 puppet 轻松安装它。
有任何想法吗?
答案1
答案2
基于http://old.nabble.com/unattended-PECL-installs--td29760522.html你可以尝试:
yes no | pecl install memcache
对所有问题都回答“否”,或者:
printf "yes\n" | pecl install memcache
回答一次“是”。
但这两个答案都不太令人满意。
答案3
有一个突出的错误(撰写本文时已有 3 年历史)要求本地 PECL 提供程序和适用于 Pear 包的类似较旧的版本。看起来它们都不会很快被纳入 Puppet 中。
这里有 PECL 和 Pear 提供商您可以将其包含在您的 Puppet 设置中。 这里还有另一个 PECL 提供程序。我自己没有测试过它们,也不能保证它们使用起来有多容易或者效果有多好。
这我见过的最好的建议涉及重新打包您想要使用的每个 PECL 扩展作为.deb
或.rpm
包,并运行您自己的内部存储库或通过 puppet 推送包文件并通过dpkg
或安装它们rpm
。 这里有一份基于 Debian 的发行版的 HOWTO。
对于您的情况,您需要将 PECL 扩展安装到开发箱上的暂存目录中,手动提供所需的命令行选项,然后将创建的内容打包到适合您的操作系统包管理系统的包中。
优点是拥有一个单一的包管理系统,而不是所有的 apt、pecl、pear、gem 等。缺点是,由于您将自己重新打包这些扩展,因此您仍然必须监视上游提供商(在您的情况下是 pecl)并在安全补丁发布时更新您的软件包。