【问题标题】:updating mongoid gem to verison 5.0.0 and rails to 4.0.0, it is giving issue "Bundler could not find compatible versions for gem "railties"将 mongoid gem 更新到 5.0.0 版和将 rails 更新到 4.0.0,它给出了问题“Bundler 找不到 gem “railties”的兼容版本
【发布时间】:2016-04-19 14:50:58
【问题描述】:

在运行 Bundle install 时出现以下错误

Bundler could not find compatible versions for gem "railties":

在 Gemfile 中: devise (~> 3.2.4) 被解析为 3.2.4,这取决于 railties (= 3.2.6)

factory_girl_rails (~> 4.4.0) was resolved to 4.4.1, which depends on
  railties (>= 3.0.0)

jquery-payment-rails was resolved to 0.0.1, which depends on
  railties (~> 4.0.0)

jquery-rails (~> 3.0.0) was resolved to 3.0.4, which depends on
  railties (< 5.0, >= 3.0)

rails (~> 4.0.0) was resolved to 4.0.0, which depends on
  railties (= 4.0.0)

rspec-rails (~> 3.4.0) was resolved to 3.4.2, which depends on
  railties (< 4.3, >= 3.0)

sass-rails (~> 3.2.3) was resolved to 3.2.3, which depends on
  railties (~> 3.2.0.beta)

宝石文件:

ruby '2.2.2'
## Sinatra App Gems
gem 'sinatra',      '~> 1.4.4'
gem 'sass',         '~> 3.4.13'
gem 'sinatra-assetpack', '~> 0.3.1', :require => 'sinatra/assetpack'
gem 'sinatra-env',  '~> 0.0.2'

## Rails App Gems
gem 'rails',        '~> 4.0.0'
gem 'foreman',      '~> 0.78.0'
gem 'puma',         '~> 2.14.0'
gem 'simple_form',  '~> 2.1.3'
gem 'simple_enum',  '~> 1.6.0', :require => 'simple_enum/mongoid'
gem 'mongoid',      '~> 5.0.0'
gem 'devise',       '~> 3.4.1'
gem 'possessive',   '~> 1.0.1'
gem 'american_date', '~> 1.1.0'
gem 'sht_rails',    '~> 0.2.2'
gem 'version',      '~> 1.0.0'
gem 'rdiscount',    '~> 2.1.7'
gem 'ssl_enforcer', '~> 0.2.3'
#

gem 'sidekiq',        '~> 3.5.0'
gem 'slim',           '~> 3.0.2'


group :development do
  gem 'capistrano',             '~> 3.4.0'
  gem 'capistrano-rvm',         '~> 0.1.2'
  gem 'capistrano-rails',       '~> 1.1.3'
  gem 'capistrano-bundler',     '~> 1.1.4'
  gem 'capistrano-foreman',     github: 'koenpunt/capistrano-foreman'
  gem 'spring'
  gem 'spring-commands-rspec',  '~> 1.0.4'
end

group :assets do
  gem 'pusher_rails',             '~> 1.0.1'
  gem 'sass-rails',               '~> 3.2.3'
  gem 'coffee-rails',             '~> 3.2.1'
  gem 'jquery-rails',             '~> 3.0.0'
  gem 'bootstrap-sass',           '~> 2.3.0.0'
  gem 'font-awesome-sass-rails',  '~> 3.0.2.2'
  gem 'uglifier',                 '>= 1.0.3'
  gem 'modernizr-rails',          '~> 2.7.1'
  gem 'jquery-payment-rails',     '~> 0.0.1'
  gem 'jquery-validation-rails',  '~> 1.13.1'
end

group :development, :test do
  gem 'test-unit',            '~> 3.0'
  gem 'rspec-rails',          '~> 3.3.3'
  gem 'factory_girl_rails',   '~> 4.5.0'
  gem 'mongoid-rspec',        '~> 1.13.0'
  gem 'guard-rspec',          '~> 4.6.4'
  gem 'simplecov',            '~> 0.10.0', require: false
end

group :test do
  gem 'database_cleaner',     '~> 1.5.1'
  gem 'faker',                '~> 1.5.0'
end

我也删除了 gemfile.lock 文件,但仍然存在问题

