2011-11-15 95 views
58

我刚刚从源代码的Ubuntu Natty上安装了PHP。在没有提示的情况下安装PECL模块

我正在尝试使用PECL来安装APC和Memcache等附加模块。我使用的是这样的:

pecl install apc 

但是,我得到提示,要求我确认一些事情。

如何使用pecl命令来接受默认值?我在留言板上看到类似这样的东西:printf "yes\n" | pecl install pecl_http。但是,就APC而言,如果默认值为“否”(我认为),则会回答“是”。

在此先感谢。

+1

@戈登:我试过了,但似乎没有我需要的句柄。 –

+0

对于默认值可接受的情况,在非交互模式下,不需要PECL提示。例如,如果您在构建时添加到Dockefile'RUN pecl install apc',则会自动选择默认值。 – Dereckson

回答

60

下面的代码似乎确定工作:

printf "\n" | pecl install apc 

您还可以通过其他的PECL包更换APC。

干杯。

+5

我也看到成功与'是| pecl安装memcache' - 虽然我认为你的解决方案对于默认不是“yes”的软件包效果更好 –

+1

感谢兄弟,这甚至可以和[CircleCI]一起工作(https://circleci.com/docs/language-php ) –

46

“是”命令可以做的不仅仅是输入“是”;它可以一遍又一遍地输入任何你想要的东西。包括一个空行,这是接受默认值的好方法。

我只是需要这个自己,所以这里是为我工作得好:

yes '' | pecl install -f apc 
+0

感谢您的意见,汤姆。你的代码是否是'“是\ n”| pecl install -f apc' ?! –

+2

@ObinwanneHill:汤姆指的是['yes'](http://linux.die.net/man/1/yes)命令。这对'printf'的好处是,它可以重复生成输出,如果pecl安装程序提示您需要的其他问题比预期的脚本'printf'更多,那么它将更加便携。 – jmikola

+0

@jmikola哦,我明白了,并不熟悉那个命令。谢谢 –

2

Obinwanne山回答钉它为我,所以我不会提供什么新的东西,但下面好像绝对最短也没有任何花哨的工具。

echo '' | pecl install apc 
+1

实现相同结果的更短的替代方法是:'pecl install apc <<<''' – Guss

相关问题