找不到gem rails - Gem :: GemNotFoundException

时间:2012-03-13 14:28:57

标签: ruby-on-rails ruby ruby-on-rails-3 rvm

使用ubuntu 10.04,rvm。起初,我已经用rvm,gem rails安装了ruby 1.9.2并生成了一些新项目并成功启动了它。一切都很好。但是在更改到另一个项目后,执行bundle install命令(输出看起来没问题)并启动rails服务器 - 出现错误:

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>'

gem list rails

*** LOCAL GEMS ***
rails (3.2.2)

gem 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/

My Path(包括EXECUTABLE目录:/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

我将不胜感激任何帮助

4 个答案:

答案 0 :(得分:34)

对我来说只是安装了捆绑器。这使一切都恢复了。

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

答案 1 :(得分:20)

如果您使用bundle install命令从GEMFILE安装宝石,它会将宝石安装到宝石的默认系统位置,如the bundler docs here中所述。之后,您可以使用bundlers bundle exec命令在bundle as outlined in the docs here的上下文中执行命令。这将确保执行使用bundle install安装的gem版本。

如果查看提供文档概述的homepage for bundler,请说明以下内容:

  

在某些情况下,如果可执行文件恰好安装在您的系统中并且没有引入任何与您的软件包冲突的gem,那么运行没有bundle exec的可执行文件可能会有效。

     

然而,这是不可靠的,并且是相当痛苦的根源。即使它看起来有效,但它可能在将来或其他机器上不起作用。

我猜你在控制台中运行gem which rails,然后在控制台中运行bundle show rails,系统的默认安装rails安装与为你的安装包安装的安装不同。

您说rvmruby管理员正在使用gem。我想你可能没有正确配置它。尝试在控制台中执行rvm notes命令,以确保已满足在操作系统上安装的所有必需/建议步骤。您希望确保rvm的可执行文件是理想运行echo $PATH时路径中包含的第一个内容。这将确保为rvm安装的gem将是在您尝试执行时没有加bundle exec前缀的gems。如果rvm notes未提供完成此操作所需的提示,请仔细查看docs for installation on the RVM website

答案 2 :(得分:10)

您可以在Ruby之间切换版本$ rvm use --default 2.4.0,例如

但是对于你的问题,试试这个:

  1. $ gem install bundler

  2. $ gem install rails

  3. 希望它有所帮助!

答案 3 :(得分:0)

我认为下面的命令会起作用

gem pristine rails