找不到gem rails - Gem :: GemNotFoundException

zac*_*har 25 ruby ruby-on-rails rvm ruby-on-rails-3

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

导轨

/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>'
Run Code Online (Sandbox Code Playgroud)

宝石列表轨道

*** LOCAL GEMS ***
rails (3.2.2)
Run Code Online (Sandbox Code Playgroud)

宝石环境

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/
Run Code Online (Sandbox Code Playgroud)

我的路径(包括可执行的目录:/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
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助

Gon*_*ado 34

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

gem install bundler --no-ri --no-rdoc
Run Code Online (Sandbox Code Playgroud)


Bat*_*ins 20

如果您使用该命令bundle install从a安装宝石GEMFILE,它会将宝石安装到宝石的默认系统位置,如此处的文件夹文档所述.之后,您可以使用bundlers bundle exec命令在bundle的上下文中执行命令,如此处的文档中所述.这将确保bundle install执行您安装的gem版本.

如果您查看主页的bundler,它提供了文档的概述,它说明了以下内容:

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

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

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

你说你正在使用rvmrubygem管理.我想你可能没有正确配置它.尝试rvm notes在控制台中执行该命令,以确保已满足在操作系统上安装的所有必需/建议步骤.您希望确保rvmecho $PATH理想运行时,路径中包含的第一个内容是可执行文件.这将确保安装的gem rvm将是您在没有前缀的情况下尝试执行它们时执行的gems bundle exec.如果rvm notes没有提供完成该操作所需的提示,请仔细查看RVM网站上的安装文档.


rus*_*ust 10

您可以使用Ruby之间进行切换的版本 $ rvm use --default 2.4.0,例如

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

  1. $ gem install bundler

  2. $ gem install rails

希望能帮助到你 !