如何在Fedora上升级Ruby

时间:2011-12-28 20:02:51

标签: ruby rvm fedora

我正在尝试使用rvm在Fedora 13上将Ruby升级到1.8.7(是的,我知道它已经老了)。我对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]

一切似乎运行正常,但Ruby 1.8.6仍然是默认版本。

将缺省Ruby版本切换为1.8.7时,我还缺少哪些其他步骤?

编辑:似乎在rvm中有一些非常不直观的行为。如果你没有安装某些软件包,那么当你使用rvm安装一个特定的Ruby版本时,rvm不仅不会构建或安装那个Ruby版本,它甚至不会告诉你它没有构建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

2 个答案:

答案 0 :(得分:0)

请务必在运行ruby -v的同一个shell中运行rvm use 1.8.7。我不确定--default选项是做什么的,所以试着把它关掉。

答案 1 :(得分:0)

不积极,这可能是一些事情。我的猜测是这样的。

您可能需要将链接器切换到指向新安装(/ usr / bin /中的“快捷方式”文件)。找到您安装新版本ruby的位置。如果/ usr / bin /中的“ruby”链接器没有指向这个新安装,请通过右键单击ruby可执行文件创建一个新链接并建立一个链接,把它/ usr / bin /.

这是我唯一的猜测,当我安装新版本的python时遇到了这个问题。