1

bundler をインストールした後、diaspora のクローンを作成し、ディレクトリを diaspora に変更しました。バンドル インストールを試みると、次のエラーが表示されます。

Bundler は、gem "oauth2" の互換性のあるバージョンを見つけることができませんでした: スナップショット (Gemfile.lock): oauth2 (0.4.1)

Gemfile: diaspora-client (>= 0) ruby​​ は oauth2 (= 0.5.0) ruby​​ に依存

実行bundle updateすると、Gemfile 内の gem のみを使用してスナップショットが最初から再構築され、競合が解決される場合があります。

更新をバンドルすると、次のエラーが発生します。

Bundler は gem "oauth2" の互換バージョンを見つけられませんでした: Gemfile 内: diaspora-client (>= 0) ruby​​ は oauth2 (= 0.5.0) ruby​​ に依存しています

omniauth (= 0.2.6) ruby depends on
  oauth2 (0.4.1)

誰でもこの問題を解決するのを手伝ってくれますか? http://macabhaird.wordpress.com/2011/03/11/installing-diaspora-on-ubuntu-server-10-04-part-2/のガイドに従ってdiaspora をセットアップします。現在、ubuntu 10.04.3 を使用しています

4

2 に答える 2

0

私は同じ問題に取り組んでいます。現時点では、Gemfileからdiaspora-clientの依存関係を削除/コメントアウトしました。

なんでだろう

bundle install --without test

動作しません。

このスレッドも私にとって啓発的でした。Rails 3(バンドル)でこのgem依存関係の問題を修正するにはどうすればよいですか?これらすべてのパッケージツールは、アプリケーションが2つ以上の異なるバージョンのgemを同時に使用できるという暗黙の感覚を私に与えたからです。

于 2011-11-30T17:17:23.633 に答える
0

問題は、2 つの依存関係が同じ gem (この場合は oauth2) の異なるバージョンに依存していることです。Bundle は、すべての gem の依存関係リストが単一の gem セットによって満たされるように、依存関係を解決しようとします。言い換えれば、アプリケーションが 2 つ以上の異なるバージョンの gem を同時に使用できるという、groovehunter の考えは正しくありません。

基本的に、この問題は、gem が必要な場合に、ソース ファイルがその場で実行されるだけであるという事実から生じます。2 つの gem が同じトップレベルの定数を定義している場合、そのうちの 1 つがもう一方を上書きします (関連する警告が stderr に出力されますが、バンドラーは問題があることを通知しません)。

ディアスポラが0d41c9c5f3b4e7a451c603385305fb17779e813fで特定の問題を修正したようです。依存関係を更新すると解決するはずです。

于 2011-12-22T17:17:21.787 に答える