2013-06-26 18 views
33

Tôi đang cố nâng cấp lên Rails 4.0.0 và tôi đã thay đổi phiên bản đá quý là sass-railscoffee-rails. Tôi cần phải giải quyết xung đột đá quý này giữa railscoffee-rails trước khi tôi có thể nâng cấp lên Rails 4.Bundler không thể tìm thấy các phiên bản tương thích cho gem “railties” cho Rails 4.0.0

Khi tôi chạy bundle update này là kết quả tôi nhận:

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

Trả lời

7

Chạy trước gem update rails trước, sau đó bundle update

+0

Gói cập nhật có tự động cập nhật đá quý ray được tìm thấy trong Gemfile không? Có cần phải chạy đường ray cập nhật đá quý bằng tay không? –

4

Bạn có g ems mà không được hỗ trợ bởi Rails 4. Bình luận ra tất cả các đá quý ngoại trừ Rails 4 và bỏ ghi chú chúng một lần sau khi chạy bó cài đặt để tìm ra thủ phạm. Bạn có thể cần phải hoàn tác một số khóa phiên bản của mình.

8

Bạn có một phiên bản lỗi thời của lập mưu, sử dụng Rails 4 tương thích

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

Cũng thay đổi coffee-rails để

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

và cố gắng làm

bundle update coffee-rails 
62

Cũng bundle update chỉ cho phép bạn cập nhật một viên ngọc tại một thời điểm, đó là khó khăn nếu bạn đang cập nhật đến Rails 4 và toàn bộ rất nhiều đá quý phải được cập nhật cùng một lúc.

Tôi đã giải quyết vấn đề này bằng cách xóa Gemfile.lock và thực hiện bundle install.

Đây là khóa học giả sử bạn không có phiên bản đá quý rõ ràng xung đột trong số Gemfile của bạn để bắt đầu. Vì vậy, nếu điều này không thành công, loại bỏ các số phiên bản từ Gemfile.

+1

Điều này phù hợp với tôi. Xóa 'Gemfile.lock' và mọi thứ trơn tru như địa ngục: D. –

+4

Điều này làm việc cho tôi: Tôi phải thêm, cũng có thể, nếu một viên ngọc cụ thể gây ra vấn đề, hãy thay đổi ~> for> = (ex. Gem 'coffee-rails', '~> 4.0.0' cho gem 'coffee -rails ','> = 4.0.0 ') và làm theo các bước nathanvda –

+5

'~>' sẽ cập nhật, nhưng chỉ patchlevel (do đó theo semver: chỉ những thay đổi không phá vỡ). Thay đổi thành '> =' sẽ cập nhật lên phiên bản mới nhất (lấy tất cả các phụ thuộc/ràng buộc khác vào tài khoản), và thực sự chỉ nói một phiên bản tối thiểu cần thiết (từ đầu của bạn).Vì vậy, có: đó có lẽ là chắc chắn nhất cần thiết. – nathanvda

20

Chỉ cần loại bỏ các phiên bản đá quý (cà phê-ray và sass-ray) từ Gemfile và chạy bó cập nhật

1
  1. Xóa file Gemfile.lock
  2. tham khảo here cho gemfile cơ bản thay đổi
  3. chạy bundle install

Mọi thứ sẽ hoạt động tốt. :)