我刚刚在Ubuntu Natty上安装了PHP。
我试图使用PECL安装APC和Memcache等额外模块。我用的是这样的:
pecl install apc
然而,我得到提示,要求我确认一些事情。
如何使用pecl命令来接受默认值?我在一个留言板上看到这样的东西:printf "yes'n" | pecl install pecl_http
。然而,在APC的情况下,对于默认为no的事情,这将回答yes(我认为)。
下面的代码似乎可以正常工作:
printf "'n" | pecl install apc
您也可以用任何其他PECL包替换apc。
欢呼。
"yes"命令可以做的不仅仅是键入"yes";它可以一遍又一遍地输入你想要的任何东西。包括一个空行,这是接受默认值的好方法。
我只是自己需要这个,所以这是我的工作很好:
yes '' | pecl install -f apc
如果您不想对每个提示("是", "否"或")给出相同的答案,您可以使用--configureoptions
为每个选项设置特定的值(参见PECL手册)。
你需要找到你的包的package.xml文件,看看哪些选项是可配置的。例如,对于memcached
包,您可以在这里执行:
搜索<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"/>
你可以把这些选项传递给install命令,像这样:
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