web-dev-qa-db-fra.com

ne peut pas trouver gem Rails - Gem :: GemNotFoundException

En utilisant ubuntu 10.04, rvm. Au début, j'ai installé Ruby 1.9.2 avec rvm, gem Rails et généré un nouveau projet et l'ai démarré avec succès. Tout fonctionnait bien. Mais après être passé à un autre projet, exécuter la commande d'installation du bundle (la sortie semble OK) et démarrer le serveur Rails - l'erreur se produit:

Rails s

/home/jacek/.rvm/rubies/Ruby-1.9.2-p318/lib/Ruby/site_Ruby/1.9.1/rubygems.rb:316:in `bin_path': can't find gem Rails ([">= 0"]) with executable Rails (Gem::GemNotFoundException)
from /home/jacek/.rvm/gems/Ruby-1.9.2-p318/bin/Rails:19:in `<main>'

liste de gemmes Rails

*** LOCAL GEMS ***
Rails (3.2.2)

bijou env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.18
  - Ruby VERSION: 1.9.2 (2012-02-14 patchlevel 318) [i686-linux]
  - INSTALLATION DIRECTORY: /home/jacek/.rvm/gems/Ruby-1.9.2-p318
  - Ruby EXECUTABLE: /home/jacek/.rvm/rubies/Ruby-1.9.2-p318/bin/Ruby
  - EXECUTABLE DIRECTORY: /home/jacek/.rvm/gems/Ruby-1.9.2-p318/bin
  - RUBYGEMS PLATFORMS:
    - Ruby
    - x86-linux
  - GEM PATHS:
     - /home/jacek/.rvm/gems/Ruby-1.9.2-p318
     - /home/jacek/.rvm/gems/Ruby-1.9.2-p318@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Mon chemin (comprend le RÉPERTOIRE EXÉCUTABLE: /home/jacek/.rvm/gems/Ruby-1.9.2-p318/bin)

/home/jacek/.rvm/gems/Ruby-1.9.2-p318/bin:/home/jacek/.rvm/gems/Ruby-1.9.2-p318@global/bin:/home/jacek/.rvm/rubies/Ruby-1.9.2-p318/bin:/home/jacek/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Je vous serais reconnaissant pour toute l'aide apportée

25
zachar

Si vous utilisez la commande bundle install pour installer vos gemmes à partir d'un GEMFILE, il installera les gemmes dans votre emplacement système par défaut pour les gemmes, comme indiqué dans les documents du bundler ici . Après cela, vous pouvez utiliser des bundlers bundle exec commande pour exécuter une commande dans le contexte du bundle, comme indiqué dans la documentation ici . Cela garantira que la version de la gemme que vous avez installée à l'aide de bundle install est exécuté.

Si vous regardez la page d'accueil pour bundler , qui fournit un aperçu des documents, elle indique ce qui suit:

Dans certains cas, l'exécution d'exécutables sans exécutable de bundle peut fonctionner, si l'exécutable est installé sur votre système et n'introduit aucune gemme en conflit avec votre bundle.

Cependant, cela n'est pas fiable et est à l'origine d'une douleur considérable. Même s'il semble que cela fonctionne, il peut ne pas fonctionner à l'avenir ou sur une autre machine.

Je suppose que vous exécutez gem which Rails dans votre console, puis exécutez bundle show Rails dans votre console, l'installation par défaut Rails installation pour votre système diffère de celle installée pour votre bundle.

Vous dites que vous utilisez rvm pour votre gestion Ruby et gem. Je pense que vous ne l'avez peut-être pas correctement configuré. Essayer d'exécuter le rvm notes commande dans votre console pour vous assurer que vous avez suivi toutes les étapes requises/recommandées pour l'installation sur votre système d'exploitation. Vous voulez vous assurer que les exécutables pour rvm sont les premiers éléments inclus dans votre chemin lorsque vous exécutez echo $PATH idéalement. Cela garantira que les gemmes installées pour rvm seront celles exécutées lorsque vous essayez de les exécuter sans préfixer bundle exec. Si rvm notes ne vous donne pas les conseils nécessaires pour accomplir cela, alors essayez de lire attentivement les documentation pour l'installation sur le site RVM .

20
Batkins

Pour moi vient de bundler installé. Cela fait que tout fonctionne à nouveau.

gem install bundler --no-ri --no-rdoc
34

Vous pouvez changer de version entre Ruby avec $ rvm use --default 2.4.0 par exemple

Mais pour votre problème, essayez ceci:

  1. $ gem install bundler

  2. $ gem install Rails

J'espère que cela aide !

10
rust

Je pense que la commande ci-dessous fonctionnera

gem pristine Rails
0
Jagdish N