web-dev-qa-db-fra.com

Bundler n'a pas trouvé de version compatible pour gem, mise à jour de l'application Rails

Après avoir créé une toute nouvelle application Rails Suivant le blog officiel de Rails post , toute tentative de conversion des applications en Rails 3.2.0.rc2 donne les résultats suivants:

Updated Gemfile to depend on Rails ~> 3.2.0.rc2
    gem 'Rails', '~>3.2.0.rc2'
Updated Gemfile to depend on sass-Rails ~> 3.2.3
    gem 'sass-Rails',   '~> 3.2.3'

$ bundle install
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "activesupport":
  In snapshot (Gemfile.lock):
    activesupport (3.1.1)

  In Gemfile:
    Rails (~> 3.2.0.rc2) Ruby depends on
      activesupport (= 3.2.0.rc2) Ruby

Running `bundle update` will rebuild your snapshot from scratch, using 
only the gems in your Gemfile, which may resolve the conflict.

$bundle update
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "railties":
  In Gemfile:
    coffee-Rails (~> 3.1.1) Ruby depends on
      railties (~> 3.1.0) Ruby

    Rails (~> 3.2.0.rc2) Ruby depends on
      railties (3.2.0.rc2)

Quel est exactement le problème?

Spécifications du système:

Mac OS 10.7.2, Xcode 4.2.1, version 1.10.1 utilisant Ruby 1.9.3p0 (2011-10-30 révision 33570) [x86_64-darwin11.2.0]

17
rudolph9

Je l'ai résolu en supprimant le verrou rm Gemfile.lock et en exécutant à nouveau bundle install:

$ rm Gemfile.lock
$ bundle install
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.0.4) 
Using activesupport (3.2.0.rc2) 
Using builder (3.0.0) 
Using activemodel (3.2.0.rc2) 
Using erubis (2.7.0) 
Using journey (1.0.0) 
Using rack (1.4.0) 
Using rack-cache (1.1) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.0.rc2) 
Using mime-types (1.17.2) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.3.0) 
Using actionmailer (3.2.0.rc2) 
Using arel (3.0.0) 
Using tzinfo (0.3.31) 
Using activerecord (3.2.0.rc2) 
Using activeresource (3.2.0.rc2) 
Using bundler (1.0.21) 
Using coffee-script-source (1.2.0) 
Using execjs (1.2.13) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.6.4) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.0.rc2) 
Using coffee-Rails (3.2.1) 
Using jquery-Rails (2.0.0) 
Using Rails (3.2.0.rc2) 
Using sass (3.1.12) 
Using sass-Rails (3.2.3) 
Using sqlite3 (1.3.5) 
Using uglifier (1.2.2) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

C'est un moyen assez brutal de résoudre le problème. S'il s'agit d'un projet établi, vous pouvez rencontrer d'autres problèmes après la suppression du Gemfile.lock car les versions de dépendance ne sont plus verrouillées. Toutefois, s’il s’agit d’un nouveau projet, il est peu probable que vous rencontriez des problèmes en adoptant cette approche.

60
rudolph9

En plus de sass-Rails, vous devez modifier la version de coffee-Rails dont vous dépendez (3.2.1 devrait le faire)

2
Frederick Cheung

allez comme ceci: gem 'activeadmin', github: 'gregbell/active_admin' in da gemfile. Prise en charge de l’administrateur actif de Rails 4 fusionnée dans une branche principale Installation de l’administrateur actif avec Rails 4

0
Connor Leech

Si la version de votre bundle n’est pas identique à BUNDLED WITH dans la dernière ligne de votre fichier Gemfile.lock, il se peut que vous ne trouviez pas de version compatible pour gem GEMNAME avant d’ajouter une nouvelle gem à votre fichier Gemfile.

0
Feuda