簡體   English   中英

Bundler無法找到gem的兼容版本,更新了Rails app

[英]Bundler could not find compatible versions for gem, updating Rails app

創建一個全新的rails應用程序之后在官方rails博客文章后 ,嘗試將應用程序轉換為rails 3.2.0.rc2會產生以下結果

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)

究竟是什么問題?

系統規格:

Mac OS 10.7.2,Xcode 4.2.1,rvm 1.10.1使用ruby 1.9.3p0(2011-10-30修訂版33570)[x86_64-darwin11.2.0]

我通過刪除鎖rm Gemfile.lock並再次運行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.

這是解決問題的一種非常強力的方法。 如果這是一個已建立的項目,則在刪除Gemfile.lock后可能會遇到其他問題,因為依賴項版本不再被鎖定。 但是,如果這是一個新項目,那么采用這種方法就不會遇到問題。

除了sass-rails ,你還需要碰到你所依賴的coffee-rails版本(3.2.1應該這樣做)

如果您的Bundler版本與Gemfile.lock的最后一行中的BUNDLED WITH不同,則只有在向Gemfile添加新gem之后才會出現'找不到gem GEMNAME的兼容版本'。

像這樣: gem 'activeadmin', github: 'gregbell/active_admin' da gemfile中的gem 'activeadmin', github: 'gregbell/active_admin' rails 4的主動管理支持合並到主分支使用Rails 4的主動管理安裝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM