Lorsque j'essaie de regrouper l'installation, le message suivant s'affiche:
Your Ruby version is 2.0.0, but your Gemfile specified 2.1.0
Dans mon Gemfile, j'ai les éléments suivants:
Ruby '2.1.0'
Et quand je lance Ruby -v
dans la console, je reçois:
Ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
Que signifie Ruby 2.1.0p0? Quelle version dois-je avoir dans mon Gemfile et pourquoi l'erreur me dit-elle que j'ai Ruby version 2.0.0?
Courir
gem install bundler
ou
gem update bundler
ce qui peut résoudre votre problème.
Pour toutes les nouvelles versions installées de Ruby, vous devez mettre à jour ou installer un nouvel ensemble.
Dans le répertoire de niveau supérieur de votre projet, créez un fichier nommé .Ruby-version
contenant ( attendez-le ... )
2.1.0
Apparemment, c’est la manière cross -{rbenv,rvm}
de spécifier la version maintenant.
Si vous obtenez cela dans un projet Rails et que vous avez récemment mis à niveau votre version de Ruby, il est possible que spring fonctionne toujours avec l'ancienne version de Ruby.
./bin/spring stop
va résoudre ce problème.
Pour moi, aucune des réponses n'a aidé. Je l'ai corrigé en fermant et en ouvrant à nouveau le terminal.
Je l'ai obtenu après la mise à niveau avec Ruby-install . Corrigé ceci avec:
gem install bundler
suivi par:
$HOME/.rubies/Ruby-2.4.1/bin/bundle
Il ne devrait pas être nécessaire de spécifier le chemin car which bundle
indique qu'il utilise déjà ce chemin. Mais cela donne une erreur de version si vous utilisez bundle
sans le chemin. Je ne sais pas pourquoi?
Si vous utilisez Capistrano, vous devez également vérifier votre fichier deploy.rb
pour la configuration set :rbenv_Ruby
.
Si vous utilisez rbenv pour gérer vos environnements Ruby, vous pouvez exécuter rbenv local 2.1.0
dans votre répertoire de projet pour définir la version de Ruby demandée par votre fichier gem.
Aucune des réponses ci-dessus n'a fonctionné pour moi, mais
$ gem pristine --all
a fait le tour pour moi
buona Fortuna
Pour les projets plus avancés, le fichier .versions.conf est pris en charge. Vous pouvez en spécifier davantage que la version Ruby.
Générer .versions.conf:
rvm --create --versions-conf use 1.9.3@my_app
Exemple .versions.conf:
Ruby=jruby-1.6.8
Ruby-gemset=my_app
env-JRUBY_OPTS=--1.9
Assurez-vous que la configuration de votre serveur pointe vers la bonne installation de Ruby.
J'avais déjà mis à jour ma version de Ruby dans le fichier .Ruby-version
et cela ne le réglait pas. Ruby -v
a également montré la version correcte, mais j'avais oublié de mettre à jour la configuration de mon serveur.
Par exemple, avec rbenv, NGINX et Pushion Passenger, j'avais dans mon bloc de serveur NGINX:passenger_Ruby /Users/myusername/.rbenv/versions/2.3.1/bin/Ruby;
Et j'avais besoin de changer pour ...passenger_Ruby /Users/myusername/.rbenv/versions/2.3.3/bin/Ruby;
Puis redémarré NGINX et cela a fonctionné.
brew cleanup Ruby
a fonctionné pour moi car j'utilise HomeBrew pour installer Ruby.
J'ai récemment mis à jour Ruby via HomeBrew mais HomeBrew n'a pas supprimé l'ancienne version. brew cleanup Ruby
supprimera l'ancienne version de Ruby.
Cela peut se produire lorsque vous installez la nouvelle version de Ruby et mettez à jour .Ruby-version et Gemfile vers la nouvelle version sans installer d’abord toutes les gems de la nouvelle version de Ruby. Ainsi le font
$ bundle install
et vous pourriez aussi avoir besoin de source .profile ou de redémarrer votre shell.
Aucune des autres suggestions ne fonctionnait pour moi. Sur le serveur, je devais faire:
rvm --default use [correct version number]
Merci pour l'info sur l'installation/la mise à jour de bundler mais cela n'a pas fonctionné pour moi . Je devais faire rbenv rehash
Eu la même erreur. Faire ce qui suit l'a corrigé. J'utilisais Ruby 2.5.5 et Rbenv. Mis à jour à partir de 2.5.1.