rbenv를 통해 쉘 스크립트에 특정 버전의 Ruby를 사용하는 방법은 무엇입니까?

rbenv를 통해 쉘 스크립트에 특정 버전의 Ruby를 사용하는 방법은 무엇입니까?

저는 Ruby로 몇 가지 짧은 스크립트를 작성하겠습니다. shebang이나 다른 수단을 통해 Ruby 버전을 지정하고 싶습니다.

나는 많은 환경에서 이 스크립트를 사용할 것입니다. 제 환경에서는 rbenv를 사용하고 있는데 어떤 버전의 Ruby가 설치되어 있는지 잘 모르겠습니다.

지정된 버전의 Ruby가 설치되어 있지 않으면 이 스크립트는 확실히 실패합니다.

어떻게 해야 합니까? 내가 따라야 할 좋은 방법이 있습니까?

답변1

~에 따르면공식 문서스크립트에 다음과 같은 접두어를 붙여야 할 것 같습니다.

#!/usr/bin/env ruby

그런 다음 다음 중 하나를 수행하여 rbenv사용할 Ruby 버전을 결정합니다.

발췌:https://github.com/sstephenson/rbenv

루비 버전 선택

shim을 실행할 때 rbenv다음 소스를 순서대로 읽어서 사용할 Ruby 버전을 결정하세요.

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

  2. .ruby-version발견된 첫 번째 파일은 파일 시스템의 루트에 도달할 때까지 실행 중인 스크립트의 디렉터리와 각 상위 디렉터리를 검색하여 찾습니다.

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

  4. 글로벌 ~/.rbenv/version파일. 전역 명령을 사용하여 이 파일을 수정할 수 있습니다 rbenv. 글로벌 버전 파일이 존재하지 않으면 "시스템" Ruby를 사용하려는 것으로 간주됩니다. 즉, 해당 버전 이 경로에 없으면 rbenv모든 버전을 실행합니다 .rbenv

.ruby-version그런 다음 이 명령을 사용하여 디렉터리에 파일과 Ruby 스크립트를 만들 수 있습니다.

$ rbenv local 1.9.3-p327

관련 정보