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
이 문제를 해결할 참조