在没有提示的情况下安装 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提示。例如,如果您添加到 Dockefile RUN 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库解决方法

pecl安装redis模块失败(redirected but no location)

如何在没有安装权限的情况下使用新的 Perl 模块?

NPM 模块不会在没有 sudo 的情况下全局安装