2011-12-28 96 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