web-dev-qa-db-fra.com

Comment vérifier si une gemme est installée?

J'ai installé data_mapper pour un projet Sinatra. Curieux, pourquoi est-ce quand je fais gem install brew, Je peux $ which brew et obtenir le chemin de son emplacement et ne peut pas pour data_mapper? Cela fonctionne pour certains joyaux et pas pour d'autres.

Comment puis-je vérifier qu'un bijou est installé correctement? La vérification de la version garantirait-elle que la gemme est téléchargée correctement?

37
andy4thehuynh

Solution générale

Essayez gem list pour obtenir la liste des gemmes installées.

Pour tester une gemme particulière, vous pouvez utiliser -i avec une expression régulière: gem list -i "^gem_name$". (Nous remercions Timo dans les commentaires de cette technique.)

Solution particulière pour OP

Si vous ne trouvez pas data_mapper, il se peut que le nom de la gemme soit différent de ce que vous attendez.

De plus, si vous faites simplement which brew pour trouver le breuvage, vous ne trouvez pas le joyau appelé breuvage, vous trouvez l'emplacement de l'exécutable du breuvage. Essayez gem which brew au lieu.

MODIFIER:

Si vous recherchez data_mapper en faisant which data_mapper, vous ne le trouverez probablement pas. which est un programme Unix pour trouver des exécutables Unix, et data_mapper n'en a probablement pas.

Étant donné que votre objectif est de vérifier qu'un bijou est installé avec la bonne version, utilisez gem list. Vous pouvez vous limiter à la gemme spécifique en utilisant gem list data_mapper.

Pour vérifier qu'il est installé et fonctionne , vous devrez essayer de require la gemme puis de l'utiliser dans votre code.

46
user513951

Dans le cas où vous souhaitez utiliser la vérification dans un script, cela donne une meilleure sortie (vrai ou faux) et un code de sortie approprié:

gem list -i <gem_name>

Vous pouvez également ajouter l'option de version:

gem list -i <gem_name> -v version
35
Spajus