【问题讨论】:

    标签: ruby-on-rails ruby rubygems


    【解决方案1】:

    好了,下面给大家分析一下railties版本要求的情况给你的错误:

    1) railties (>= 3.0.0)
    2) railties (~> 4.0.0) => (< 4.1, >= 4.0.0)
    3) railties (< 5.0, >= 3.0)
    4) railties (= 4.0.0)
    5) railties (< 4.3, >= 3.0)
    6) railties (~> 3.2.0.beta) => (< 3.2.1, >= 3.2.0.beta)
    

    这里的所有版本依赖都可以共存,除了来自sass-rails gem 的6)。尝试更新到最新版本sass-rails,你会没事的(5.0.4 是最新版本),因为它使用railties (&gt;= 4.0.0, &lt; 5.0)。此外,4.0.0 之后的所有 sass-rails 版本也可以工作,因为那时 railties 依赖项发生了变化 - see this

    更新

    我已经检查了您的 Gemfile,为了获得所需的 mongo 版本,您可以做的最小更改如下(更改已注释):

    ruby '2.2.2'
    ## Sinatra App Gems
    gem 'sinatra',      '~> 1.4.4'
    gem 'sass',         '~> 3.4.13'
    gem 'sinatra-assetpack', '~> 0.3.1', :require => 'sinatra/assetpack'
    gem 'sinatra-env',  '~> 0.0.2'
    
    ## Rails App Gems
    gem 'rails',        '~> 4.0.0'
    gem 'foreman',      '~> 0.78.0'
    gem 'puma',         '~> 2.14.0'
    gem 'simple_form',  '~> 3.0.0' # CHANGED
    gem 'simple_enum',  '~> 1.6.0', :require => 'simple_enum/mongoid'
    gem 'mongoid',      '~> 5.0.0'
    gem 'devise',       '~> 3.4.1'
    gem 'possessive',   '~> 1.0.1'
    gem 'american_date', '~> 1.1.0'
    gem 'sht_rails',    '~> 0.2.2'
    gem 'version',      '~> 1.0.0'
    gem 'rdiscount',    '~> 2.1.7'
    gem 'ssl_enforcer', '~> 0.2.3'
    
    gem 'sidekiq',        '~> 3.5.0'
    gem 'slim',           '~> 3.0.2'
    
    group :development do
      gem 'capistrano',             '~> 3.4.0'
      gem 'capistrano-rvm',         '~> 0.1.2'
      gem 'capistrano-rails',       '~> 1.1.3'
      gem 'capistrano-bundler',     '~> 1.1.4'
      gem 'capistrano-foreman',     github: 'koenpunt/capistrano-foreman'
      gem 'spring'
      gem 'spring-commands-rspec',  '~> 1.0.4'
    end
    
    group :assets do
      gem 'pusher_rails',             '~> 1.0.1'
      gem 'sass-rails',               '~> 4.0.1' # CHANGED
      gem 'coffee-rails',             '~> 4.0.0' # CHANGED
      gem 'jquery-rails',             '~> 3.0.0'
      gem 'bootstrap-sass',           '~> 2.3.0.0'
      gem 'font-awesome-sass-rails',  '~> 3.0.2.2'
      gem 'uglifier',                 '>= 1.0.3'
      gem 'modernizr-rails',          '~> 2.7.1'
      gem 'jquery-payment-rails',     :git =>  'https://github.com/thoughtbot/jquery-payment-rails.git', :ref => 'd401bf9' # CHANGED
      gem 'jquery-validation-rails',  '~> 1.13.1'
    end
    
    group :development, :test do
      gem 'test-unit',            '~> 3.0'
      gem 'rspec-rails',          '~> 3.4.0' # CHANGED
      gem 'factory_girl_rails',   '~> 4.5.0'
      gem 'mongoid-rspec',        '~> 3.0.0' # CHANGED
      gem 'guard-rspec',          '~> 4.6.4'
      gem 'simplecov',            '~> 0.10.0', require: false
    end
    
    group :test do
      gem 'database_cleaner',     '~> 1.5.1'
      gem 'faker',                '~> 1.5.0'
    end
    

    您可能应该在此更改后运行bundle update,但要小心,因为这会根据您的 Gemfile 更新所有 gem。

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多