2013-06-26 12 views
33

Sto tentando di eseguire l'aggiornamento a Rails 4.0.0 e ho modificato le versioni gemma di sass-rails e coffee-rails. Ho bisogno di risolvere questo conflitto tra il gioiello e railscoffee-rails prima che io possa aggiornare a Rails 4.Bundler non è riuscito a trovare versioni compatibili per gem "railties" per Rails 4.0.0

Quando ho eseguito bundle update questo è l'output che ho ottenuto:

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

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

risposta

7

Esegui prima gem update rails, quindi bundle update

+0

Se l'aggiornamento del pacchetto aggiorna automaticamente la gemma delle rotaie che si trova nel Gemfile? È necessario eseguire manualmente le guide di aggiornamento delle gemme? –

4

Hai g ems che non sono supportati da Rails 4. Commenta tutte le gemme ad eccezione di Rails 4 e decommentale una alla volta dopo aver eseguito l'installazione di bundle per trovare i colpevoli. Potrebbe essere necessario annullare alcuni dei blocchi di versione.

8

si dispone di una versione non aggiornata di Devise, utilizzare Rails 4 compatibile

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

cambiarne anche coffee-rails a

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

e provare a fare

bundle update coffee-rails 
62

anche bundle update si permette solo di aggiornare una gemma alla volta, il che è difficile se si sta aggiornando a Rails 4 e un sacco di gemme devono essere aggiornate allo stesso tempo.

Ho risolto questo eliminando il Gemfile.lock e facendo bundle install.

Questo ovviamente presuppone che non ci sia alcuna versione gem in conflitto esplicita con Gemfile per iniziare. Quindi, se questo non riesce, rimuovere i numeri di versione dal Gemfile.

+1

Questo funziona per me. Elimina 'Gemfile.lock' e tutto è liscio come l'inferno: D. –

+4

Questo ha funzionato per me: devo aggiungere che, anche se una gemma specifica causa problemi, cambia il ~> per> = (es. Gem-coffee-rails ',' ~> 4.0.0 'per gem' coffee -rails ','> = 4.0.0 ') e segui i passi nathanvda –

+5

Il '~>' si aggiornerà, ma solo patchlevel (quindi secondo semiver: solo cambiamenti non-breaking). Passare a '> =' si aggiornerà alla versione più recente (tenendo conto di tutte le altre dipendenze/vincoli), e in realtà indica solo una versione minima necessaria (dalla propria estremità).Quindi sì: probabilmente è sicuramente necessario. – nathanvda

20

è sufficiente rimuovere le versioni gemme (caffè-rail e Sass-rail) da Gemfile ed eseguire fascio aggiornamento

1
  1. Eliminare il file Gemfile.lock
  2. riferiscono here per Gemfile base cambia
  3. run bundle install

Tutto funzionerà bene. :)

Problemi correlati