Bundler не смог найти совместимые версии гема "railties" для Rails 4.0.0.

Я пытаюсь перейти на Rails 4.0.0 и изменил версии гемов sass-rails и coffee-rails. Мне нужно разрешить этот конфликт гемов между rails и coffee-rails, прежде чем я смогу перейти на Rails 4.

Когда я запустил 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)

My 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'

person Brian Petersen    schedule 26.06.2013    source источник


Ответы (6)


Кроме того, bundle update позволяет обновлять только один драгоценный камень за раз, что сложно, если вы обновляетесь до Rails 4 и одновременно нужно обновлять множество драгоценных камней.

Я решил это, удалив Gemfile.lock и выполнив bundle install.

Это, конечно, при условии, что в вашем Gemfile нет явно конфликтующей версии гема. Поэтому, если это не удается, удалите номера версий из Gemfile.

person nathanvda    schedule 21.07.2013
comment
У меня это работает. Удалите Gemfile.lock и все будет чертовски гладко: D. - person Tu H.; 22.08.2013
comment
Это сработало для меня: я должен добавить, что также, если один конкретный драгоценный камень вызывает проблемы, измените ~ ›на› = (например, gem 'coffee-rails', '~ ›4.0.0' на gem 'coffee- rails ',' ›= 4.0.0 ') и следуйте инструкциям nathanvda - person Jorge Sampayo; 07.09.2013
comment
~> будет обновляться, но только на уровне исправлений (так, согласно semver: только неразрывные изменения). Переход на >= приведет к обновлению до последней версии (с учетом всех других зависимостей / ограничений) и фактически просто укажет минимальную версию, которая необходима (с вашей стороны). Так что да: это, вероятно, определенно необходимо. - person nathanvda; 07.09.2013
comment
Замечательно, у меня это тоже сработало. Спасибо за совет! - person Keenan Payne; 13.12.2013
comment
Не работал у меня, я обнаружил, что ответ ExReanimator работал у меня - person Michael Durrant; 17.08.2014
comment
Что ж, этот ответ не экстрасенс, у меня есть явные версии в вашем Gemfile, и они конфликтуют, вам придется удалить явную версию драгоценного камня. Соответственно, я расширю свой ответ. Для меня главным было удалить Gemfile.lock, иначе я не смог бы обновить. Итак, если вы начали с ответа ExReanimators, это не сработало бы, если бы вы не удалили Gemfile.lock. Но счастлив, что у вас все получилось. - person nathanvda; 18.08.2014

Просто удалите версии гемов (coffee-rails и sass-rails) из Gemfile и запустите обновление пакета.

person Ivan Schneider    schedule 29.08.2013

Сначала запустите gem update rails, затем bundle update

person andreofthecape    schedule 26.06.2013
comment
Должно ли обновление пакета автоматически обновлять гем rails, который находится в Gemfile? Есть ли необходимость запускать рельсы обновления гемов вручную? - person Nathan B; 09.03.2018
comment
рельсы обновления gem работали у меня при обновлении до Rails 6 - person Curtis M; 07.02.2020

У вас устаревшая версия Devise, используйте совместимую с Rails 4

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

Также измените coffee-rails на

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

и попробуй сделать

bundle update coffee-rails
person Mike Szyndel    schedule 21.07.2013

У вас есть драгоценные камни, которые не поддерживаются Rails 4. Закомментируйте все драгоценные камни, кроме Rails 4, и раскомментируйте их по одному после выполнения установки пакета, чтобы найти виновных. Возможно, вам потребуется отменить некоторые блокировки версий.

person penner    schedule 20.07.2013

  1. Удалите файл Gemfile.lock
  2. см. здесь для основных изменений гем-файлов
  3. запустить bundle install

Все будет нормально работать. :)

person Rajesh Omanakuttan    schedule 28.02.2014