120 votes

Comment savoir quelle version d'une gemme une application rails utilise ?

Je suis en train d'étudier une application rails - le serveur prod a deux versions d'une gemme spécifique installée, comment puis-je savoir quelle version l'application prod utilise ?

0 votes

Demandez-vous quelle version de rails, ou quelle version d'une autre gemme ?

1 votes

Quelle version d'une gemme particulière.

0 votes

J'ai une gemme gelée sous vendeurs/gemmes, et j'ai ensuite une version plus récente de la gemme installée dans l'emplacement des gemmes par défaut. Je cherche quelque chose dans rails qui dise "J'ai chargé cette gemme depuis cet emplacement".

182voto

BJ Clark Points 1648

Dans Rails 3 et Rails 4, utilisez bundle show

Dans Rails 2, rake gems imprimera quelles gemmes, dépendances et versions sont installées, gelées, etc.

2 votes

Cela ne fonctionnera que si la gemme a été spécifiée dans le fichier environment.rb. Si le développeur l'a juste exigé quelque part, rake gems ne fonctionnera pas.

0 votes

(Ou dans l'un des fichiers config/environnements/*, en fonction de votre RAILS_ENV).

4 votes

Si vous voulez filtrer la liste, faites bundle show | grep gem_name exemple pour la boussole : bundle show | grep compass

41voto

Stina Points 201

Si vous utilisez bundler, alors vous pouvez obtenir la version à partir de

bundle show [gemname]

0 votes

Je suis venu à cette question parce que j'essaie de déménager à bundler (probablement beaucoup de gens aussi, car Heroku l'exige maintenant)

1 votes

Ceci est déprécié. Utilisez bundle info [gemname] à la place.

38voto

SnapShot Points 2409

Il m'a fallu plus de temps que prévu pour trouver et trier ces informations. J'ai donc voulu les publier ici en un seul endroit pour que d'autres puissent les consulter. Je voulais aussi clarifier un peu les choses pour Rails 3 :

  • script/about a été remplacé par rake about Les détails sont les suivants aquí . Si vous êtes intéressé par une liste de toutes les modifications de la ligne de commande pour Rails 3, vous pouvez la trouver à l'adresse suivante aquí .

  • rake gems ne fonctionne pas dans Rails 3. A la place, vous devez utiliser bundle show

Par exemple, vous pouvez sauvegarder toutes les versions de vos gemmes dans un fichier pour les consulter avec :

gem list > all_gems.txt

et vous pouvez voir avec quelles versions votre application Rails est utilisée :

bundle show > project_gems.txt

En utilisant un éditeur comme Vim vous pouvez facilement utiliser vimdiff pour voir les changements

6voto

gtd Points 7062

Il existe probablement un moyen plus direct de le découvrir, mais si vous chargez une console et demandez une version spécifique comme ceci :

gem 'RedCloth', '3.0.4'

Il vous dira quelle version est déjà activée :

=> Gem::LoadError: can't activate RedCloth (= 3.0.4, runtime) for [], already activated RedCloth-4.2.2

5voto

SooDesuNe Points 3650

Il y a aussi une liste dans Gemfile.lock situé dans le répertoire racine de votre application.

Pour cette raison, je laisse Gemfile.lock de mon .gitignore . Cela m'a sauvé plus d'une fois lorsque j'avais oublié de spécifier la version de la gemme dans le fichier GemFile et une gemme a été mise à jour avec des changements de rupture.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X