[ruby] “경고! rvm use 2.0.0 –default를 수행 할 때 PATH가 제대로 설정되지 않았습니다.

위는 처음으로 작동하지 않고 두 번째로 작동합니다.

새 쉘 창에 대해 루비 버전을 2.0.0으로 설정하십시오.

하기

$ rvm use 2.0.0 --default

준다

Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/
bin' is not at first place,
         usually this is caused by shell initialization files - check them for '
PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --au
to-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'
.
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247

그런 다음 똑같이

$ rvm use 2.0.0 --default

이제 오류가 없습니다.

$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
durrantm.../durrantm$ 

그러나 새 창은 여전히 ​​2.0.0이 아닌 루비 1.9.3을 제공합니다.

.bashrc파일에는 다음이 있습니다.

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "/home/durrantm/.rvm/scripts/rvm" ]] && . "/home/durrantm/.rvm/scripts/rvm"

내 .bash_profile에는 다음이 있습니다.

source ~/.profile
case $- in *i*) . ~/.bashrc;; esac

견딜 수 없는

rvm get stable

작동하는 것처럼 보이지만 많은 녹색 출력이 끝날 때 다음과 같이 표시됩니다.

Could not update RVM, get some help at #rvm IRC channel at freenode servers.

다음을 표시하는 새 터미널 창 rvm list rubies:

$ rvm list rubies
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/bin' is not at first place,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'.

rvm rubies

=> ruby-1.9.3-p125 [ x86_64 ]
   ruby-1.9.3-p194 [ x86_64 ]
 * ruby-2.0.0-p247 [ x86_64 ]

# => - current
# =* - current && default
#  * - default



답변

rvm을 제거한 후 멈췄습니다.

rvm implode

그런 다음 rvm을 다시 설치 한 후 동일한 오류 메시지를 받았습니다. wayne seguin의 git hub 페이지를 살펴본 후. 그는 자신의 페이지에 도구를 나열하고

rvm reset 

설치 후. 이것은 내 오류 메시지를 수정했습니다. PATH 편집이 필요하지 않습니다.


답변

대답은 다음과 같습니다.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
# Load RVM into a shell session *as a function*

내 .bashrc 파일의 ** 하단 ** (마지막 줄-중요!) 내 .bash_profile 파일 (우분투에 있음)에 있었고 부분적으로 만 작동하여 혼란스러운 오류가 발생했습니다.


답변

아마도이 문제를 해결하는 가장 좋은 방법은 아니지만 .zshrc 하단에이 줄을 추가했습니다 (.bashrc에서도 작동합니다!).

export PATH="$GEM_HOME/bin:$PATH"


답변

나는 Michael Durrant의 솔루션을 시도했지만 그것은 나를 위해 작동하지 않았습니다. 그러나 나는 달렸고 rvm get stable --auto-dotfiles원하는대로 작동하기 시작했습니다.

도움이되기를 바랍니다.


답변

이것은 질문에 대한 대답이 아니라 대부분의 댓글 작성자 / 응답자가 질문 한 관련 질문에 대한 것 입니다. 쉘 rc 파일의 맨 아래에 rvm 행을 넣어야하는 이유는 무엇입니까?

대답은 간단합니다.

  1. 로드 된 rvm 코드는 rvm ruby ​​바이너리 디렉토리를의 “앞”에 배치합니다 $PATH.
  2. .bashrc (또는 기본 셸에 해당하는)는 위에서 아래로 한 줄씩 읽고 해석됩니다.

따라서 다음 시나리오를 상상해보십시오.

$ echo $PATH
  /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

$ [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
  /Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

$ export PATH=<something>:$PATH
$ echo $PATH
  <something>:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547@global/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

RVM 라인 뒤에 쉘 초기화 파일에 무언가가 있고 $ PATH를 변경하는 경우, 더 구체적으로 디렉토리 앞에 추가하는 경우 $PATH이러한 변경 사항은 rvm에 의해 추가 된 디렉토리를 첫 번째 위치에서 아래로 밀어냅니다. RVM이 호출되면 루비 바이너리 디렉토리가 맨 처음에 있지 않고$PATH BAM! 경고가 표시됩니다. :).

나는 그것이 일을 명확하게 해주기를 바랍니다.


답변

내 경험을 추가하는 것뿐입니다.을 사용하는 .bash_profile경우 .bashrc간섭이 없는지 확인하십시오 . 살인 .bashrc에 의해 하나의 강타 구성에 찬성 .bash_profile이 경우 작품 아웃.


답변

이에 대한 후속 질문이 있습니다 (단순히 의견을 추가 할 수 있기를 바라지 만 크레딧이 충분하지 않습니다). 나는 똑같은 문제가 있었다.를 사용하여 제안 된 rvm 스크립트를 따랐을 때 --auto-dotfiles셸 스크립트가 내 .bashrc_profile 파일을 삭제했기 때문에 문제가 발생했습니다 .

어쨌든, 나는 결국 위에 나열된 동일한 대답에 이르렀고이 줄을 .bashrc 파일 의 맨 아래에 넣었습니다 .
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

bashrc 파일 중간에있는 행이 아닌 작동 방식으로 작동하는 이유를 찾았습니까? RVM이 다른 인스턴스가 아닌 한 인스턴스에서 작동하도록하는 환경 변수를 Unix가로드하는 방식에 대해 명확하게 알고 있습니까?