在没有提示的情况下安装 PECL 模块
Posted
技术标签:
【中文标题】在没有提示的情况下安装 PECL 模块【英文标题】:Install PECL modules without the prompts 【发布时间】:2011-12-29 19:06:24 【问题描述】:我刚刚在 Ubuntu Natty 上从源代码安装了 php。
我正在尝试使用 PECL 安装其他模块,例如 APC 和 Memcache。我正在使用这样的东西:
pecl install apc
但是,我收到了要求我确认的提示。
如何使用 pecl 命令只接受默认值?我在留言板上看到了这样的内容:printf "yes\n" | pecl install pecl_http
。但是,在 APC 的情况下,对于默认为否的情况(我认为),这将回答是。
提前致谢。
【问题讨论】:
@Gordon:我试过了,但似乎没有我需要的句柄。 对于默认值可以接受的情况,在非交互模式下,不需要PECL提示。例如,如果您添加到 DockefileRUN pecl install apc
,在构建时,您将自动选择默认值。
【参考方案1】:
以下代码似乎可以正常工作:
printf "\n" | pecl install apc
您也可以将 apc 替换为任何其他 PECL 包。
干杯。
【讨论】:
我也看到了yes | pecl install memcache
的成功——尽管我认为你的解决方案对于默认值不是“yes”的包更有效
谢谢老兄,这甚至与CircleCI一起工作【参考方案2】:
“yes”命令可以做的不仅仅是输入“yes”;它可以一遍又一遍地键入您想要的任何内容。包括一个空行,这是接受默认值的好方法。
我自己也需要这个,所以这对我来说很有效:
yes '' | pecl install -f apc
【讨论】:
感谢您的意见,汤姆。你的代码是"yes\n" | pecl install -f apc
吗?!
@ObinwanneHill:Tom 指的是yes
命令。与printf
相比,它的好处是它会重复生成输出,如果 pecl 安装程序提示其他问题而不是脚本化的printf
预期的问题,它会更便携。
@jmikola 哦,我明白了,不熟悉那个命令。谢谢【参考方案3】:
Obinwanne 的 Hill 回答为我确定了答案,所以我在这里没有提供任何新内容,但以下似乎是绝对最短的,也没有任何花哨的工具。
echo '' | pecl install apc
【讨论】:
实现相同结果的更短的替代方法是:pecl install apc <<<''
以上是关于在没有提示的情况下安装 PECL 模块的主要内容,如果未能解决你的问题,请参考以下文章
python -- 在没有管理员权限的情况下手动安装下载的模块
linux下通过phpize为php在不重新编译php情况下安装模块memcache
macOS Big Sur下pecl安装swoole报需要openssl库解决方法