【问题标题】:Bundler could not find compatible versions for gem “railties” for Rails 4.0.0Bundler 找不到适用于 Rails 4.0.0 的 gem “railties”的兼容版本
【发布时间】:2013-06-26 18:39:47
【问题描述】:

我正在尝试升级到 Rails 4.0.0,并更改了 sass-railscoffee-rails 的 gem 版本。在升级到 Rails 4 之前,我需要解决 railscoffee-rails 之间的 gem 冲突。

当我运行 bundle update 时,这是我得到的输出:

$ bundle update
Updating git://github.com/pilu/web-app-theme.git
Fetching source index from https://rubygems.org/
Resolving dependencies..............
Bundler could not find compatible versions for gem "railties":
  In Gemfile:
    rails (= 4.0.0) ruby depends on
      railties (= 4.0.0) ruby

    coffee-rails (= 4.0.0) ruby depends on
      railties (4.0.0.rc2)

我的Gemfile

source 'https://rubygems.org'

gem 'rails', '4.0.0'

gem 'cancan'
gem 'client_side_validations'
gem 'devise', '~> 1.5.3'
gem 'dynamic_form'
gem 'execjs'
gem 'haml'
gem 'httparty'
gem 'jquery-rails'
gem 'mysql2'
gem 'paperclip', '~> 2.4'
gem 'prawn'
gem 'rails3-jquery-autocomplete'
gem 'rake', '0.9.2'
gem 'remotipart', '~> 1.0'
gem 'simple_datatables'
gem 'therubyracer'
gem 'validates_timeliness', '~> 3.0.2'
gem 'will_paginate', '~> 3.0'

gem 'turbolinks'
gem 'jquery-turbolinks'

gem 'noty-rails'

gem 'font-awesome-rails'

gem 'socket.io-rails'

gem 'attr_encrypted'

gem 'bullet', :group => 'development'

#temp for demo.managetherapy.com
#gem 'faker'

group :test do
  gem 'capybara'
  gem 'cucumber-rails', :require => false
  gem 'database_cleaner'
  gem 'factory_girl_rails'
#  gem 'faker'
  gem 'guard-rspec'
  gem 'selenium-webdriver', '2.7.0'
  gem 'webrat'
end

group :development, :test do
  gem 'faker'
  gem 'haml-rails'
  gem 'hpricot'
  gem 'rspec-rails'
  gem 'ruby_parser'
  #gem 'web-app-theme', '~> 0.8.0'
  gem 'web-app-theme', :git =>'git://github.com/pilu/web-app-theme.git'
end

gem 'sass-rails', '4.0.0'
gem 'compass-rails', '1.0.3'
gem 'coffee-rails', '4.0.0'
gem 'uglifier', '>= 2.1.1'
gem 'bootstrap-sass-rails'

# Use unicorn as the web server
#gem 'unicorn'

# Deploy with Capistrano
gem 'capistrano'
gem 'rvm-capistrano'

gem 'passenger'

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 gem railtie


    【解决方案1】:

    另外,bundle update 一次只允许您更新一个 gem,如果您要更新到 Rails 4 并且必须同时更新大量 gem,这会很困难。

    我通过删除Gemfile.lock 并执行bundle install 解决了这个问题。

    这当然是假设您的 Gemfile 中没有明确的 gem 版本冲突。因此,如果失败,请从 Gemfile 中删除版本号。

    【讨论】:

    • 这对我有用。删除Gemfile.lock,一切都会顺利:D.
    • 这对我有用:我必须补充一点,如果一个特定的 gem 导致问题,请将 ~> 更改为 >= (ex. gem 'coffee-rails', '~> 4.0 .0' for gem 'coffee-rails', '>= 4.0.0') 并遵循 nathanvda 步骤
    • ~> 会更新,但只会更新补丁级别(因此根据 semver:只有非破坏性更改)。更改为 >= 将更新到最新版本(考虑到所有其他依赖项/约束),实际上只是说明了所需的最小版本(从您的角度来看)。所以是的:这可能是最需要的。
    • 太棒了,这对我也有用。感谢您的提示!
    • 对我不起作用,我发现 ExReanimator 的答案对我有用
    【解决方案2】:

    只需从 Gemfile 中删除 gem 版本(coffee-rails 和 sass-rails)并运行 bundle update

    【讨论】:

      【解决方案3】:

      先运行gem update rails,然后运行bundle update

      【讨论】:

      • 捆绑更新是否应该自动更新在 Gemfile 中找到的 rails gem?是否需要手动运行 gem update rails?
      • gem update rails 在更新到 Rails 6 时为我工作
      【解决方案4】:

      您的 Devise 版本过时,请使用兼容 Rails 4 的版本

      gem 'devise', '~> 3.0.0.rc'
      

      还将coffee-rails 更改为

      gem 'coffee-rails', '~> 4.0.0'
      

      然后尝试做

      bundle update coffee-rails
      

      【讨论】:

        【解决方案5】:

        您有 Rails 4 不支持的 gem。注释掉除 Rails 4 之外的所有 gem,并在运行 bundle install 以查找罪魁祸首后一次取消注释。您可能需要撤消某些版本锁定。

        【讨论】:

          【解决方案6】:
          1. 删除Gemfile.lock文件
          2. 请参阅here 了解基本的 gemfile 更改
          3. 运行bundle install

          一切都会好起来的。 :)

          【讨论】:

            猜你喜欢
            • 2013-06-30
            • 1970-01-01
            • 1970-01-01
            • 2014-07-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-08-14
            • 1970-01-01
            相关资源
            最近更新 更多