我想在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