2010-12-19 3 views
9

오랫동안 레일즈 3에 오랫동안 문제없이 오이를 사용해 왔지만, (보석 정리 포함) 오늘 땜질에, 나는 "오이 기능"을 실행 할 때마다 나는레일 3/오이 문제 : "... 이미 활성화 된 빌더 3.0.0이지만 Gemfile에 빌더 2.1.2가 필요합니다."

다음과 같은 오류가 이미 빌더 3.0.0을 활성화하지만 Gemfile 빌더 2.1.2이 필요합니다. exec 번들을 사용해보십시오. (Gem :: LoadError)

내 컴퓨터의 여러 레일 프로젝트에서 시도했습니다. 모두 영향을받습니다. 이 문제를 해결하는 방법을 잘 모르겠다 - 2.1.2 &을 gemfile에 지정해 보았지만 기쁨은 없었다.

"bundle exec cucumber features"는 작동하지만 autotest와 잘 일치하지 않습니다.

내가 뭘했는지 (그리고 더 잘 고쳐야하는 방법)에 대한 제안은 많이 감사합니다.

답변

17

gem 정리 후 빌더가 제거 된 다음 최신 버전 (3.0.0)이 설치된 것처럼 보입니다. 그러나 rails3과 다른 보석 중 일부는 ~ 2.1.2를 요구합니다. 이는 빌더 버전이 2.1.2 이상이고 < 3.0.0이어야 함을 의미합니다. 따라서 시스템 보석에서 3.0.0을 제거해야합니다.

gem uninstall builder 

sudo을 사용하십시오. 그런 다음 프로젝트

:

bundle install 

참고 : Gemfile에 빌더 수동으로 두었다면, 당신이 ~> 2.1.2을 넣어 있는지 확인하십시오.

gem "builder", "~> 2.1.2" 

당신이 각 프로젝트에 대해 별도의 위치에 보석을 저장하는 것이 좋습니다 : 그렇지 않으면 들러 레일 및 기타 인기있는 보석의 현재 버전과 호환되지 않습니다 최신 안정 버전 (3.0.0)을 설치하려고합니다 :

bundle install --path .gems 

이 경우 시스템 보석으로 원하는 모든 것을 할 수 있으므로 지금처럼 상황에 직면 할 위험이 줄어 듭니다.

6

더 간단한 방법을 사용하지 않으시겠습니까?

bundle exec cucumber features

나는 빌더와 다른 보석과 같은 문제가 있었다. "보석 unistall"길을 사용하려고했지만 그때 나는 새로운 보석이 필요하다는 오류가 발생했습니다. 그래서 나는 교착 상태에 빠져 있었다. 이것은 약간 더 나은 답으로 보인다

+0

이 일을 위의 명령으로

는 ... ... 그렇게, Gemfile.lock''오이는 본질적으로 인식하도록하지만, 하나 더하지 않을까요 여전히 다른 명령 줄을 사용할 수 있습니다 * 및 * 시스템에 3.0.0이 설치되어 있습니까? 어딘가에서'bundler/setup '을 require하는 것이 적절한 방법 인 것 같습니다 - http://gembundler.com/rationale.html#setting-up-your-application-to-use-bundler - - 누군가가 https://github.com/aslakhellesoy/cucumber에 패치를 제출하고 싶다면 다음을 수행하십시오. :) 내가 할 일을 위해 풀 요청을 제출할 준비가 된 시점까지 완료되지 않았다면, 그렇게 할 것입니다. – lindes