Necesito, desde un script bash, verificar para ver si están instaladas ciertas gemas Ruby.
Pensé que podría hacer algo como
if ! gem list <name>; then do_stuff; fi
pero la prueba en la línea de comando usando echo $?
muestra que gem list <name>
devuelve 0 independientemente de si el nombre se encuentra realmente
¿Esto significa que tengo que usar grep para filtrar la salida de la lista de gemas, o hay una mejor manera de verificar si una gema está instalada?
--version
, por ejemplo:gem list -i compass --version 0.12.4
.Parece que el
gem spec
comando fallará con un error si la gema nombrada no está instalada. Entonces:No sé si esta es la forma canónica de resolver esto, pero funciona.
fuente
También puede usar el
extracto de usoquery
subcomando para elgem
comando.También buscará versiones específicas, utilizando el
-v
interruptor.fuente
gem query
: "El comando de consulta es la base de los comandos de lista y búsqueda. Realmente debería usar los comandos de lista y búsqueda. Este comando es demasiado difícil de usar". ... no quiero crear malos hábitos en la comunidad SO! :-)