rvmrc 또는 ruby-version 파일을 사용하여 RVM으로 프로젝트 gemset을 설정 하시겠습니까?


230

Ruby 버전 관리자 인 RVM 을 사용하여 각 Rails 프로젝트에 대해 Ruby 버전과 gem 세트를 지정합니다.

프로젝트 디렉토리에 .rvmrc들어갈 때마다 Ruby 버전과 gemset을 자동으로 선택 하는 파일이 cd있습니다.

RVM 1.19.0을 설치 한 후 메시지가 나타납니다

당신이 사용하는 .rvmrc그것이 느린, 신뢰가 필요하고 당신이로 전환 할 수 있습니다, 다른 루비 관리자와 호환되지 않습니다, .ruby-version사용 rvm rvmrc to [.]ruby-version또는이 경고를 무시 rvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc, .rvmrc무시, RVM 1 RVM 2의 기본 프로젝트 파일 계속됩니다 모든 파일에 대한 경고가 실행 rvm rvmrc warning ignore all.rvmrcs됩니다.

.rvmrc파일을 계속 사용해야합니까, 아니면 파일로 전환해야 .ruby-version합니까? 어느 것이 최적입니까? 그 결과는 무엇입니까?

답변:


372

귀하의 경우 .rvmrc파일을 사용자 정의 쉘 코드를 포함하고, 계속 .rvmrc당신이 어떤 쉘 코드를 포함 할 수있다.

루비 버전을 전환하는 것이 유일한 목표라면 rbenv 또는 chruby.ruby-version 와 같은 다른 루비 버전 스위처가 지원 하는 것을 사용 하십시오 . 이 파일은 루비 버전의 이름 일 뿐이므로 어떤 식으로도 실행되지 않으므로 신뢰하지 않아도됩니다.

사용하는 경우 파일에 .ruby-version포함시킬 수 @gemset있지만 다른 스위처와 호환되지 않습니다. 호환성을 유지하려면 .ruby-gemset다른 도구에서 무시되는 별도의 파일에 gemset 이름을 사용하십시오 (와 함께 만 작동 함 .ruby-version) .

예를 들어, 간단한 경우 .rvmrc:

rvm use 1.9.3@my-app

다음과 같이 변환 할 수 있습니다 .ruby-version.

1.9.3

그리고 .ruby-gemset:

my-app

.rvmrc파일이 다른 프로젝트 구성 파일보다 우선 하므로 파일 을 제거하십시오 .

rm .rvmrc

9
모든 응용 프로그램이 최신 .ruby-version 및 .ruby-gemset 파일을 아직 지원하지는 않지만 .rvmrc 만 지원합니다. (특히 RubyMine). 이것은 물론 새로운 시스템으로 옮길 것인지의 선택에 영향을 미칩니다. 나는 이것을 추적하는 데 많은 시간이 걸렸기 때문에 이미 이것을 대답으로 지적했습니다. 그러나 내 대답은 어떤 이유로 제거되었습니다 ..
giorgio

2
이에 대한 "공식"문서에 대한 링크가 있습니까? 나는 이것이 RVM 사이트에서 어떻게 작동하는지 조사하기 시작했지만 새로운 rvmrc 파일로 그것에 대한 모호한 언급을 발견했지만 이것이 어떻게 작동하는지에 대해서는 아무것도 알지 못했습니다.
eirc

2
그것은 완전히 문서화, 그러나 여기에서 우리가 이미 가지고있는 것입니다 아니에요 rvm.io/workflow/projects/#ruby-versions을
mpapis

4
1.9.3-p194를 .ruby 버전에 넣으면 작동하지 않습니다. 위의 문서를 참조 rvm --create --ruby-version use 1.9.3-p194하여 작업을 수행하고 내용은 실제로ruby-1.9.3-p194
Jinzhao Huo

2
현재 버전의 RubyMine은 .ruby 버전 스타일을 지원합니다. 6.3.2로 확인할 수 있습니다
BeepDog

76

.rvmrc에서 .ruby-version + .ruby-gemset으로 빠르고 쉽게 전환하는 방법

rvm rvmrc to .ruby-version

1
사실이지만 [] 주위에 있습니다. 내가 알아 내지 못한 어떤 이유로. (어쩌면 이것은 내가 익숙하지 않은 컨벤션 일 것입니다.) 나는 실제로 메시지를 봤고 어색한 문구와 []가 실제로 무엇을 실행할지 확신하지 못했기 때문에이 대답을 찾았습니다.
zem

2
@zem [] in [.]ruby-version점이 선택 사항 임을 나타냅니다 . 대괄호는 선택 사항을 나타내는 일반적인 규칙입니다 (일반적으로 루비가 아님). 점없이 "ruby-version"이라는 파일을 사용할 수 있으며이 역시 사용됩니다. 이 기능은 기본적으로 "도트 파일"을 숨기는 시스템에서 파일의 가시성을 높이고 자 할 때 유용합니다. 그래도 명확하지 않다는 데 동의합니다.
매트 깁슨

그것은 말한다Could not load .rvmrc
Abdullah

4

짧은 방법으로 .ruby-versionand .ruby-gemset파일을 작성하려면 다음 과 같은 명령을 사용할 수 있습니다.

rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy

2

둘 다 시도 할 수 있습니다. 프로젝트의 루트로 이동하여 .rvmrc 파일 ( touch .rvmrc)을 만든 다음 편집 rvm use 2.0.0-p451@your_gemset하십시오 (루비 버전 및 젬셋 이름). 이 파일을 저장 한 후 다음 명령을 입력 할 수 있습니다.

cd ../your_project( your_project 디렉토리에 있으며) .rvmrc 의 스크립트가 실행됩니다.

RVM은 루비 버전 사용을 권장합니다. 이 명령을 실행하여 .rvmrc에서 .ruby-version으로 전환 할 수 있습니다

rvm rvmrc to .ruby-version

그것이하는 일은 .ruby-version.ruby-gemset 라는 2 개의 파일을 만들고이 줄을 추가하는 것입니다

ruby-2.0.0-p451 .ruby 버전

your_gemset .ruby-gemset에서

원하는 경우 수동으로 시도 할 수 있습니다. :)


0

다음을 사용하여 rvm을 설치하십시오.

\curl -sSL https://get.rvm.io | bash -s stable --rails

다른 루비 버전을 설치하십시오.

rvm install 1.8.7
rvm install 1.9.2

특정 루비 버전으로 전환하십시오. 예를 들어 1.8.7 :

rvm use 1.8.7

보석을 만들려면 :

rvm gemset create project_gemset

보석 세트를 사용하려면 :

rvm gemset use project_gemset
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.