【问题标题】:Rails 3: Bundle ExecRails 3:捆绑执行
【发布时间】:2011-07-19 13:42:13
【问题描述】:

尝试从 Mongrel 开始时,我得到以下信息:

您已经激活了守护进程 1.1.0,但您的 Gemfile 需要 守护进程 1.0.10。考虑使用 bundle exec。 (Gem::LoadError)

谢谢!

编辑:

我的宝石文件:

source 'http://rubygems.org'

gem 'rake', '0.8.7'
gem 'rails', '3.0.0'
gem 'mysql2', '0.2.7'
gem 'tabs_on_rails'
gem 'tabulous'
gem 'devise'
gem 'cancan'
gem 'kaminari'
gem 'formtastic', '~> 1.2.0'
gem 'jquery-rails'
gem 'client_side_validations'
gem 'paperclip'
gem 'paper_trail'
gem 'acts-as-taggable-on'
gem 'acts_as_tree'
gem 'acts_as_list'
gem 'hpricot'
gem 'rails3-jquery-autocomplete'
gem 'meta_where'
gem 'meta_search'
gem 'aws-s3'
gem 'flash_cookie_session'
gem 'mime-types', :require => 'mime/types'
gem 'vanities'
gem 'geokit'
gem 'geokit-rails'
gem 'tiny_mce'
gem 'RedCloth'
gem 'omniauth'
gem 'twitter'
gem 'fb_graph'
gem 'linkedin'
gem 'whenever'
gem 'resque'

group :development, :test do
  gem 'faker'
  gem 'mocha'
  gem 'rails-erd'
  gem 'rspec'
  gem 'rspec-rails'
  gem 'webrat'
  gem 'pickle'
end

【问题讨论】:

  • 在这种情况下,我通常只是卸载有问题的 gem(在你的情况下是 daemons 1.1.0
  • 将我的 gemfile 添加到我上面的原始问题中。问题是,我没有明确请求守护进程 1.1.0——它必须是我的一个 gem 的依赖项。
  • 你在本地机器上运行bundle exec并推送了吗?

标签: ruby-on-rails heroku bundler


【解决方案1】:

bundle exec 是用于允许 Bundler 完成工作并管理不同应用程序的 gem(可以运行相同 gem 的不同版本)的命令。如果您运行 bundle,然后您尝试在 shell 中运行 ruby foo.rb,您的 Gemfile 将被忽略,并且将使用每个 gem required 的最新版本。

Heroku 在启动您的应用程序时已经使用了bundle exec。这是内置在平台中的,这是使他们能够像他们一样真正处理蛞蝓的唯一方法。

我认为您的问题源于您运行的两个不同 gem 之间的不兼容。如果一个 gem 依赖于 foo ~> 0.2.3 而另一个 gem 依赖于 foo >= 0.3,你将无法同时运行它们——你不能在同一个进程中拥有相同 gem 的两个版本.您可以通过在开发中运行bundle 并仔细检查您的Gemfile.lock 来验证这一点。另外,请确保您的 Gemfile.lock 正在签入您的存储库;如果您只是将在您的机器上运行的 Gemfile 推送到 Heroku 并基于它进行安装,他们可能会使用具有不同依赖项的较新版本的库(我不确定如果您不这样做,Heroku 是否会抱怨)没有Gemfile.lock)。

【讨论】:

    【解决方案2】:

    您在开发中用于不同服务器的任何 gem,您需要将它们放在开发名称空间下或将它们取出。

    例如。我只想要这个宝石用于开发。为这些宝石执行此操作:

    group :development do
        gem 'capistrano', '2.6.0', :require => nil
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多