Eu preciso, a partir de um script bash, verificar se certas gemas Ruby estão instaladas.
Eu pensei que poderia fazer algo como
if ! gem list <name>; then do_stuff; fi
mas o teste na linha de comando usando echo $?
shows mostra que gem list <name>
retorna 0, independentemente de o nome ser realmente encontrado.
Isso significa que eu tenho que usar o grep para filtrar a saída da lista de gemas, ou existe uma maneira melhor de verificar se uma gema está instalada?
--version
, por exemplo:gem list -i compass --version 0.12.4
.Parece que o
gem spec
comando falhará com um erro se a gema nomeada não estiver instalada. Então:Não sei se essa é a maneira canônica de resolver isso, mas funciona.
fonte
Você também pode usar o
trecho de usoquery
subcomando para ogem
comando.Também procurará versões específicas também, usando o
-v
switch.fonte
gem query
: "O comando query é a base dos comandos list e search. Você realmente deve usar os comandos list e search em vez disso. Este comando é muito difícil de usar." ... não quer criar maus hábitos na comunidade SO! :-)