Сервер Rails3 и ошибка компоновщика: неинициализированная константа Bundler (NameError) - PullRequest
2 голосов
/ 17 февраля 2010

Я просто устанавливаю 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 ]

12 голосов
/ 28 июня 2010

работает после добавления:

gem install bundler

и после добавления:

gem 'bundler'

в строке 2 в config / boot.rb (сразу после 'rubygems')

2 голосов
/ 30 октября 2010

Пожалуйста, подтвердите пути команды ruby ​​и rake.

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

Я получил ту же ошибку. В моем случае я установил Rails с / usr / bin / ruby, но rake использует / usr / local / bin / ruby. Вот почему я получил ошибку, связанную с Bundler.

1 голос
/ 21 февраля 2010

Это не ошибка в Bundler (или Rails), это ошибка (?!) В системе драгоценных камней, я думаю ... Итак, у меня также есть gem 'rawr', в котором есть файл 'bundler.rb' и система gems загружает его вместо 'bundler /../ bundler.rb'.

Я удалил rawr, но теперь я не могу использовать Джемини ... Но моя проблема сейчас закрыта.

0 голосов
/ 09 июля 2011

У меня была проблема на Mac, потому что несколько гемов (включая bundler) были установлены в "/opt/local/lib/ruby/gems/1.8", который по умолчанию загружается RubyGems в irb, но не в 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!

0 голосов
/ 24 февраля 2011

Я обновил свои rubygems до 1.5.0, но мне нужно было также добавить ruby-1.9.2-p180 в качестве моей версии ruby ​​по умолчанию в RVM. Это помогло мне.

...