2011-12-28 97 views
0

我想在Fedora 13上使用rvm將Ruby升級到1.8.7(是的,我知道這是舊的)。我有點新Ruby世界,但是這是我迄今所做的:如何在Fedora上升級Ruby

~$ 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版本,它甚至不會建立它。我注意到在/usr/local/rvm/gems/ruby-1.8.7-p302...中沒有bin目錄,這是異常的,因爲Ruby是一個二進制文件和全部文件。所以我雙重檢查的文檔,發現Fedora軟件包列表安裝:

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正確構建一個Ruby二進制文件。奇怪的是,運行rvm use 1.8.7 --default仍然不更新默認的Ruby版本,所以我所做的:

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後啓動一個新的shell? – sunkencity 2011-12-28 20:51:27

+0

@sunkencity,是的,沒有影響 – Cerin 2011-12-28 21:28:58

+0

請將'rvm info'的輸出附加到您的問題中。默認情況下,RVM會將Rubyies安裝到您的'〜/ .rvm'中,因此看起來您正在進行系統範圍的安裝。這是你的意圖嗎?另外,您應該通過執行'rvm get head'來確保RVM版本是最新版本。關於加載包,RVM和yum或apt-get不是直觀的適合。我建議使用http://rvm.beginrescueend.com/rvm/install上的說明進行安裝,因爲很高興知道yum應該做什麼。你可以使用'rvm requirements'來查看你需要安裝哪些軟件包。 – 2011-12-28 21:53:18

回答

0

請務必在您運行rvm use 1.8.7同一shell中運行ruby -v。我不確定--default選項的功能是什麼,所以請嘗試關閉它。

+0

結果沒有區別。我更新了我的問題,使其更清楚。 – Cerin 2011-12-28 20:46:07

0

不積極,這可能是一些事情。我的猜測是這個。

您可能需要切換鏈接器以指向新安裝(/ usr/bin /中的「快捷方式」文件)。找到你安裝你的新版本的紅寶石的地方。如果/ usr/bin /中的「ruby」鏈接程序沒有指向這個新安裝,請右鍵單擊ruby可執行文件並創建一個鏈接,並將其放入/ usr/bin /,以創建一個新鏈接。

這是我唯一的猜測,我安裝了新版本的python時遇到了這個問題。

+0

我對製作手動符號鏈接猶豫不決,因爲1)它應該自動完成這樣的事情,所以我會忽略一些可能會破壞我使用rvm的內容,2)我不想破壞我的1.8.6安裝,因爲我可能仍然需要它。 – Cerin 2011-12-28 20:47:51

+0

啊,我明白了。這就說得通了。當我安裝python的時候,這是一種熱衷分佈,所以它不是通過yum或其他任何東西。祝你好運。 – tylerthemiler 2011-12-28 20:56:54