【问题标题】:Rails. Gem bundle failed导轨。宝石捆绑失败
【发布时间】:2011-08-06 23:53:49
【问题描述】:

我跑完之后:

捆绑安装

我明白了:

/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:14:in <top (required)>': undefined methodremove' 用于 Gem::QuickLoader:Module (NoMethodError) 来自 :158:in require' from <internal:gem_prelude>:158:inload_full_rubygems_library' 来自 :280:在method_missing' from /usr/local/bin/bundle:19:in' mat@Macbook-Pro~/Documents/workspace/RoR/rails_projects/sample_app$

已编辑:

>bundle -v 
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:14:in `<top (required)>': undefined method `remove' for Gem::QuickLoader:Module (NoMethodError)
    from <internal:gem_prelude>:158:in `require'
    from <internal:gem_prelude>:158:in `load_full_rubygems_library'
    from <internal:gem_prelude>:280:in `method_missing'
    from /usr/local/bin/bundle:19:in `<main>'

mat@Macbook-Pro~$ gem -v
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:86:in `<top (required)>': undefined method `load_plugins' for Gem:Module (NoMethodError)
    from /usr/local/bin/gem:9:in `require'
    from /usr/local/bin/gem:9:in `<main>'

我的 Gemfile 是:

>

 source 'http://rubygems.org'

gem 'rails', '3.0.9'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3', '1.3.3'

group :development do
  gem 'rspec-rails', '2.6.1'
end

group :test do
  gem 'rspec-rails', '2.6.1'
  gem 'webrat', '0.7.1'
end

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
# gem 'ruby-debug'
# gem 'ruby-debug19', :require => 'ruby-debug'

# Bundle the extra gems:
# gem 'bj'
# gem 'nokogiri'
# gem 'sqlite3-ruby', :require => 'sqlite3'
# gem 'aws-s3', :require => 'aws/s3'

# Bundle gems for the local environment. Make sure to
# put test-only gems in this group so their generators
# and rake tasks are available in development mode:
# group :development, :test do
#   gem 'webrat'
# end

有人可以帮我吗?谢谢!

【问题讨论】:

  • 你运行的是什么版本的 bundle 和 ruby​​gems? bundle -v 和 gem -v。您是否尝试过更新其中一个?
  • @Casper 请查看更新信息。 bundle -v 和 gem -v 生成错误消息。
  • 好的..那么这些问题是什么时候开始的?你最近做了什么改变,破坏了它?还是这是您第一次使用 ruby​​?
  • @Casper 今天。我不能做我不正常的事。今天不使用 RoR。

标签: ruby-on-rails ruby rubygems bundler


【解决方案1】:

我遇到了类似的错误:

$ bundle -v

/Users/Reza/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/site_ruby/1.9.1/rubygems.rb:14:in `<top         (required)>': undefined method `remove' for Gem::QuickLoader:Module (NoMethodError)

似乎所有 [..]/rubygems.rb Undefined method[..] 问题都与安装的 ruby​​gems(例如通过 rvm ruby​​gems)和 ruby​​ 中内置的 ruby​​gems 方法之间的冲突有关1.9.x

只需重命名已安装的 ruby​​gems 文件即可解决问题。

$ which ruby
/Users/Reza/.rvm/rubies/ruby-1.9.2-rc2/bin/ruby
$ echo $MY_RUBY_HOME
/Users/Reza/.rvm/rubies/ruby-1.9.2-rc2
$ cd "$MY_RUBY_HOME/lib/ruby/site_ruby/1.9.1/"
$ mv rubygems.rb rubygems.rb-rename
$ mv rubygems rubygems-rename
$ bundle -v
Bundler version 1.0.18

【讨论】:

    【解决方案2】:

    尝试从这里手动更新到最新的 RubyGems 版本:

    http://rubygems.org/pages/download

    1. Download the latest rubygems 
       http://production.cf.rubygems.org/rubygems/rubygems-1.8.7.tgz
    2. Extract it 
       tar zxvf rubygems-1.8.7.tgz
    3. Install it
       cd rubygems-1.8.7
       sudo ruby setup.rb
    

    如果这没有帮助,您可以尝试从此处下载旧版本的 ruby​​gems:
    http://rubyforge.org/frs/?group_id=126

    例如 1.8.5、1.8.0、1.7.0、1.6.0。

    【讨论】:

    • 我也得到了这个:$ sudo gem update --system 1.8.5 /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:86:in &lt;top (required)&gt;': undefined method 来自 /usr/local/bin/gem:9:in require' from /usr/local/bin/gem:9:in
      '
      的 Gem:Module (NoMethodError) 的 load_plugins'
    • 您不能使用gem update --system,因为您的整个 RubyGems 模块已损坏(gem 命令来自 RubyGems,它已为您损坏)。这就是为什么您需要按照我的说明进行操作,并“手动”安装。
    • 如果一切都失败了,我建议您从系统中删除所有 ruby​​ 软件包并从头开始重新安装 ruby​​。但我很确定,如果您只安装正确的 RubyGems 版本,您也可以使用它。您现在似乎只是遇到了某种与 Ruby/RubyGems 不兼容的问题。
    猜你喜欢
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多