34

Gemfileにgem'koala'を追加しましたが、'bundle install'コマンドを実行すると、gemバージョンがwhackからスローされたようです。

Bundler could not find compatible versions for gem "faraday":
In snapshot (Gemfile.lock):
faraday (0.6.1)

In Gemfile:
koala (~> 1.2.0beta1) depends on
  faraday (~> 0.7.4)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

この競合を解決するにはどうすればよいですか?

4

7 に答える 7

59

の内容を削除して、再Gemfile.lock実行してbundle installください。それは私のために働いています。

于 2011-08-22T15:59:42.873 に答える
34

bundle updateエラーメッセージが指摘するように 実行しましたか?bundle installGemfileへの変更を処理しbundle update、Bundlerによってすでに管理されているgemをアップグレードします。Gemfile.lockファイルはバージョン番号をロックし、bundle updateGemfileで直接指定されていないもの(などgem 'rails', '3.0.9')を更新します。

Gemfile.lockを削除しても機能しますが、実行するbundle update方が適切です。

于 2011-08-22T19:58:14.020 に答える
7

それが解決策である場合、単純に削除することはできません。そもそもGemfile.lockなぜGemfile.lock存在するのか、コードはこのファイルにロックされているバージョンに依存し、を使用して競合の原因となるGemのみを更新してみbundle update gem_nameて、を確認する必要があります。新しいバージョンで動作するために変更が必要な場合はReadMeを参照してください。そうでない場合は、コードまたは他のコードが壊れています。

于 2017-01-29T05:31:40.793 に答える
5

指定されたバージョンのレールを削除することで、問題が解決したことがわかりました。

gem rails, '4.0.4'

やった

gem rails

その後、Gemfile.lockを削除し、バンドルインストールを再実行します

于 2014-04-03T18:52:08.687 に答える
2

削除Gemfile.lockが機能しない場合は、別の可能性があります。

依存しているgemが誤って独自のGemfile.lockを.gemファイルに含めている可能性があります。解決策は、問題のあるgemを更新してGemfile.lockを含めないようにし、再構築して再インストールすることです。

于 2013-08-08T21:35:46.213 に答える
1

別の方法は、自分の場所に移動して、問題のあるgem(この場合はgem)Gemfile.lockへのすべての参照を削除することです。faraday次に実行するbundle installと、が更新Gemfile.lockされ、必要な場所に互換性のあるバージョンのgemが追加されます。安全性をさらに高めたい場合は、に移動して、必要なGemfilegemのバージョンを指定してから実行できます。

bundle installこれが、私が保守しているシステムの1つで実行できる唯一の方法でした。このシステムの依存関係には古いgemがたくさんあり(執筆時点では58 gem)、それbundlerに対処するのに苦労しています。を削除しGemfile.lockて実行bundle installすると、複数のBundler could not find compatible versions for gem xxxxxx エラーが発生します。実行bundle updateすると、複数のBundler could not find compatible versions for gem xxxxxxエラーが発生します。

于 2019-02-20T10:55:33.183 に答える
1

:削除Gemfile.lockすると、さまざまな宝石に新たに参加できるようになります。これはあなたのプロジェクトでは受け入れられないかもしれません。あなたのチームまたはリードはこれを許可しません。

Rails 3.2などのレガシーコードベースで作業している 場合この種のエラーが発生した場合は、

その最後の行を参照してGemfile.lockください

  whenever (~> 0.9.4)
  wicked_pdf (= 1.1.0)
  will_paginate (= 3.1.8)
  wkhtmltopdf-binary-edge (~> 0.12.4.0)

BUNDLED WITH
   1.16.6

ここで、ファイルに記載されているバージョンをインストールしbundlerます。私の場合、その1.16.6

gem install bundler -v 1.16.6 

ここで、古いバージョンを削除します。どのように?

$ gem uninstall bundler

Select gem to uninstall:
 1. bundler-1.16.6
 2. bundler-2.1.4
 3. All versions
> 2
Successfully uninstalled bundler-2.1.4

$ bundle -v     
Bundler version 1.16.6

これで正常にインストールされます

于 2020-05-19T08:11:18.733 に答える