2013-06-26 98 views
33

我想升級到Rails 4.0.0,並且我更改了sass-railscoffee-rails的gem版本。我需要解決railscoffee-rails之間的衝突寶石之前,我可以升級到Rails 4Bundler無法找到適用於Rails 4.0.0的gem「railties」的兼容版本

當我跑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' 

回答

7

先運行gem update rails然後bundle update

+0

軟件包更新是否應該自動更新Gemfile中找到的rails gem?是否需要手動運行gem更新導軌? –

4

你有g ems,不支持Rails 4.註釋掉除Rails 4之外的所有gem,並在運行bundle安裝以找到罪魁禍首後,逐個取消註釋。您可能需要撤消一些版本鎖。

8

你設計的一個過時的版本,使用Rails的4兼容

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

也改變coffee-rails

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

,並嘗試做

bundle update coffee-rails 
62

而且bundle update只允許你一次更新一個寶石,如果你更新到012,這很難和一大堆寶石必須同時更新。

我通過刪除Gemfile.lock並做了bundle install來解決這個問題。

這當然假設您在Gemfile開始時沒有衝突的明確寶石版本。所以如果失敗了,請從Gemfile中刪除版本號。

+1

這適用於我。刪除'Gemfile.lock',一切都像地獄一樣平滑:D。 –

+4

這對我有效:我必須補充說,如果某個特定寶石導致問題,請更改〜> for> =(例如gem'coffee-rails','〜> 4.0.0'for gem'coffee -rails','> = 4.0.0')並遵循nathanvda步驟 –

+5

'〜>'會更新,但只是patchlevel(所以根據semver:只有非重大更改)。更改爲'> ='會更新到最新版本(考慮所有其他依賴/約束),實際上只是說明了需要的最小版本(從您的結尾)。所以是的:這可能是絕對需要的。 – nathanvda

20

剛剛從Gemfile中取出寶石的版本(咖啡軌和青菜,軌),然後運行包更新

1
  1. 刪除Gemfile.lock文件
  2. 參考here基本的Gemfile變化
  3. 運行bundle install

一切都會正常工作。 :)

相關問題