Installez les modules PECL sans les invites

90

Je viens d'installer PHP sur Ubuntu Natty à partir de la source.

J'essaye d'utiliser PECL pour installer des modules supplémentaires comme APC et Memcache. J'utilise quelque chose comme ça:

pecl install apc

Cependant, je reçois des invites me demandant de confirmer les choses.

Comment puis-je utiliser la commande pecl pour simplement accepter les valeurs par défaut? J'ai vu quelque chose comme ça sur un forum: printf "yes\n" | pecl install pecl_http. Cependant, dans le cas d'APC, cela répondrait oui pour les choses où la valeur par défaut est non (je pense).

Merci d'avance.

Obinwanne Hill
la source
1
@Gordon: J'ai essayé mais il ne semble pas y avoir de poignée pour ce dont j'ai besoin.
Obinwanne Hill
1
Dans le cas où les valeurs par défaut sont acceptables, en mode non interactif, l'invite PECL n'est pas requise. Par exemple, si vous ajoutez à un Dockefile RUN pecl install apc, au moment de la construction, vous obtiendrez les valeurs par défaut automatiquement sélectionnées.
Dereckson

Réponses:

83

Le code suivant semble fonctionner correctement:

printf "\n" | pecl install apc

Vous pouvez également remplacer apc par n'importe quel autre package PECL.

À votre santé.

Obinwanne Hill
la source
8
Je vois également du succès avec yes | pecl install memcache- bien que je suppose que votre solution fonctionne mieux pour les paquets où la valeur par défaut est autre chose que "oui"
Frank Farmer
1
Merci mec, cela a même fonctionné avec CircleCI
Jujhar Singh
79

La commande "yes" peut faire plus que simplement taper "yes"; il peut taper tout ce que vous voulez, encore et encore. Inclure une ligne vide, ce qui est un bon moyen d'accepter les valeurs par défaut.

J'en avais juste besoin moi-même, alors voici ce qui a bien fonctionné pour moi:

yes '' | pecl install -f apc
Tom Boutell
la source
Merci pour votre contribution, Tom. Votre code était-il censé l'être "yes\n" | pecl install -f apc?!
Obinwanne Hill
4
@ObinwanneHill: Tom faisait référence à la yescommande. L'avantage de ceci printfest qu'il génère une sortie à plusieurs reprises, ce qui le rend plus portable si l'installateur pecl vous demande des questions supplémentaires que votre script printfprévu.
jmikola le
@jmikola Oh je vois, n'était pas familier avec cette commande. Merci
Obinwanne Hill
8

La réponse d'Obinwanne's Hill me l'a permis, donc je ne propose rien de nouveau ici, mais ce qui suit semble être le plus court absolu, sans outils sophistiqués.

echo '' | pecl install apc
Ian Bytchek
la source
6
Une alternative plus courte pour obtenir le même résultat est:pecl install apc <<<''
Guss