Forma más corta de instalar apt-get php7.0- {algunos módulos}

8

Actualmente estoy instalando php7.0 y me preguntaba si hay una forma más corta de instalar los módulos. normalmente escribo:

    apt-get install php7.0 php7.0-fpm php7.0-mbstring php7.0-mcrypt 
     php7.0-phpdbg php7.0-dev php7.0-curl php7.0-sqlite3 php7.0-json 
     php7.0-gd php7.0-cli

¿Existe una expresión regular para que no tenga que escribir php7.0 una y otra vez? Algo como:

   apt-get install php7.0-{fpm mbstring mcrypt phpdbg dev curl sqlite3 
    json gd cli}

Busqué algo como esto durante horas pero no pude encontrarlo. De antemano gracias por su respuesta.

Joris Rietveld
fuente
1
¿Qué hay de apt-get install php7*? Lo suficientemente corto? Pero simplemente instalará todos los paquetes php7 posibles.
Videonauth
@Videonauth peor: instalará todos los paquetes que contengan phpcualquier parte del nombre del paquete.
muru

Respuestas:

14

Como @Videonauth sugirió, puede usar apt-get install php7.*pero eso instalará todos los paquetes cuyos nombres contengan php7. Para instalar aquellos cuyos nombres comienzan con php7, use apt-get install '^php7. *. Para instalar solo aquellos en su lista, puede usar la expansión de llaves. El formato es casi lo que ya probaste: llaves pero una lista separada por comas:

$ echo foo{a,b,c}
fooa foob fooc

Por lo tanto:

$ echo php7.0-{fpm,mbstring,mcrypt,phpdbg,dev,curl,sqlite3,json,gd,cli}
php7.0-fpm php7.0-mbstring php7.0-mcrypt php7.0-phpdbg php7.0-dev php7.0-curl php7.0-sqlite3 php7.0-json php7.0-gd php7.0-cli

Entonces, podrías ejecutar:

sudo apt-get install php7.0-{fpm,mbstring,mcrypt,phpdbg,dev,curl,sqlite3,json,gd,cli}
terdon
fuente
Él, no estaba seguro de si esas expansiones de aparatos funcionarán, así que solo comenté.
Videonauth
@Videonauth, sí, solo necesitan espacio. También puedes hacer cosas como echo {1..10}o echo {01..10}. Cosas útiles.
terdon
No, php7* no instala paquetes a partir de php7. apt-getusa expresiones regulares, no comodines. A menos que tenga archivos nombrados php7-fooen su directorio actual, php7*el shell los apt-getpasará a , lo que lo tratará como una expresión regular y lo combinará con el nombre completo del paquete. Por lo tanto, cada paquete que contenga phpsu nombre será seleccionado para la instalación. La gente ha sido mordida por esto, repetidamente: askubuntu.com/questions/210976/…
muru
@muru eek! Gracias, me había olvidado de la ..
terdon
@terdon no solo el ., tendrás que anclar la expresión con^
muru