Rails3服务器和bundler错误:未初始化的常量Bundler(NameError)

我只需要安装rails 3以及它所需的所有gem,但是当我尝试启动服务器时,它会说出启动脚本中的问题。

[rap-kasta@acerAspire testR3]$ script/rails server /home/rap-kasta/tmp/testR3/config/boot.rb:7:in `rescue in ': uninitialized constant Bundler (NameError) from /home/rap-kasta/tmp/testR3/config/boot.rb:2:in `' from script/rails:9:in `require' from script/rails:9:in ` 

所以,我试图重新安装Bundler,安装“pre”-version(但实际上它的版本号低于我安装的gem install bundler

现在系统中有下一个gem:

 abstract (1.0.0) actionmailer (3.0.0.beta, 2.3.5, 2.3.4) actionpack (3.0.0.beta, 2.3.5, 2.3.4) activemodel (3.0.0.beta) activerecord (3.0.0.beta, 2.3.5, 2.3.4) activeresource (3.0.0.beta, 2.3.5, 2.3.4) activesupport (3.0.0.beta, 2.3.5, 2.3.4) arel (0.2.1, 0.2.pre) builder (2.1.2) bundler (0.9.5) erubis (2.6.5) fxri (0.3.7) fxruby (1.6.20) i18n (0.3.3) jemini (2010.1.24, 2010.1.5) mail (2.1.2) memcache-client (1.7.8) mime-types (1.16) mysql (2.8.1) nifty-generators (0.3.2, 0.3.0) rack (1.1.0, 1.0.1, 1.0.0) rack-mount (0.5.1, 0.4.0) rack-openid (0.2.3, 0.2.2) rack-test (0.5.3) rails (3.0.0.beta, 2.3.5, 2.3.4) railties (3.0.0.beta) rake (0.8.7) rawr (1.3.8) RedCloth (4.2.2) ruby-mysql (3.0.2) ruby-openid (2.1.7) rubygems-update (1.3.5) rubyzip (0.9.4, 0.9.1) rubyzip2 (2.0.1) sqlite3-ruby (1.2.5) text-format (1.0.0) text-hyphen (1.0.0) thor (0.13.2, 0.13.1) tzinfo (0.3.16) 

此外, rails console也存在相同的错误,与bundle check类似:

 [rap-kasta@acerAspire testR3]$ bundle check /usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.5/bin/bundle:12:in `rescue in ': uninitialized constant Bundler::BundlerError (NameError) from /usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.5/bin/bundle:10:in `' from /usr/bin/bundle:19:in `load' from /usr/bin/bundle:19:in `' 

它添加后有效:

 gem install bundler 

并在添加之后:

 gem 'bundler' 

在config / boot.rb的第2行(在’rubygems’之后)

请确认ruby和rake命令的路径。

 $ which ruby /usr/bin/ruby $ which rake /usr/local/bin/rake 

我得到了同样的错误。 在我的例子中,我用/ usr / bin / ruby​​安装了Rails,但是rake使用了/ usr / local / bin / ruby​​。 这就是我收到与Bundler相关的错误的原因。

它不是Bundler(或Rails)中的错误,它是gem系统中的一个错误(?!),我认为……所以..我也有gem’rawr’,它有’bundler.rb’文件和gem系统加载它而不是’bundler /../ bundler.rb’。

我删除了rawr,但现在我不能使用jemini ……但我的问题现在关闭了。

我已将我的rubygems升级到1.5.0但我还需要将ruby-1.9.2-p180作为我在RVM中的默认ruby版本。 这对我有用。

我在Mac上遇到了问题,因为在“/opt/local/lib/ruby/gems/1.8”中安装了几个gem(包括bundler),默认情况下由RubyGems在irb中加载,但不在rake中加载。

这是我如何修复它,它可能不完美,但至少它的工作原理:

  1. 通过进入irb并进行操作,找到您需要的路径

     require 'rubygems' Gem.path => ["/Users/joel/.gem/ruby/1.8", "/opt/local/lib/ruby/gems/1.8"] 

    这些是默认路径,所以如果一切都适合你,他们就是好的。

  2. 现在,在boot.rb中 ,添加(如果它们当然不同,请使用您的路径)

     Gem.path.push "/opt/local/lib/ruby/gems/1.8" Gem::Specification.find_by_name('bundler').activate 

    之后

     require 'rubygems' 

希望这能为你解决,至少我很高兴我为我修好了所以我终于可以使用Rails 3了!