2016-09-13 3 views
1

일부 보석을 업그레이드 중입니다.번들은 서로 의존하는 보석을 필요로하므로 무한 루프가 발생합니다. 보석을 제거하십시오.

내가 삭제 한
Your bundle requires gems that depend on each other, creating an 
infinite loop. Please remove gem 'abc' and try again. 

하지만이 오류가 계속 : 나는 bundle을 calll 때 나는이 있습니다.

+3

문제를 해결하기 위해 사용하고있는 정확한 단계를 처리하고있는 보석을 알려주세요. – MarsAtomic

답변

3

가장 좋은 방법은 Gemfile.lock을 제거한 다음 bundle update을 실행하는 것입니다.

왜 이것이 작동할까요? 때로는 이전 버전의 보석을 강제로로드하고로드 할 새 버전의 보석이 필요합니다.

그래서 Gemfile.lock을 제거하면 번들이 올바른 버전의 보석을 다운로드하게됩니다.

그래도 작동하지 않으면 다른 보석과 충돌하는 gem "paperclip", "~> 4.2"과 같은 버전의 보석을로드해야 할 수 있습니다. 이는 그리 흔하지는 않지만 일어날 수 있습니다. 문제가있는 보석을 찾아 gem "paperclip" 같은 버전을 제거하거나 충돌이있는 다른 보석을 찾아 올바른 보석 버전을 얻어야합니다. 자식을 사용하는 경우 이전 Gemfile.lock을 통해 돌아가서 상충하는 보석의 버전을 확인하고 그 보석에 해당 버전을 적용 할 수 있습니다. Gemfile.lock이 제거되기를 바랍니다.

1

참고 :이 문서를 계속 읽기 전에 이미 삭제 한 경우를 대비하여 Gemfile.lock 파일 사본이 필요합니다.

지금은 늦을 지 모르지만 위의 작업을 수행 한 사람에게도 똑같은 문제에 직면해볼만한 가치가 있습니다.

내 솔루션이었다

  1. 사용 Gemfile.lock 파일 당신이 (아마 이전 빌드에서 그 얻을)와 청크가 서로에 의존하는 보석 중 하나에 속한다 삭제합니다.
  2. 실행 bundle install
  3. 위의 단계가 작동하지 않은 경우
  4. 반복 (1 단계, 2)하지만 지금은 다른 보석에 속하는 Gemfile.lock에서 청크 삭제와.
  5. 위의 코드가 완전히 작동하지 않으면 아무 것도 삭제하지 않고 (1 단계) 시도해보십시오. 그런 다음 두 보석을 모두 bundle update --source gem_name_here까지 업데이트하십시오. 이제이 앱이 bundle install 이전에 실행되면 작동하지 않으면 앱을 실행하기 전에 bundle install을 시도하십시오.
관련 문제