Gemfile.lock中的两个版本的机架导致错误

时间:2013-01-16 23:11:42

标签: ruby-on-rails bundler passenger rack

Rails应用程序在本地运行正常,但在远程服务器上我收到此错误:

  

您已经激活了机架1.4.1,但您的Gemfile需要机架1.4.4。使用bundle exec可以解决这个问题。

我已经多次bundle update了。

我的Gemfile.lock有这些行(...表示为清晰起见删除了行):

...
actionpack (3.2.11)
  ...
  rack (~> 1.4.0)
...
rack (1.4.4)
...

的Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.2.11'
gem "haml"
gem 'execjs'
gem "rest-client"
gem "stripe"

group :assets do
  gem 'sass-rails', "~> 3.2.4"
  gem 'coffee-rails'
  gem 'uglifier'
  gem 'compass-rails'
  # Deploy with Capistrano
  gem 'capistrano'
  gem 'rvm-capistrano'
end

gem 'jquery-rails'
gem 'jquery-ui-rails'

group :production do
  gem 'libv8'
  gem 'therubyracer', "~> 0.10.2"
  gem "newrelic_rpm"
  gem 'exception_notification', git: 'git://github.com/alanjds/exception_notification.git', :require => 'exception_notifier'
end

gem 'sqlite3' # This has to be active in both modes

group :development do
  gem "thin"
end

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

1 个答案:

答案 0 :(得分:4)

搞定了,所以我会在这里发布。这就是我必须要做的事情:

  1. 在本地运行gem uninstall rack并删除所有机架实例
  2. gem "rack", "1.4.1"添加到我的Gemfile中(注意这是它已经加载的那个)
  3. 在本地运行bundle update
  4. 部署
  5. 现在有效!