ObiHill
Acabo de instalar PHP en Ubuntu Natty desde la fuente.
Estoy tratando de usar PECL para instalar módulos adicionales como APC y Memcache. Estoy usando algo como esto:
pecl install apc
Sin embargo, recibo mensajes que me piden que confirme cosas.
¿Cómo puedo usar el comando pecl para aceptar los valores predeterminados? Vi algo como esto en un tablero de mensajes: printf "yes\n" | pecl install pecl_http
. Sin embargo, en el caso de APC, esto respondería sí para cosas donde el valor predeterminado es no (creo).
Gracias por adelantado.
El siguiente código parece funcionar bien:
printf "\n" | pecl install apc
También puede reemplazar apc con cualquier otro paquete PECL.
Salud.
-
También estoy viendo el éxito con
yes | pecl install memcache
— aunque supongo que su solución funciona mejor para paquetes donde el valor predeterminado es algo distinto a “sí”– Frank Granjero
9 oct 2013 a las 16:41
-
tom boutel
El comando “sí” puede hacer más que simplemente escribir “sí”; puede escribir lo que quieras, una y otra vez. Incluir una línea vacía, que es una buena manera de aceptar los valores predeterminados.
Solo necesitaba esto yo mismo, así que esto es lo que funcionó bien para mí:
yes '' | pecl install -f apc
-
Gracias por el aporte, Tomás. ¿Tu código estaba destinado a ser
"yes\n" | pecl install -f apc
?!– Obi Hill
12 de febrero de 2014 a las 7:39
-
@ObinwanneHill: Tom se refería a la
yes
dominio. El beneficio de esto sobreprintf
es que genera resultados repetidamente, lo que lo hace más portátil en caso de que el instalador de pecl solicite preguntas adicionales a las del scriptprintf
esperado.– jmikola
9 de abril de 2014 a las 6:53
-
@jmikola Oh, ya veo, no estaba familiarizado con ese comando. Gracias
– Obi Hill
9 de abril de 2014 a las 7:03
La respuesta de Obinwanne’s Hill me clavó, por lo que no estoy proporcionando nada nuevo aquí, pero lo siguiente parece ser el más corto absoluto también sin herramientas sofisticadas.
echo '' | pecl install apc
-
Una alternativa más corta para lograr el mismo resultado es:
pecl install apc <<<''
– Guss
16 de mayo de 2017 a las 7:57
-
Puedes ir aún más corto
echo | pecl install apc
, sin el ”. ¡¡Salud!!– Juan Siú
1 de febrero a las 6:12
Si no desea dar la misma respuesta para cada solicitud (“sí”, “no” o “”), puede usar --configureoptions
para establecer valores específicos para cada opción (consulte la Manual PECL).
Querrá encontrar el archivo package.xml de su paquete para ver qué opciones se pueden configurar. Como ejemplo, para el memcached
paquete, irías aquí:
https://github.com/php-memcached-dev/php-memcached/blob/master/package.xml
Busca el <configureoption>
etiquetas, que en este caso son:
<configureoption name="with-libmemcached-dir" prompt="libmemcached directory" default="no"/>
<configureoption name="with-zlib-dir" prompt="zlib directory" default="no"/>
<configureoption name="with-system-fastlz" prompt="use system fastlz" default="no"/>
<configureoption name="enable-memcached-igbinary" prompt="enable igbinary serializer" default="no"/>
<configureoption name="enable-memcached-msgpack" prompt="enable msgpack serializer" default="no"/>
<configureoption name="enable-memcached-json" prompt="enable json serializer" default="no"/>
<configureoption name="enable-memcached-protocol" prompt="enable server protocol" default="no"/>
<configureoption name="enable-memcached-sasl" prompt="enable sasl" default="yes"/>
<configureoption name="enable-memcached-session" prompt="enable sessions" default="yes"/>
Luego puede pasar estas opciones junto con el comando de instalación de la siguiente manera:
pecl install --configureoptions 'with-libmemcached-dir="no" with-zlib-dir="no" with-system-fastlz="no" enable-memcached-igbinary="yes" enable-memcached-msgpack="no" enable-memcached-json="no" enable-memcached-protocol="no" enable-memcached-sasl="yes" enable-memcached-session="yes"' memcached
@Gordon: Lo intenté pero no parece haber un identificador para lo que necesito.
– Obi Hill
15 de noviembre de 2011 a las 19:37
Para el caso en que los valores predeterminados sean aceptables, en el modo no interactivo, no se requiere el indicador PECL. Por ejemplo, si agrega a un Dokefile
RUN pecl install apc
en el momento de la compilación, obtendrá los valores predeterminados seleccionados automáticamente.– Dereckson
21 de abril de 2015 a las 22:08