rake 작업에서 잘못된 루비 버전을 사용했습니다

4244 단어 heroku_san

묘사

heroku san 3.0.4에서 4.0.7로 업그레이드한 후 현재 heroku san rake 작업을 실행하면 다음과 같은 오류가 발생합니다.Your Ruby version is 1.8.7, but your Gemfile specified 1.9.3 (Bundler::RubyVersionMismatch)내 파일은 루비 1.9.3을 확실히 지정했다.RVM을 설치했습니다. 루비 1.9.3-p327을 사용하도록 설정된 프로젝트에서 이 작업을 진행하고 있습니다.OS X 10.8.2를 사용하고 있습니다.이것은 Heroku sangem이 버려진 Herokugem이 아닌 Heroku 도구 테이프를 사용하는 변화와 관련이 있을 것 같습니다.Heroku 도구테이프가 내 시스템 루비를 사용하고 있을 것 같습니다. 비록 RVM을 기본 루비 1.9.3으로 설정했지만.무슨 생각 있어요?

토론 #1

+1 !

토론 #2

보석을 제거해 보셨어요?나는 보석이 공구띠를 방해하고 있다는 보도를 보았다.어쨌든, 나는 그것을 복제하기 위해 테스트를 작성해 보려고 한다.하면, 만약, 만약...
-Gemfile.자물쇠
- heroku로부터의 출력
- gem list -l로부터의 출력
그게 도움이 될 거야!
감사합니다rvm info저는 두 가지 일을 통해 이 문제를 해결했습니다.
1. 낡은 허쿠 보석을 제거한다.
2. 루비 1.8.7 대신 Heroku Toolbelt를 다시 설치합니다.Toolbelt 설치가 어떻게 작동하는지 확실하지는 않지만, 몇 달 전에 설치했을 때, 나의 기본 RVMruby는 1.8.7이었고, 후에 나는 1.9.3으로 업그레이드되었다.
아마도 자술서에 업그레이드에 관한 내용을 추가해야 할 것이다.감사합니다!

토론 #셋

이런 상황이 이미 여러 차례 발생했으니 그것을 둘러싸고 테스트를 작성할 수 있는지 확인해 보겠습니다.

토론 #4

내가 응용 프로그램에서 루비 2.0.0을 사용했을 때 나는 다시 이런 상황을 만났다. 나는 다음과 같은 것을 얻었다.
Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0
Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0
rake aborted!
Command failed with status (18): [heroku run rake db:migrate --app swiny]
/Users/macbookair/.rvm/gems/ruby-2.0.0-p0/bundler/gems/heroku_san-c6d1f484b351/lib/heroku_san/stage.rb:149:in `sh_heroku'
/Users/macb

토론 #5

루비v2 지원을 아직 개발하지 않았습니다.나는 이 문제를 최후까지 남겨 두고 토론할 것이다
그 일의 자리 표시자.
2013년 3월 17일 일요일 새벽 1:07, 트롤[email protected]쓰기:
우리가 보기에 Heroku 도구는 자신의 묶음 Ruby 1.9.3을 가지고 있다.Gemfile에서 2.0.0을 지정하면 오류가 발생합니다.
따라서 로컬에서 루비 도구를 실행하고 프로그램 파일을 불러오는 것이 있는 것 같습니다.이 루비의 버전이 일치하지 않을 때 오류가 발생합니다.
이러한 상황이 발생하지 말아야 할 것 같습니다. 일반적인 로컬에 설치된 루비 대신 로컬Gemfile을 로컬Heroku 도구로 루비를 불러오기를 원합니다.

토론 #6

여기서 시스템 () 호출을 추적합니다:https://github.com/fastestforward/heroku_san/blob/master/lib/heroku_san/stage.rb#L153
여기에서 호출

토론 #7

할 때 Heroku Toolbelt의 루비가 bundler와Gemfile을 불러오기로 결정합니다.그러나 Bash 프롬프트에서 직접

토론 #8

를 실행하면 파일에 전혀 영향을 주지 않습니다.heroku version[한숨]
만약 도구 테이프가 다른 도구 테이프 내부에서 스크립트를 작성할 수 없다면, 좀 실패할 것이다
다른 루비가 시작하는 루비 스크립트를 사용합니다.
이것도 rvm/묶음기 집적과 충돌할 수 있습니다.
Heroku의 David Dollar에게 연락해서 우리가 어떻게 해야 한다고 생각하는지 볼게요.
네.
2013년 4월 11일 목요일 오전 9:09, 뉴욕[email protected]:

This happen again with me when I use ruby 2.0.0 for my app, I got this:

Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0 Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0 rake aborted! Command failed with status (18): [heroku run rake db:migrate --app swiny] /Users/macbookair/.rvm/gems/ruby-2.0.0-p0/bundler/gems/heroku_san-c6d1f484b351/lib/heroku_san/stage.rb:149:in `sh_heroku' /Users/macb

— Reply to this email directly or view it on GitHubhttps://github.com/fastestforward/heroku_san/issues/118#issuecomment-15019026 .



켄 메이어 | 지구촌 바보
[email protected]|(808) 722-6142(c)heroku versionheroku를 이렇게 실행하면 작동할 것 같습니다.
system "env -i HOME=$HOME bash  -c 'heroku --version'"

토론 #9

나는 이 문제에 대해 약간 다른 해결 방안을 가지고 있다. 나는 138기에서 그것을 열거했다.나는clear ENV를 사용하여 bash를 실행하지 않고 문제가 있는 ENV 변수를 설정하지 않고 시스템 호출과 함께 전달합니다.

토론 #10

이것은 절대 침입성이 비교적 작은 방법이다.나는 실제로도 이 단어를 넣어야 한다는 것을 발견했다. 그렇지 않으면 나는 경고를 받을 것이다.네가 묘사한 방식에 따라 하는 것은 아마도 일리가 있을 것이다.

토론 #11

토론 #12

토론 #13

파이프(일지미)Bundler.with_clean_env에 대해 나는 이 오류를 만났고 이 문제를 발견했지만 이곳의 정보로 이 문제를 해결할 수 없었다.나중에 나는 해결 방안을 하나 찾았다.보이다http://stackoverflow.com/questions/19056267/error-using-heroku-san-gem-your-ruby-version-is-x-x-x-but-your-gemfile-specifi/19056268#19056268
나는 이 문제가 해결될 때까지 이것이 도움이 되기를 바란다.Bundler.clean_exec #155에 의해 종료됨

좋은 웹페이지 즐겨찾기