2012-10-31 46 views
0

我通过gem install redis和gem install resque在Rails 2.3.8中安装了redis和resque。 resque和redis的版本分别为1.18.0和2.2.2。gem版本冲突在Rails中安装resque 1.18 2.3.8

defaults: &defaults 
    host: localhost 
    port: 6379 
    ... 

config/initializers/resque.rb为:

config = YAML::load(File.open("#{Rails.root}/config/redis.yml"))[Rails.env] 
Resque.redis = Redis.new(:host => config['host'], :port => config['port']) 

但是,当我想我通过

RAILS_ENV=development resque-web config/initializers/resque.rb 

我也没有在config/redis.yml文件配置为启动工人通过

RAILS_ENV=development resque-web config/initializers/resque.rb 
启动resque-web

我得到这个错误

./config/initializers/../../vendors/rails/railties/lib/initializer.rb:27:in 'require_frameworks':不能启动架( 〜> 1.1.0,运行时)对[], 已经激活机架1.4.1 [ “拉斯维加斯0.1.11”, “resque-1.18.0”]

我发现需要resque 1.18.0sinatra 1.3.3作为它的依赖关系,它又需要rack >= 1.3.0作为它的依赖关系。但是,对于actionpack对于rails 2.3.8,要求的rack的版本是1.1.0。任何人都可以请建议我如何解决这个问题?

回答

0

您将不得不使用resque版本,该版本需要较低版本的sinatra,然后需要与rails 2.3.8兼容的版本rack

您可以手动想出解决办法,或尝试下列选项之一:

  1. 使用RubyGems的依赖API(http://guides.rubygems.org/rubygems-org-api/)
  2. 在您的Rails 2.3.8应用程序中改装bundler