首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到gem rails - Gem::GemNotFoundException

找不到gem rails - Gem::GemNotFoundException
EN

Stack Overflow用户
提问于 2012-03-13 22:28:57
回答 4查看 56.9K关注 0票数 25

使用ubuntu 10.04,rvm。首先,我已经安装了带有rvm、gem rails的ruby 1.9.2,并生成了一些新项目并成功启动。一切都运行得很好。但在切换到另一个项目后,执行bundle install命令(输出看起来正常)并启动rails服务器-出现错误:

rails %s

代码语言:javascript
复制
/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列表rails

代码语言:javascript
复制
*** LOCAL GEMS ***
rails (3.2.2)

gem环境

代码语言:javascript
复制
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/

我的路径(包括可执行目录: /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin )

代码语言:javascript
复制
/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

如果有任何帮助,我将不胜感激

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-14 03:43:10

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

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

在某些情况下,如果系统中恰好安装了可执行文件,并且没有引入任何与捆绑包冲突的gem,则在没有捆绑包执行的情况下运行可执行文件可能会起作用。

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

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

您说您正在使用rvm进行rubygem管理。我在想你可能没有正确地配置它。尝试在控制台中执行rvm notes命令,以确保您已经完成了在操作系统上安装所需/建议的所有步骤。理想情况下,当您运行echo $PATH时,您希望确保rvm的可执行文件是path中的第一个文件。这将确保为rvm安装的gem将是您尝试在没有bundle exec前缀的情况下执行它们的gem。如果rvm notes没有为您提供完成此任务所需的提示,请尝试仔细查看docs for installation on the RVM website

票数 22
EN

Stack Overflow用户

发布于 2014-10-28 06:07:04

对我来说,刚刚安装了bundler。这会让一切都恢复正常。

代码语言:javascript
复制
gem install bundler --no-ri --no-rdoc
票数 34
EN

Stack Overflow用户

发布于 2017-04-12 23:00:21

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

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

  1. $ gem install bundler
  2. $ gem install rails

希望它能帮上忙!

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9686052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档