我刚刚从源代码安装了PHP在Ubuntu Natty上。
我正在尝试使用PECL安装额外的模块,比如APC和Memcache。我正在使用类似于下面的命令:
pecl install apc
然而,我会收到提示来确认一些东西。
我该如何使用pecl命令只接受默认设置?我在留言板上看到了类似这样的东西:printf "yes\n" | pecl install pecl_http
。然而,对于APC而言,这将回答默认为“否”的事情(我想是这样)。
我刚刚从源代码安装了PHP在Ubuntu Natty上。
我正在尝试使用PECL安装额外的模块,比如APC和Memcache。我正在使用类似于下面的命令:
pecl install apc
然而,我会收到提示来确认一些东西。
我该如何使用pecl命令只接受默认设置?我在留言板上看到了类似这样的东西:printf "yes\n" | pecl install pecl_http
。然而,对于APC而言,这将回答默认为“否”的事情(我想是这样)。
printf "\n" | pecl install apc
你也可以将apc替换为任何其他PECL软件包。
干杯。
yes | pecl install memcache
可以成功安装,虽然我想你的解决方案在默认不是“yes”的软件包中效果更好。 - Frank Farmer"yes"命令不仅可以输入"yes",还可以重复输入任何你想要的内容,包括空行,这是接受默认值的好方法。
我自己也需要这个功能,以下是对我有效的做法:
yes '' | pecl install -f apc
"yes\n" | pecl install -f apc
?! - ObiHillyes
命令。与printf
相比,它的优点在于可以重复生成输出,这使得它更具可移植性,因为如果pecl安装程序提示额外的问题超出了你脚本中所期望的printf
,则可以使用该命令。 - jmikola如果您不想针对每个提示("yes", "no", 或 "")都给出相同的答案,您可以使用--configureoptions
为每个选项设置特定的值(请参阅PECL手册)。
要查找可配置的选项,您需要找到软件包的package.xml文件。以memcached
包为例,您可以在此处找到:
https://github.com/php-memcached-dev/php-memcached/blob/master/package.xml
搜索<configureoption>
标签,在本例中它们是:
<configureoption name="with-libmemcached-dir" prompt="libmemcached directory" default="no"/>
<configureoption name="with-zlib-dir" prompt="zlib directory" default="no"/>
<configureoption name="with-system-fastlz" prompt="use system fastlz" default="no"/>
<configureoption name="enable-memcached-igbinary" prompt="enable igbinary serializer" default="no"/>
<configureoption name="enable-memcached-msgpack" prompt="enable msgpack serializer" default="no"/>
<configureoption name="enable-memcached-json" prompt="enable json serializer" default="no"/>
<configureoption name="enable-memcached-protocol" prompt="enable server protocol" default="no"/>
<configureoption name="enable-memcached-sasl" prompt="enable sasl" default="yes"/>
<configureoption name="enable-memcached-session" prompt="enable sessions" default="yes"/>
pecl install --configureoptions 'with-libmemcached-dir="no" with-zlib-dir="no" with-system-fastlz="no" enable-memcached-igbinary="yes" enable-memcached-msgpack="no" enable-memcached-json="no" enable-memcached-protocol="no" enable-memcached-sasl="yes" enable-memcached-session="yes"' memcached
Obinwanne's Hill的回答完全符合我的需求,因此我这里没有新的内容,但是以下内容似乎是最短的,并且不需要任何高级工具。
echo '' | pecl install apc
pecl install apc <<<''
。 - Gussecho | pecl install apc
,不需要 ''。干杯! - John Siu