2011-12-28 9 views
0

rvm을 사용하여 Fedora 13에서 Ruby를 1.8.7로 업그레이드하려고합니다. 나는 루비의 세계에 약간의 새로운 해요,하지만 이것은 내가 지금까지 한 일이다Ruby on Fedora를 업그레이드하는 방법

~$ yum -y install rubygem-rvm 
... 
~$ rvm-install 
... 
~$ rvm install 1.8.7 
/usr/local/rvm/rubies/ruby-1.8.7-p302, this may take a while depending on your cpu(s)... 

ruby-1.8.7-p302 - #fetching 
ruby-1.8.7-p302 - #extracted to /usr/local/rvm/src/ruby-1.8.7-p302 (already extracted) 
ruby-1.8.7-p302 - #configuring 
ruby-1.8.7-p302 - #compiling 
ruby-1.8.7-p302 - #installing 
ruby-1.8.7-p302 - #rubygems installing to ruby-1.8.7-p302 
ruby-1.8.7-p302 - adjusting #shebangs for (gem). 
ruby-1.8.7-p302 - #importing default gemsets (/usr/local/rvm/gemsets/) 
Install of ruby-1.8.7-p302 - #complete 
~$ rvm use 1.8.7 --default 
Using /usr/local/rvm/gems/ruby-1.8.7-p302 
~$ ruby -v 
ruby 1.8.6 (2010-09-02 patchlevel 420) [x86_64-linux] 
~$ rvm use 1.8.7 
Using /usr/local/rvm/gems/ruby-1.8.7-p302 
~$ ruby -v 
ruby 1.8.6 (2010-09-02 patchlevel 420) [x86_64-linux] 

모든 루비 1.8.6이 여전히 기본 버전을 제외하고, 잘 실행 것으로 보인다.

기본 Ruby 버전을 1.8.7로 바꾸려면 누락 된 다른 단계는 무엇입니까?

편집 : rvm에는 정말 직관적이지 않은 동작이있는 것 같습니다. 특정 패키지를 설치하지 않으면 rvm을 사용하여 특정 Ruby 버전을 설치할 때 rvm은 해당 Ruby 버전을 빌드하거나 설치하지 않을뿐만 아니라 Ruby를 빌드하지 않았다고 말할 수도 없습니다. 나는 /usr/local/rvm/gems/ruby-1.8.7-p302에 bin 디렉토리가 없다는 것을 알아 차렸다. 보통은 루비가 바이너리 다. 그래서 나는 두 번 문서를 확인하고 설치하는 페도라 패키지의 목록을 발견 그 후

yum install -y bash curl git 
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel 
yum install -y iconv-devel 

가 설치된, rvm install 1.8.7을 실행 올바르게 루비 바이너리를 만들었습니다. 이상하게도, 기본 루비 버전을 업데이트하지 않습니다 아직 rvm use 1.8.7 --default를 실행 해 내가 그랬어 :

cp /usr/bin/ruby /usr/bin/ruby-1.8.6 
rm -f /usr/bin/ruby 
ln -s /usr/local/rvm/rubies/ruby-1.8.7-p302/bin/ruby /usr/bin/ruby 
+0

rvm을 설치 한 후 새 셸을 시작 하시겠습니까? – sunkencity

+0

@sunkencity, yes, no effect – Cerin

+0

'rvm info'의 결과를 질문에 추가하십시오. 기본적으로 RVM은'~/.rvm'에 Ruby를 설치할 것이므로 시스템 전체 설치를하고있는 것으로 보입니다. 그게 당신의 의도인가요? 또한'rvm get head'를 실행하여 RVM 버전이 최신 버전인지 확인해야합니다. 패키지로드와 관련하여 RVM 및 yum 또는 apt-get는 직관적 인 적합성이 아닙니다. 나는 yr이 무엇을 했어야하는지 알고 있기 때문에 http://rvm.beginrescueend.com/rvm/install에서 지시 사항을 사용하여 설치하는 것이 좋습니다. 'rvm requirements'를 사용하면 어떤 꾸러미를 설치해야하는지 알 수 있습니다. –

답변

0

rvm use 1.8.7를 실행 같은 쉘에서 ruby -v를 실행해야합니다. --default 옵션이 무엇을하는지 잘 모르겠습니다.

+0

결과에 차이가 없습니다. 이 질문을 명확하게하기 위해 질문을 업데이트했습니다. – Cerin

0

양성이 아니라면 몇 가지가있을 수 있습니다. 내 추측은 이것이다.

새 설치 (/ usr/bin /의 "바로 가기"파일)를 가리 키도록 링커를 전환해야 할 수도 있습니다. 새 버전의 루비가 설치된 위치를 찾으십시오./usr/bin /에있는 "ruby"링커가이 새로운 설치를 가리 키지 않는다면, 루비 실행 파일을 오른쪽 클릭하고 링크를 만드십시오./usr/bin /.

그건 내 유일한 추측이야, 내가 파이썬의 새로운 버전을 설치했을 때이 문제가 생겼다.

+0

수동 심볼릭 링크를 만드는 것에 주저합니다. 왜냐하면 1) 자동으로 이와 같은 작업을 수행 했어야했기 때문에 rvm을 사용하여 손상되었을 가능성이있는 부분을 무시할 것이고 2) 1.8.6 설치가 필요합니다. – Cerin

+0

아하네. 알았어. 그건 의미가 있습니다. 파이썬을 설치했을 때, 그것은 배포판 이었기 때문에, yum이나 그와 같은 것을 통해서가 아니 었습니다. 행운을 빌어 요. – tylerthemiler