Installieren Sie PECL-Module ohne Eingabeaufforderung

87

Ich habe gerade PHP unter Ubuntu Natty von der Quelle installiert.

Ich versuche, mit PECL zusätzliche Module wie APC und Memcache zu installieren. Ich benutze so etwas:

pecl install apc

Ich werde jedoch aufgefordert, die Dinge zu bestätigen.

Wie kann ich den Befehl pecl verwenden, um nur die Standardeinstellungen zu akzeptieren? Ich habe so etwas auf einem Message Board gesehen : printf "yes\n" | pecl install pecl_http. Im Fall von APC würde dies jedoch für Dinge mit Ja antworten, bei denen der Standardwert Nein ist (glaube ich).

Danke im Voraus.

Obinwanne Hill
quelle
1
@ Gordon: Ich habe das versucht, aber es scheint keinen Griff für das zu geben, was ich brauche.
Obinwanne Hill
1
Für den Fall, dass die Standardwerte akzeptabel sind, ist im nicht interaktiven Modus keine PECL-Eingabeaufforderung erforderlich. Wenn Sie beispielsweise zur Erstellungszeit ein Dockefile hinzufügen RUN pecl install apc, werden die Standardwerte automatisch ausgewählt.
Dereckson

Antworten:

80

Der folgende Code scheint in Ordnung zu sein:

printf "\n" | pecl install apc

Sie können apc auch durch ein anderes PECL-Paket ersetzen.

Prost.

Obinwanne Hill
quelle
8
Ich sehe auch Erfolg mit yes | pecl install memcache- obwohl ich denke, dass Ihre Lösung besser für Pakete funktioniert, bei denen der Standard etwas anderes als "Ja" ist
Frank Farmer
1
Danke Alter, das hat sogar mit CircleCI
Jujhar Singh
75

Der Befehl "yes" kann mehr als nur "yes" eingeben. Es kann immer und immer wieder alles eingeben, was Sie wollen. Einschließlich einer leeren Zeile, die eine gute Möglichkeit ist, Standardeinstellungen zu akzeptieren.

Ich brauchte das nur selbst, also hat Folgendes für mich gut funktioniert:

yes '' | pecl install -f apc
Tom Boutell
quelle
Danke für die Eingabe, Tom. War dein Code so gedacht "yes\n" | pecl install -f apc?!
Obinwanne Hill
4
@ObinwanneHill: Tom bezog sich auf den yesBefehl. Dies hat den Vorteil, printfdass die Ausgabe wiederholt generiert wird, wodurch sie portabler wird, wenn das pecl-Installationsprogramm zusätzliche Fragen stellt, als von Ihrem Skript printferwartet.
Jmikola
@jmikola Oh, ich verstehe, war mit diesem Befehl nicht vertraut. Vielen Dank
Obinwanne Hill
8

Obinwannes Hill-Antwort hat es für mich genau getroffen, daher biete ich hier nichts Neues an, aber das Folgende scheint auch ohne ausgefallene Werkzeuge das absolut kürzeste zu sein.

echo '' | pecl install apc
Ian Bytchek
quelle
6
Eine kürzere Alternative, um das gleiche Ergebnis zu erzielen, ist:pecl install apc <<<''
Guss