在没有提示的情况下安装PECL模块


90

我只是从源代码在Ubuntu Natty上安装了PHP。

我正在尝试使用PECL安装其他模块,例如APC和Memcache。我正在使用这样的东西:

pecl install apc

但是,我收到提示要求我确认的提示。

如何使用pecl命令仅接受默认值?我在留言板上看到了这样的内容:printf "yes\n" | pecl install pecl_http。但是,在APC的情况下,如果默认值是no(我认为),它将回答yes。

提前致谢。


1
@戈登:我曾尝试过,但似乎无法满足我的需求。
奥宾万内山

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

Answers:


83

以下代码似乎可以正常运行:

printf "\n" | pecl install apc

您也可以用任何其他PECL软件包替换apc。

干杯。


8
我也看到有成功的yes | pecl install memcache-尽管我想你的解决方案适用于包好不到哪默认为其他的东西比“是”
弗兰克农民

1
感谢花花公子,这甚至与CircleCI
-Jujhar Singh

79

“是”命令不仅可以输入“是”,还可以做更多的事情。它可以一遍又一遍地键入您想要的任何内容。包括一个空行,这是接受默认值的好方法。

我只是需要这个,所以这对我来说很有效:

yes '' | pecl install -f apc

感谢您的输入,汤姆。您的代码应该是"yes\n" | pecl install -f apc吗?
Obinwanne Hill 2014年

4
@ObinwanneHill:汤姆指的是yes命令。这样做的好处printf是,它会重复生成输出,这使pecl安装程序提示其他问题时,可移植性比您的脚本printf预期的要好。
jmikola 2014年

@jmikola哦,我知道,对该命令不熟悉。谢谢
Obinwanne Hill 2014年

8

Obinwanne的Hill回答为我确定了答案,因此在这里我没有提供任何新内容,但是以下内容似乎绝对是最短的,也没有任何花哨的工具。

echo '' | pecl install apc

6
达到相同结果的更短的选择是:pecl install apc <<<''
古斯(Guss)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.