2011-11-15 93 views
58

我剛剛從源代碼的Ubuntu Natty上安裝了PHP。在沒有提示的情況下安裝PECL模塊

我正在嘗試使用PECL來安裝APC和Memcache等附加模塊。我使用的是這樣的:

pecl install apc 

但是,我得到提示,要求我確認一些事情。

如何使用pecl命令來接受默認值?我在留言板上看到類似這樣的東西:printf "yes\n" | pecl install pecl_http。但是,就APC而言,如果默認值爲「否」(我認爲),則會回答「是」。

在此先感謝。

+1

@戈登:我試過了,但似乎沒有我需要的句柄。 –

+0

對於默認值可接受的情況,在非交互模式下,不需要PECL提示。例如,如果您在構建時添加到Dockefile'RUN pecl install apc',則會自動選擇默認值。 – Dereckson

回答

60

下面的代碼似乎確定工作:

printf "\n" | pecl install apc 

您還可以通過其他的PECL包更換APC。

乾杯。

+5

我也看到成功與'是| pecl安裝memcache' - 雖然我認爲你的解決方案對於默認不是「yes」的軟件包效果更好 –

+1

感謝兄弟,這甚至可以和[CircleCI]一起工作(https://circleci.com/docs/language-php ) –

46

「是」命令可以做的不僅僅是輸入「是」;它可以一遍又一遍地輸入任何你想要的東西。包括一個空行,這是接受默認值的好方法。

我只是需要這個自己,所以這裏是爲我工作得好:

yes '' | pecl install -f apc 
+0

感謝您的意見,湯姆。你的代碼是否是'「是\ n」| pecl install -f apc' ?! –

+2

@ObinwanneHill:湯姆指的是['yes'](http://linux.die.net/man/1/yes)命令。這對'printf'的好處是,它可以重複生成輸出,如果pecl安裝程序提示您需要的其他問題比預期的腳本'printf'更多,那麼它將更加便攜。 – jmikola

+0

@jmikola哦,我明白了,並不熟悉那個命令。謝謝 –

2

Obinwanne山回答釘它爲我,所以我不會提供什麼新的東西,但下面好像絕對最短也沒有任何花哨的工具。

echo '' | pecl install apc 
+1

實現相同結果的更短的替代方法是:'pecl install apc <<<''' – Guss

相關問題