2011-12-28 7 views
0

rvmを使用してFedora 13で1.8.7にRubyをアップグレードしようとしています。私は、Rubyの世界に少し新しいんだけど、これは私がこれまで何をやったかです:Rubyの1.8.6はまだデフォルトのバージョンである以外Ruby on Fedoraをアップグレードするには

~$ 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.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のバイナリを構築しました。奇妙なことに、デフォルトのRubyのバージョンを更新していない、まだrvm use 1.8.7 --defaultを実行しているので、私はやった:

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をインストールした後に新しいシェルを起動しますか? – sunkencity

+0

@sunkencity、yes、no effect – Cerin

+0

あなたの質問に 'rvm info'の出力を追加してください。デフォルトでは、RVMはRubyを '〜/ .rvm'にインストールするので、システム全体のインストールを行っているようです。それはあなたの意図ですか?また、 'rvm get head'を実行することで、RVMのバージョンが最新であることを確認する必要があります。パッケージのロードに関しては、RVMとyumまたはapt-getは直感的なものではありません。私はyrのやり方を知っておいてほしいので、http://rvm.beginrescueend.com/rvm/installの指示に従ってインストールすることをお勧めします。 'rvm requirements'を使って、インストールする必要があるパッケージを知ることができます。 –

答えて

0

あなたがrvm use 1.8.7を実行した同じシェルでruby -vを実行してください。私は--defaultオプションが何をしているのか分からないので、それを離してみてください。

+0

結果に違いはありません。これをもっと明確にするために質問を更新しました。 – Cerin

0

これは肯定的ではありませんが、これはいくつかの可能性があります。私の推測はこれです。

新しいインストールを指すようにリンカを切り替える必要がある場合があります(/ usr/bin /の「ショートカット」ファイル)。新しいバージョンのrubyをインストールした場所を探します。/usr/bin /にある "ruby"リンカーがこの新しいインストールを指していない場合は、ruby実行可能ファイルを右クリックしてリンクを張って、新しいリンクを作成して/ usr/bin /に入れます。

これは私の唯一の推測ですが、新しいバージョンのPythonをインストールしたときにこの問題が発生しました。

+0

手動シンボリックリンクを作成することに躊躇しています。なぜなら、1)それは自動的にそのようなことをしていたはずですから、私はrvmの使用によって壊れている可能性があるものを無視していました.2)私はまだそれが必要かもしれないので、1.8.6のインストール。 – Cerin

+0

ああ私が参照してください。それは理にかなっている。私がPythonをインストールしたとき、それはenthoughtディストリビューションだったので、yumやそれに類するものではありませんでした。運が良かった。 – tylerthemiler

関連する問題