2010-11-19 4 views
1

declarative_authorization gemのバージョン0.4.1には、依存関係として> 2.1.0があります。最初にrails 2.3.5をインストールし、0.4.1のdeclarative_authorizationをインストールすると、Rails 3の依存関係が得られます.replil_authorizationに> 2.1.0以上のレールが必要な場合、2.3.5がインストールされていれば、その依存関係は満たされるはずです。他のすべての宝石類がインストールされる原因は何ですか?これはrubygemsのバグですか?declarative_authorizationをインストールすると、レール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

宝石に>=を使用してバージョン番号を指定すると、Rubygemsは、依存関係が既に満たされているかどうかにかかわらず、常にその宝石の最新かつ最大のものを取得しようとします。これはバグではなく、むしろ予想される動作です。この問題を解決するには、宝石の作者は宝石がこれを行うことにより、レール2のいずれかのバージョンに依存するように指定する必要があります

要するに
s.add_dependency 'rails', '~> 2' 

が、これは宝石の作者のせいではなく、Rubygemsのです。

+0

回答ありがとうございました。 > =の行動は私には奇妙に思える。しかし別の質問があります。新しいバージョンのレールがインストールされないのはなぜですか?それはレール3の依存関係をインストールしましたが、実際のレール3の宝石はインストールしませんでした。それは期待される行動ですか? – pjb3

0

これは困惑しています。

これは、誤ってrails3に依存している他の宝石に依存している可能性があります。私は、ActiveSupport 3の新機能をいくつか使用し始めた宝石の1つに気付きました。

関連する問題