Я пытаюсь обновить Ruby до 1.8.7 на Fedora 13 (да, я знаю, что он старый), используя rvm . Я немного новичок в мире 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