我想在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
安裝rvm後啓動一個新的shell? – sunkencity 2011-12-28 20:51:27
@sunkencity,是的,沒有影響 – Cerin 2011-12-28 21:28:58
請將'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