Rubyの異なるバージョンをインストールして使用する方法は?


15

RubyとRailsの両方の異なるバージョンを使用するさまざまな本からRailsを学習しています。現在、Mac OS X Snow Leopard(の/usr/bin)にruby 1.87がインストールされていますが、別のrailsアプリケーションにはruby 1.9も使用する必要があります。

誰でも私にこれを機能させる方法を教えてくれますか?私はこれが初めてなので、できるだけ多くの指示をいただければ幸いです。

回答:


20

「Rubyバージョンマネージャ」は2つあり、次の中から選択できます。

これらにより、同じシステム上で複数のバージョンのRubyを維持できます。バージョンマネージャをインストールし、独自のRubyバージョンをインストールしたら、システムのRubyとそのGemsをいじる必要がなくなります。これが最大の利点です。もうsudo!権限エラーやGemの競合はなくなりました。

どれを選べばいいですか?

どちらも同じことをしますが、異なる哲学に従います。選択はあなた次第です。

個人的にrbenvはその単純さをお勧めします。私は何年もそれを使用しており、それは常にうまくいきました。以前はRVMをお勧めしていましたが(この回答の以前のバージョンでは実際にそれが言及されていました)、それを理解するのは難しいと感じています。

どうすればインストールできますか?

選択した場合rbenv

  • インストール手順に従います
  • インストール ruby-build
  • バージョンrbenv install x.x.xがどこでx.x.xあるかを実行します(使用rbenv install --list可能なバージョンを確認するために使用します
  • 実行rbenv global x.x.xしてグローバルRubyバージョンを変更する

RVMを選択した場合:

  • 安全なインストール方法を使用する
  • インストール手順を読みます —おそらくシングルユーザー構成が必要です
  • 使用rvm list known可能なルビーを一覧表示し、実行rvm install x.x.xして特定のバージョンをインストールします。
  • rvm use x.x.x --defaultデフォルトのRubyを変更するために使用します

1
rbenvも参照してください。
user1686 2011

@grawity別の回答を投稿してみませんか?代替案があるのは良いことですが、実際にはrbenvまだ検討していません。
slhck 2009

どうもありがとう、それはRailsのバージョン間の切り替えにも役立ちますか?私が使用しているさまざまな本は3.05(私は思う)と3.1を採用しており、問題を引き起こしています...
Michael

あなたが書いた(そしてrvmサイトにもある)インストール行を試したところ、エラーメッセージが表示されました:bash:行152:git:コマンドが見つかりませんbash:行154:git:コマンドが見つかりません
Michael

ああ、gitもちろん必要です。すみません、それを忘れました。OS Xインストーラーで Gitをインストールできます(上部で最新バージョンを選択するだけです)。
slhck 2009

7

rbenvは少なくとも独自の答えに値すると思います。

rbenvのファンとRVMのファンの間には常に戦いがありますが、個人的にはrbenvの方がずっと好きです。Sam Stephenson(作者)が述べているように、rbenvはRubyバージョンの切り替えのみに関係しています(RVMのほうがはるかに多くのことを行います)。

OS Xでは、試してみるのは特に簡単です。Githubページの優れたインストール手順に従ってください(Homebrewがインストールされている場合は、基本的にはbrew install rbenv ruby-build)。

Railsのバージョンを切り替えることに関して、私はかつて私があなたに興味があることについての記事を書きまし


1
RVMとの主な違いとrbenvを選択する理由について、rbenvの作者の簡単な説明を次に示します。rbenvの単純さは、RVMから移行する主な理由でした。アプリケーション固有のgemのセットの管理は、BundlerでIMOを実行する方が適切です。そのためにRubyバージョンマネージャーは必要ありません。
Jochem Schulenklopper、2015年

まさに–アプリケーション固有の宝石のセットを管理することは、バンドラーの仕事です。私は、バージョンマネージャーに関連付けられたgemsetsのファンではありません。
マイケルTrojanek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.