[ruby] 루비 버전을 바꾸지 않는 rbenv

github 지침에 따라 rbenv를 설치했습니다. OSX를 실행하고 있지만 Ubuntu 12.04 VM 에서이 작업을 시도했으며 동일한 결과를 얻었습니다. 다음은 루비 버전을 변경하려고 할 때 터미널에서 얻는 것입니다.

rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125

rbenv global
1.9.3-p0

rbenv rehash

ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]

which ruby
/usr/bin/ruby

rbenv가 왜 루비 버전을 생각하지 않는 것처럼 전환하지 않는지에 대한 아이디어가 있습니까? 또한 로컬 디렉토리에는 .rbenv 파일이 없으므로 루비 버전의 기본값은 1.8.7입니다.

rbenv local
rbenv: no local version configured for this directory



답변

PATH에 $ HOME / .rbenv / shims 및 $ HOME / .rbenv / bin이 포함되어 있는지 확인하십시오.

$ env | grep PATH

또한 bash를 사용하는 경우 ~ / .bash_profile에 또는 zsh를 사용하는 경우 ~ / .zshenv에 다음이 있는지 확인하십시오.

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

참고 : ~ / .bash_profile의 마지막 설정인지 확인하십시오. .bash_profile을 업데이트하고 PATH를 재설정하는 프로그램을 설치하는 문제가 발생했습니다.

마지막으로, 있는지 확인 $HOME폴더가없는 .ruby-version작업을 완료 한 것 인 경우에 실수로 생성 한 해당 파일을 $ rbenv local <ruby-version>사용자의 $HOME폴더. 이렇게 $ rbenv global <ruby-version>' modifies the$ HOME / .rbenv / 버전 file, and the existence of a.ruby 버전의 file in the$ 홈페이지 folder would override the version set by의 $ HOME / .rbenv / version`합니다.

문서에서 :

루비 버전 선택 shim을 실행할 때 rbenv는 다음 소스에서 순서대로 읽어서 사용할 루비 버전을 결정합니다.

지정된 경우 RBENV_VERSION 환경 변수 rbenv shell 명령을 사용하여 현재 쉘 세션에서이 환경 변수를 설정할 수 있습니다.

파일 시스템의 루트에 도달 할 때까지 실행중인 스크립트의 디렉토리와 각 상위 디렉토리를 검색하여 찾은 첫 번째 .ruby 버전 파일입니다.

파일 시스템의 루트에 도달 할 때까지 현재 작업 디렉토리 및 각 상위 디렉토리를 검색하여 찾은 첫 번째 .ruby 버전 파일입니다. rbenv local 명령을 사용하여 현재 작업 디렉토리에서 .ruby-version 파일을 수정할 수 있습니다.

글로벌 ~ / .rbenv / version 파일. rbenv global 명령을 사용하여이 파일을 수정할 수 있습니다. 글로벌 버전 파일이 없으면 rbenv는 “시스템”Ruby를 사용한다고 가정합니다. 즉, rbenv가 경로에없는 경우 어떤 버전이든 실행됩니다.


답변

~ / .bash_profile에 다음을 추가하여이 문제를 해결했습니다.

#PATH for rbenv
export PATH="$HOME/.rbenv/shims:$PATH"

https://github.com/sstephenson/rbenv에 설명되어 있습니다 .

내가 알 수있는 것에서 ~ / .rbenv / bin 디렉토리는 없으며 @rodowi의 게시물에 언급되어 있습니다.


답변

이것은 오래된 질문 일 수도 있지만 Google이 나를 이끌었고 후손을 위해 내가 공유 할 것이라고 생각했습니다.

위의 많은 권장 솔루션 후에도 문제가 지속되었습니다. OP와 마찬가지로 rbenv를 설치 한 다음 루비 버전을 설치했지만 랩톱의 기본값은 시스템입니다. 내가 간과 한 것은 내가 달렸을 때였 다.

[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
  2.0.0-p247

IOW, 여전히 시스템 기본값입니다. 빠른

[~/.rbenv] $ rbenv local 2.0.0-p247

새 버전으로 전환했습니다.


답변

첫 번째 단계는 어떤 루비가 호출되는지 알아내는 것입니다.
which ruby

당신의 시스템은 말합니다 :
/usr/bin/ruby

rbenv에서 사용하는 shim은 아닙니다 (MacOS에서는).
/Users/<username>/.rbenv/shims/ruby

shim은 실제로 설정 한 루비 버전으로 리디렉션하는 스크립트입니다.

rbenv global 1.9.3
rbenv local --unset
rbenv shell --unset

문제를 해결하려면 프로젝트 별 “로컬”버전과 셸별 “쉘”버전을 설정 해제하고 ~ / .rbenv / verion의 일반 텍스트 파일에서 결정되는 “전역”버전 설정을 사용하여 테스트하는 것이 좋습니다. 귀하의 경우 버전 번호는 “1.9.3”입니다. 프로젝트 폴더 (홈 폴더가 아닌)의 루트에서 “ls -laG”를 수행하여 더 이상 “.ruby-version”파일이 없는지 확인할 수 있습니다.

“rbenv 버전”을 사용하여 사용하도록 설정된 버전 rbenv (및 해당 파일을 설정하는 파일의 위치 및 이름)를 식별 할 수 있습니다.

rbenv versions

중요 사항 없음 : 경로를 올바르게 설정할 때까지.

이것을 사용하여 * MacOS가 다음을 준수하는지 확인하십시오.
eval "$(rbenv init -)"

뒤에 :
which ruby

/Users//.rbenv/shims/ruby처럼 보이게하려면

그런 다음 새 터미널 창을 열 때마다 실행되도록 행을 프로파일에 추가하십시오.
~/.bash_profile
eval "$(rbenv init -)"

경로를 수정하는 다른 방법이 있습니다. rbenv init를 실행하는 대신 경로를 자유롭게 대체하십시오.

참고 : 다음을 사용하여 레일을 다시 설치하십시오.
gem install rails

Ruby on Rails를 실행하려고한다면,이 모든 것이 먼저 작동하고 Rails gem을 다시 설치해야합니다. Rails의 이전 설치는 잘못된 루비에 대한 하드 코딩 된 경로를 사용하고 다른 여러 가지가 잘못된 위치에 있으므로 보석을 다시 설치하십시오.

추신 MacOS가 당신에게 순종하지 않는다면 (* 위에서 언급 한) 경로를 수정하는 다른 방법을 찾아야 할 수도 있지만, “Macs just work”;) 때문에 문제가되지는 않을 것입니다.


답변

방금이 같은 문제를 발견했습니다. 내가 한 것은 rbrew를 통해 (homebrew를 통해) 제거한 다음 다시 설치하는 것입니다. 나는 또한 추가했다

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

rbenv를 다시 설치할 때 ~ / .bash_profile에. 완벽하게 작동합니다.


답변

내 경우에는 변경 ~/.zshenv하지 못했습니다. 나는 내부를 바꿔야했다 ~/.zshrc.

방금 추가했습니다.

# Include rbenv for ZSH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

의 맨 위에 ~/.zshrc셸을 다시 시작하고 로그 아웃했습니다.

작동하는지 확인하십시오.

  ~ rbenv install 2.4.0
  ~ rbenv global 2.4.0
  ~ rbenv global
2.4.0
  ~ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]


답변

이 명령을 실행

rbash를 bash에 추가하여 터미널을 열 때마다로드되도록하십시오.

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile

이 문제를 해결할 참조