【问题标题】:Could not find rails (>= 0) amongst [] (Gem::LoadError)在 [] (Gem::LoadError) 中找不到导轨 (>= 0)
【发布时间】:2011-09-10 19:20:48
【问题描述】:

在安装 rvm、更新 .gmrc 文件、更新 ruby​​gems 并运行gem install rails -v ">=3.1.0rc" 之后,我现在似乎一团糟:

$ rails -v
/usr/local/lib/site_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find rails (>= 0) amongst [] (Gem::LoadError)
    from /usr/local/lib/site_ruby/1.8/rubygems/dependency.rb:256:in `to_spec'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:1182:in `gem'
    from /var/lib/gems/1.8/bin/rails:18

myhome@myhome-mini:~$ gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.6.2
  - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [i686-linux]
  - INSTALLATION DIRECTORY: /home/myhome/gems
  - RUBY EXECUTABLE: /home/myhome/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
  - EXECUTABLE DIRECTORY: /home/myhome/gems/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home/myhome/gems
     - /usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gemhome" => "/home/myhome/gems"
     - "gempath" => ["/home/myhome/gems", "/usr/lib/ruby/gems/1.8"]
  - REMOTE SOURCES:
     - http://rubygems.org/

【问题讨论】:

  • 我遇到了这个确切的问题,但使用的是 bundler gem。
  • 对不起,我在那台机器上重新安装了 Ubuntu,所以我不能评论任何建议的解决方案..虽然实际上我确实尝试了 sudo 方法但没有成功,所以我会接受删除 ruby​​ 的建议,谢谢

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


【解决方案1】:

我遇到了类似的问题。不确定这是否对您有帮助,但您可以尝试使用 rvmsudo gem install [gemname] 安装 gem,而不仅仅是使用 gem install [gemname]sudo gem install [gemname]

我试着解释一下,因为有人赞成:
这基本上是一个路径问题。如果您通过gem install 设置gem,与通过bundler 设置的gem(您可以使用--path 覆盖它)相比,它们很可能位于另一个目录中(例如/usr/local/)。使用sudo 也可以将它们设置到另一个目录,因为sudo 启动了一个具有不同环境的子shell。这就是为什么你有rvmsudo

如果您想查看差异,请比较$PATH$GEM_HOME$GEM_PATH$BUNDLE_PATH(直接回显时)与sudorvmsudo

【讨论】:

  • 这条评论对于在 travis-ci.org 上安装 gems 尤其有用
  • 我在创建自己的 gem 并仍在开发它们时遇到了这个问题。在主应用程序中,我使用路径来引用文件夹。当在应用程序目录之外并且我想做类似 rails -v 的事情时,我收到这个错误,说它找不到我正在开发的自定义 gem。关于潜在修复的任何建议?
【解决方案2】:

首先删除红宝石 那么

sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

安装所有需要的库 然后你可以安装 ruby​​ 和 rails

rvm install 1.9.3
rvm --default use 1.9.3
rvm gem install rails

【讨论】:

    【解决方案3】:

    我必须sudo gem install bundler 才能让它再次工作。

    【讨论】:

    • 天啊,有时候 Ruby 生态系统让我哭笑不得。
    • 如果我已经有了 bundler 但仍然无法使用怎么办? (这是我的情况)
    【解决方案4】:

    在安装 IntelliJ IDEA 和关联的 Rail Dev 插件后尝试生成控制器时,我收到了几乎相同的消息。从我的应用程序目录中,我刚刚执行了捆绑安装,然后能够再次生成控制器。

    【讨论】:

      【解决方案5】:
      rvm rubygems current
      

      为我做了诀窍。

      【讨论】:

        【解决方案6】:

        我遇到了类似的问题,可能是rvm的兼容问题。 我通过将 rvm 更新到最新版本来修复:

        curl -L https://get.rvm.io | bash -s stable --ruby
        

        然后你应该重新加载 rvm 或者只是打开新的终端窗口。 然后我重新安装了捆绑程序“gem install bundler”并正常运行“bundle install”

        【讨论】:

        • 如果您已经安装了 rvm 和更新的版本,这应该做同样的事情:rvm get stable --auto
        【解决方案7】:

        我知道这是一个非常老的问题,但我最近才决定在我不久前设置的服务器上迁移到 RVM,并且遇到了同样的问题,即 gem 安装在错误的位置,它只是搞砸了一切起来。

        在 SO 中爬了几个小时后,我终于发现在我的根文件夹中的 .gemrc 文件中,我之前设置了 gemhome: and gempath: 变量,它们正在弄乱整个系统。

        删除这些行后,我所有的宝石都可以正常工作了。

        只是想我会发布我的答案,以防有人处于相同的位置。

        【讨论】:

          猜你喜欢
          • 2011-12-13
          • 1970-01-01
          • 2016-09-18
          • 2013-09-22
          • 1970-01-01
          • 2015-03-02
          • 1970-01-01
          • 1970-01-01
          • 2011-09-14
          相关资源
          最近更新 更多