2

DataMapper と google-api gems を使用するプロジェクトに取り組んでいます。プロジェクトを Shotgun または Thin で実行しようとすると、エラーが発生します。bundler またはプロジェクトを実行すると、DataMapper がアドレス指定可能なバージョン 2.4.1 を使用し、google-api-client gem がアドレス指定可能なバージョン 2.4.5 を使用することを示すエラーが発生します (記憶から書いているため、バージョンは正確ではない可能性があります)。

私は ruby​​ にはかなり慣れていませんが、この種の競合はよくあることなので、これを処理するための慣用的な方法があるのではないかと思います。もちろん、どちらかのプロジェクトをフォークして、アドレス可能な競合を更新/ロールバックしようとすることもできますが、これは正しい方法のようです。

更新:: これは、dataMapper を要求した後に irb で google-api gem を要求しようとした結果です

1.9.3p194 :004 > require 'google/api_client' Gem::LoadError: Unable to activate google-api-client-0.4.6, because addressable-2.2.6 conflicts with addressable (>= 2.3.2)

4

1 に答える 1

1

これを処理する慣用的な方法はありません。addressable に対する datamapper の依存関係が古いため、バンドラーは互換性のあるバージョンを見つけることができません。

addressable Changelogからの変更を理解している限り、addressable-2.2.6 以降、dm-core に影響する破壊的な API の変更はありませんでした。Datamapper を更新して、最新バージョンの addressable を使用することができます。

datamapper 1.x ブランチの開発は中止されました。私たちは積極的に datamapper-2.0 に取り組んでいます。

github の datamapper の "release-1.2" ブランチでは、依存関係が既に更新されています。Gemfile 経由でこのブランチを使用できます。

gem 'dm-core', :git => 'https://github.com/datamapper/dm-core', :branch => 'release-1.2'

このブランチは、アドレス可能な 2.x との互換性を宣言していますが、2.3 よりも大きいです。このブランチを使用して、依存関係の問題を解決できるはずです。

于 2012-11-20T23:10:53.573 に答える