Rails3服务器和打包程序错误:未初始化的常量Bundler(NameError)

问题描述:

我只是安装rails 3和它需要的所有gem,但是当我尝试启动服务器时,它会提到启动脚本中的问题。Rails3服务器和打包程序错误:未初始化的常量Bundler(NameError)

[[email protected] 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> 

所以,我试图重新安装捆扎机,安装“预” - 版本(但实际上它具有较低的版本号码,然后由我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

[[email protected] 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>' 
+0

脚本/控制台是否工作或出现相同的错误? Rails 3测试版遇到了很多麻烦,没有找到应该在那里的东西。另外尝试在主应用程序目录中运行“软件包检查”。 – tadman 2010-02-17 18:05:36

+0

不,它并没有和“捆绑检查”也出现类似的错误 – 2010-02-17 18:32:41

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

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

它加入后的工作:

gem install bundler 

,加入后:

gem 'bundler' 

在配置/的boot.rb线2(刚过需要 'RubyGems的')

请确认红宝石和耙子命令的路径。

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

我得到了同样的错误。在我的情况下,我使用/ usr/bin/ruby​​安装了Rails,但rake使用/ usr/local/bin/ruby​​。这就是为什么我得到与Bundler相关的错误。

+2

这很好,我也是,现在你如何解决它? – nus 2014-04-23 22:47:30

我已经将我的rubygems升级到1.5.0,但我还需要将ruby-1.9.2-p180作为默认的ruby版本在RVM中。这为我做了诡计。

我在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"] 
    
    路径(S)

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

  2. 现在,在开机。RB,添加(使用你的路,如果他们有所不同,当然)

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

    右后

    require 'rubygems' 
    

希望这会解决它给你,至少我很高兴我固定它我终于可以使用Rails 3了!