プロンプトなしでPECLモジュールをインストールする


90

ソースからUbuntuNattyにPHPをインストールしました。

PECLを使用して、APCやMemcacheなどの追加モジュールをインストールしようとしています。私は次のようなものを使用しています:

pecl install apc

ただし、確認を求めるプロンプトが表示されます。

peclコマンドを使用してデフォルトを受け入れるにはどうすればよいですか?私はメッセージボードでこのようなものを見ました:printf "yes\n" | pecl install pecl_http。ただし、APCの場合、デフォルトが「いいえ」の場合、これは「はい」と答えます(私は思います)。

前もって感謝します。


1
@Gordon:試してみましたが、必要なもののハンドルがないようです。
Obinwanne Hill 2011

1
デフォルト値が受け入れられる場合、非対話モードでは、PECLプロンプトは必要ありません。たとえばRUN pecl install apc、ビルド時にDockefileに追加すると、デフォルト値が自動的に選択されます。
デレクソン2015

回答:


83

次のコードは問題なく動作しているようです。

printf "\n" | pecl install apc

apcを他のPECLパッケージに置き換えることもできます。

乾杯。


8
私も成功を収めていますyes | pecl install memcache-デフォルトが「はい」以外のパッケージであなたのソリューションがうまく機能すると思いますが
Frank Farmer

1
おかげさまで、これはCircleCI
Jujhar Singh

79

「yes」コマンドは、「yes」と入力するだけではありません。何でも何度でも入力できます。空の行を含めると、デフォルトを受け入れるのに適した方法です。

私はこれを自分で必要としていたので、これが私にとってうまくいったものです:

yes '' | pecl install -f apc

入力をありがとう、トム。あなたのコードは意図されていました"yes\n" | pecl install -f apcか?!
Obinwanne Hill 2014

4
@ObinwanneHill:トムはyesコマンドを参照していました。これに対する利点は、printf出力を繰り返し生成することです。これにより、peclインストーラーがスクリプトでprintf予想されるよりも多くの質問を求めた場合に、移植性が向上します。
jmikola 2014

@jmikolaなるほど、そのコマンドに精通していませんでした。ありがとう
Obinwanne Hill 2014

8

Obinwanne's Hillの答えは私にとってそれを釘付けにしたので、ここでは何も新しいものを提供していませんが、以下は、特別なツールがなくても絶対に最短のようです。

echo '' | pecl install apc

6
同じ結果を達成するための短い方の選択肢は次のとおりです。pecl install apc <<<''
GUSS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.