2014-02-24 3 views
0

AWS를 통해 스테이징 및 프로덕션 서버가 있습니다. 루비 버전을 2.1로 업그레이드 한 후 특정 시점 이후에 내 준비/프로덕션 서버에서 레일을 찾을 수 없어서 레일과 루비를 ssh하고 다시 다운로드해야했지만 지금은 레일을 실행할 때 - v "나에게 2.3.14를 주지만,"번들 exec rails -v "를 실행할 때 적절한 3.2.16을 얻습니다."Rails -v"및 "Bundle exec rails -v"가 다른 이유

나는 이것이 경로 때문이라고 추측하고 있지만 이것을 해결하는 방법에 대해서는 확실하지 않습니다. 내가 찾은 대답 중 일부는 .bashrc를 변경하고 $ PATH 변수를 변경하는 것이 좋겠지 만 정확히 무엇을 변경해야하는지 정확히 알지 못했습니다.

#PATH=$PATH:$HOME/.rvm/bin # how it was before 
PATH = $PATH:$HOME/.rvm/gems/ruby-2.1.0/bin #edited this just now to see if it works. it didnt.. 
+0

현재 gemset과'Gemfile'은 다른 버전의 레일이 설치되어있는 것처럼 보입니다. 'gem install rails --version 3.2.16'을 사용해 보셨습니까? 해킹의 종류. – mikeryz

답변

1

bundle exec railsGemfile에 정의 된 레일 버전을 사용합니다 :

내 .bashrc에 있습니다. 반면에 간단한 rails은 컴퓨터에서 사용할 수있는 최신 버전을 실행합니다. 당신이 어떤 차이를 알아 차리지되지 않은, 그래서 당신이 당신의 Gemfile (3.2.16)에 사용 된 것과 동일 RVM에서 레일 버전을했다

: 아마 무슨 일이 있었는지

이있다. 루비를 업그레이드 한 후에는 이전 버전에서 설치 한 모든 보석을 다시 설치해야합니다. 그렇지 않은 경우 최신 버전 인 으로 시스템 버전이 될 수 있습니다 (예 : rvm이 아님). 이것은 당신이 왜 그렇게 오래된 것을 가지고 있는지 설명 할 수 있습니다.

bundle installGemfile에 필요한 모든 보석을 설치 한 다음 작업을 수행합니다.

+0

'Gemfile'에없는 버전이 오래되었다는 것을 제외하고 - 현재 gemset에 설치된 것이 무엇이든지 사용할 것입니다. – mikeryz

+0

예 또는 시스템 하나, 또는 수동 설치, 또는 다른 보석 세트에서 온 수 있습니다 (정말 어떻게 rvm 그 종류의 일을 처리하는지, 나는 훨씬 rbenv 선호). 어쨌든, 더 많은 정보 없이는 말하기가 어렵습니다. – mdemolin

관련 문제