2010-11-19 80 views
1

版本0.4.1的declarative_authorization gem將rails> = 2.1.0作爲依賴項。如果你先安裝rails 2.3.5,然後安裝0.4.1的declarative_authorization,你會得到Rails 3的依賴關係。如果declarative_authorization需要rails> = 2.1.0,如果安裝了2.3.5,那麼依賴關係應該被滿足,對吧?是什麼導致所有其他寶石被安裝?這是一個rubygems錯誤?安裝declarative_authorization安裝rails 3的依賴關係

$ ruby -v 
ruby 1.8.7 (2010-04-19 patchlevel 253) [i686-darwin10.4.0], MBARI 0x6770, Ruby Enterprise Edition 2010.02 

$ gem -v 
1.3.7 

$ gem install rails -v 2.3.5 
Successfully installed rake-0.8.7 
Successfully installed activesupport-2.3.5 
Successfully installed activerecord-2.3.5 
Successfully installed rack-1.0.1 
Successfully installed actionpack-2.3.5 
Successfully installed actionmailer-2.3.5 
Successfully installed activeresource-2.3.5 
Successfully installed rails-2.3.5 
8 gems installed 

$ gem install declarative_authorization -v 0.4.1 
Successfully installed declarative_authorization-0.4.1 
Successfully installed activesupport-3.0.3 
Successfully installed builder-2.1.2 
Successfully installed i18n-0.4.2 
Successfully installed activemodel-3.0.3 
Successfully installed rack-1.2.1 
Successfully installed rack-test-0.5.6 
Successfully installed rack-mount-0.6.13 
Successfully installed tzinfo-0.3.23 
Successfully installed abstract-1.0.0 
Successfully installed erubis-2.6.6 
Successfully installed actionpack-3.0.3 
Successfully installed arel-2.0.4 
Successfully installed activerecord-3.0.3 
Successfully installed activeresource-3.0.3 
Successfully installed mime-types-1.16 
Successfully installed polyglot-0.3.1 
Successfully installed treetop-1.4.9 
Successfully installed mail-2.2.10 
Successfully installed actionmailer-3.0.3 
Successfully installed thor-0.14.4 
Successfully installed railties-3.0.3 
Successfully installed bundler-1.0.7 
23 gems installed 

$ gem dependency declarative_authorization 
Gem declarative_authorization-0.4.1 
    rails (>= 2.1.0, runtime) 

回答

0

當您使用>=爲 gem指定版本號時,Rubygems將始終嘗試獲取該gem的最新和最大值,而不管該依賴項是否已滿足。這不是一個錯誤,而是一個預期的行爲。爲了解決這個問題,創業板作者應指定創業板做這個取決於梁2的任何版本:

s.add_dependency 'rails', '~> 2' 

總之,這是創業板作者的錯,不是RubyGems的。

+0

感謝您的回答瑞安。 > =的行爲似乎對我來說很奇怪。但是,這是另一個問題。爲什麼不安裝更新版本的導軌?它安裝了rails 3的依賴關係,但沒有安裝實際的rails 3 gem。那是預期的行爲? – pjb3 2010-11-20 00:42:47

0

這是令人費解的。

這可能是declarative_authorization gem依賴於其他一些錯誤地依賴於rails3的gem。我注意到一個開始使用ActiveSupport 3的新功能的創業板,這打破了整個產業鏈。