rvm을 사용하여 루비 1.9.2-p0을 최신 패치 수준으로 어떻게 업그레이드합니까?


116

내 현재 버전의 루비는 ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]rvm을 사용하여 최신 패치 수준으로 업데이트하고 싶습니다. 어떻게 할 수 있습니까?

답변:


163

먼저 .NET을 실행하여 RVM 설치를 업데이트하십시오 rvm get stable.

새 RVM 버전을 실행하고 있는지 확인하려면 실행 rvm reload(또는 새 터미널 열기)해야합니다.

완료되면 RVM에를 실행하여 설치할 수있는 루비 버전을 나열하도록 요청할 수 있습니다 rvm list known.

이제 출력에 다음이 표시됩니다.

# MRI Rubies
...
[ruby-]1.9.2[-p320]
...

패치 수준 주변의 대괄호는 이것이 현재 루비 1.9.2에 대한 RVM의 기본 패치 수준임을 나타냅니다.

마지막으로 새 루비 버전을 설치하려면 실행 rvm install 1.9.2하고 컴파일 될 때까지 기다리십시오!


29
오류 가 발생하는 사람들을 위해 : rvm 업데이트가 제거되었습니다. rvm get latest/ rvm get head지금 rvm을 업그레이드하는 올바른 방법입니다.
jibiel

98

루비 인터프리터를 업그레이드 하고 기존 gemsets을 계속 :

$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y

1.9.2의 최신 안정 릴리스로 교체합니다. 이것은 혼란을 방지합니다.

댓글 (@Mauro, @James, @ACB) 덕분에 몇 가지 추가 유용한 팁

$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby

3
또한 rvm list known업그레이드 할 수있는 사용 가능한 루비 버전을 볼 수 있습니다.
James Chevalier 2012

편집 @Mauro Nidola에 의해 제안 "$ RVM은 1.9.2은 1.9.2-P0는 1.9.2-P0 1.9.2 업그레이드 $ RVM로 변경해야 업그레이드"
iDev

@ACB의 댓글을 볼 수 없습니다. 변경하겠습니다. 담당자가 다시 확인하지 않아도된다고합니다. 나는 또한 James 코멘트로 업데이트하고 있습니다
oma

@oma, 저는 다른 기술에서 왔습니다. 그래서 당신은 그것을 다시 확인해야 할 수도 있습니다. 잘못된 편집으로 거부 된 누군가가 제안한 편집입니다. 이 stackoverflow.com/review/suggested-edits/1365082를 확인하십시오 . 이상적으로 그는 댓글로 게시 했어야했고 대신 내가 그를 대신해 썼습니다.
iDev

34

첫 번째 RVM 업데이트 :

rvm get stable

그런 다음 Ruby 버전을 업데이트합니다.

rvm upgrade 2.0.0

모든 질문에 대해 예를 선택하십시오.

Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y

gem을 최신 버전으로 업데이트하려면 다음을 수행 할 수 있습니다.

rvm all do gem update

편집 : 나는 오늘 루비 2.0.0의 최신 버전에서 이것을했습니다 (루비 -2.0.0-p195에서 ruby-2.0.0-p353으로 업데이트했습니다). 그 후 gem을 업데이트하려고 할 때 분할 오류가 발생했습니다. 이는 gem이 ruby-2.0.0-p195 용으로 설치되었고 일부는 p353과 호환되지 않기 때문에 발생합니다.

이제 호환되지 않는 gem을 찾을 수 있지만 가장 쉬운 해결책은 설치된 모든 gem을 제거하고 다시 설치하는 것입니다. gems/ruby-2.0.0-p353에있는 디렉토리를 간단히 제거 했습니다 /usr/local/rvm. 당신을 위해 다른 곳이 될 수 있습니다.

그런 다음 gem install bundler각 rails 앱을 실행했습니다 bundle install.


16

이렇게 :

rvm update; rvm reload
rvm install ruby-1.9.2-p136 
rvm --default ruby-1.9.2-p136

3
나는이 대답을 좋아한다. 루비 버전을 업그레이드하면 rvm 사용 목적이 무너진다고 생각합니다. p0과 함께 별도의 버전을 설치 한 다음 새 버전을 기본값으로 선언하는 것이 우아해 보입니다.
Tass

2
특정 Ruby 버전에서 취약점이 발견되는 경우와 같은 보안상의 이유로 최신 패치로 업그레이드해야하는 경우가 있습니다.
Asad R.

2

위키 의 페이지를 따라 가면 모든 패치 레벨을 설치할 수 있습니다 .

또한 각 루비는 독립적이므로 실제로 '보석을 업그레이드하고 유지'하는 것이 아니라 새 패치 버전을 설치 한 다음 새 루비 환경에 gem을 설치합니다.

이것은 gemset이 작동했을 수도 있지만 사용하지 않습니다.

시간이 지난 경우를 대비하여 rvm도 업데이트하는 것을 잊지 마십시오.


2

npad의 답변은 확실히 기본 사항을 제시하므로 해당 단계를 반복하지는 않지만 여기에 사용을 제안하는 몇 가지 답변이 있습니다 rvm upgrade. rvm이 옵션을 제공한다는 것을 알고 있지만 약간 위험한 옵션입니다.

IMO, 더 안전하고 "rvm 방식"은 먼저 rvm install새 루비 버전을 사용한 다음 rvm gemset copy명령을 사용 하여 gemset (s)을 새 루비 버전 (예 : rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset. 그런 다음 프로젝트를 새로 복사 한 gemset을 사용하도록 쉽게 전환하고 ( .rvmrc프로젝트 디렉토리에 있는 파일을 사용하는 것이 좋습니다 ) 코드가 실패하는지 확인할 수 있습니다. 그렇다면 이전 루비 버전으로 다시 변경하는 것은 gemset을 전환하는 문제 일뿐입니다.

그러나 gemsets를 사용하지 않더라도 (이 질문에 rails에 태그를 붙인 이후로 사용한다고 가정하지만)를 사용 rvm upgrade하면 예기치 않은 오류가 발생할 수 있습니다. 코드가 깨지면 이제 이전 버전을 다시 설치해야합니다. 조금 더 시간을내어 깨끗한 방식으로 수행하십시오.


1

나는 그것의 rvm install 1.9.2-head

사용 가능한 루비를 볼 수 있습니다. rvm list known


head최신 패치 수준 을 얻을 수 있습니까? 나는 그것이 가장 최신 버전이라고 생각했는데, 이는 불안정하고 실험적인 것이 될 수 있음을 의미합니다.
Lan

아하, 사실. 최신 버전과 패치 수준을 혼합했습니다.
Heikki

1

이 블로그 게시물은 도움이 될 것입니다. http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development

대머리:

rvm get head
rvm reload

wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched

이 이론적으로 질문에 대답 수 있지만, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Bill the Lizard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.