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

时间:2010-02-17 17:34:23

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

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

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

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

现在系统中有下一个宝石:

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 <top (required)>': uninitialized constant Bundler::BundlerError (NameError)
        from /usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.5/bin/bundle:10:in `<top (required)>'
        from /usr/bin/bundle:19:in `load'
        from /usr/bin/bundle:19:in `<main>'

5 个答案:

答案 0 :(得分:12)

添加后可以使用:

gem install bundler

并在添加:

之后
gem 'bundler'

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

这不是Bundler(或Rails)中的错误,这是宝石系统中的一个错误(?!),我认为...... 那么..我也有宝石'rawr',它有'bundler.rb'文件,而宝石系统加载它而不是'bundler /../ bundler.rb'。

我删除了rawr,但现在我不能使用jemini ... 但我的问题现在已经结束了。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我在Mac上遇到了问题,因为在“/opt/local/lib/ruby/gems/1.8”中安装了几个宝石(包括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'
    
  3. 希望这能为你解决,至少我很高兴我为我修好了所以我终于可以使用Rails 3了!