2

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

[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>'
4

5 回答 5

12

添加后它可以工作:

gem install bundler

并添加后:

gem 'bundler'

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

于 2010-06-28T08:59:11.420 回答
2

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

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

我得到了同样的错误。就我而言,我使用 /usr/bin/ruby 安装 Rails,但 rake 使用 /usr/local/bin/ruby。这就是为什么我得到与 Bundler 相关的错误的原因。

于 2010-10-30T00:06:54.257 回答
1

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

我删除了 rawr,但现在我不能使用 jemini ......但我的问题现在解决了。

于 2010-02-21T08:18:42.700 回答
0

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

于 2011-02-24T08:29:47.443 回答
0

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

这是我修复它的方法,它可能并不完美,但至少它有效:

  1. 通过进入irb并做找到你需要的路径

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

    这些是默认路径,所以如果在 irb 中一切正常,它们就很好。

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

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

    紧接着

    require 'rubygems'
    

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

于 2011-07-09T18:57:56.203 回答