【问题标题】:You have already activated builder您已经激活了构建器
【发布时间】:2012-10-22 14:09:18
【问题描述】:

加载我的 Rails 应用程序时收到以下错误消息:

You have already activated builder 3.0.4, but your Gemfile requires builder 3.0.3. Consider using bundle exec.

堆栈跟踪:

0   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb    31  in `block in setup'
1   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/spec_set.rb   12  in `block in each'
2   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/spec_set.rb   12  in `each'
3   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/spec_set.rb   12  in `each'
4   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/runtime.rb    17  in `setup'
5   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler.rb    107 in `setup'
6   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/passenger-3.0.17/lib/phusion_passenger/utils.rb  326 in `prepare_app_process'
7   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/passenger-3.0.17/lib/phusion_passenger/classic_rails/application_spawner.rb  176 in `block in initialize_server'
8   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/passenger-3.0.17/lib/phusion_passenger/utils.rb  563 in `report_app_init_status'
9   /usr/local/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/passenger-3.0.17/lib/phusion_passenger/classic_rails/application_spawner.rb  174 in `initialize_server'

似乎passenger 激活了3.0.4,但我的应用程序Gemfile 仍然有3.0.3。我可以在我的 Gemfile 中添加gem 'builder', '3.0.4',但是当新版本出来时它会再次发生。我怎样才能防止这种情况发生?

【问题讨论】:

  • “我收到以下错误信息” ... 当做 what?
  • “应用程序无法启动”来自乘客的消息。当应用程序启动失败时会显示此消息。
  • 如果你不更新乘客,也不改变你的 gemfile,你不应该有冲突。指定 gem 的确切补丁值将始终强制它使用该版本。
  • @agmcleod 这是个好习惯吗?
  • 好吧,您不想随意更改生产软件。如果有重要的修复,您需要首先在临时服务器中进行设置,确保它正常工作并在生产服务器上手动更新内容。我的意思是在你告诉它之前它不会更新。

标签: ruby-on-rails passenger gemfile


【解决方案1】:

这通常发生在使用 RVM 时,或者只是相对于系统默认的单独版本的 ruby​​。

配置 RVM 以向乘客提供您用于开发的相同 ruby​​(以及 bundler 安装您的 gems 的位置)。

https://rvm.io/integration/passenger/

【讨论】:

  • First of all there's passenger-install-apache2-module and passenger-install-nginx-module. At the end of the installation it outputs a PassengerRuby configuration snippet for the web server. Its value is set to the RVM Ruby wrapper script that corresponds with the RVM Ruby and RVM gemset that was used to run the installer. This should be all you need for configuration of Passenger 3!我有乘客3,还需要配置什么吗?我相信它使用的是相同的 Ruby 版本。
【解决方案2】:

我不确定我是否使用这种优雅的方式。
运行:

bundle install --binstubs
export PATH=./bin:$PATH

您可以在http://blog.davidchelimsky.net/2011/07/18/stop-typing-bundle-exec/阅读更多内容

【讨论】:

    猜你喜欢
    • 2011-08-30
    • 1970-01-01
    • 2017-08-29
    • 2011-09-07
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多