내가 무엇을 놓치고 있나요? 명령줄에서 "rvm"을 호출할 수 있지만 which rvm
사용 중인 전체 경로를 인용할 수는 없습니다.
상관은 없지만 항상 "jenkins"로 로그인되어 있고 명령이 계속 실행됩니다.
$ whoami
jenkins
RVM은 여기에 있습니다
$ which rvm
/home/jenkins/.rvm/bin/rvm
이게 효과가 있어
$ rvm use 1.8.7
Using /home/jenkins/.rvm/gems/ruby-1.8.7-p370
Running /home/jenkins/.rvm/hooks/after_use
하지만 이건 작동하지 않아
$ /home/jenkins/.rvm/bin/rvm use 1.8.7
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
You need to change your terminal settings to allow shell login.
Please visit https://rvm.io/workflow/screen/ for example.
예, 참조된 링크를 방문했지만 그것이 나에게 어떻게 적용되는지 모르겠습니다.
답변1
which rvm
이라는 실행 파일을 찾으세요 rvm
. 실행 파일은 실행 시 단순히 "RVM은 함수가 아닙니다..." 메시지를 출력합니다.
rvm
이는 셸의 함수일 수도 있고 별칭일 수도 있습니다. 이는 귀하의 파일 ~/.bashrc
(시스템 전체 /etc/bash.bashrc
또는 포함된 파일 중 하나)에 정의되어 있습니다. rvm
명령이 무엇인지 확인하려면 type rvm
또는 를 실행하세요 command -v rvm
.
당신은 또한 볼 수 있습니다which
alias 명령에 사용하는 방법은 무엇입니까 ?
답변2
rvm use
어떤 버전의 Ruby를 사용해야 하는지 나타내기 위해 환경 변수를 수정하여 작업하세요. 이는 함수로 실행될 때만 수행될 수 있습니다. 전체 경로 또는 정의되지 않은 기능을 사용하여 명령으로 실행하면 작동하지 않습니다. 이는 별도의 프로세스로 실행되는 경우 프로세스가 자체 환경 복사본을 갖게 되기 때문입니다. 이 복사본은 수정되지만 프로세스가 종료되면 즉시 손실됩니다.
답변3
방금 추가했어요
#!/bin/bash --login
대본 초반에는 허드슨에서 작업 중이었습니다. 이제 모든 것이 잘 작동합니다! :)