2959


開発環境Macを乗り換えたのでRuby環境の刷新を行っています。  
RVMかRBEnvのどちらかを利用しようと思っていますが、それぞれの違いや長所を教えて下さい。  
これまではRVMを使っており、特に不便を感じていないのですがどうもRVMを離れてRBEnvに移行する人も少なくないなと感じています。

私自身の用途としてはRuby本体の開発は行いませんが、複数のRubyを切り替えて使います。  
Gemを開発することはたまにあります。

似た趣旨の質問が英語版にもありますが少し古いようです。

  * <https://stackoverflow.com/questions/9394338/how-do-rvm-and-rbenv-actually-work>


CC BY-SA 3.0
2015-01-02T14:21:16.313
2955
2018-05-16T08:42:57.633
2017-05-23T12:38:55.250
-1
452
question
ruby rvm rbenv
RVM と RBEnvの違いは？


RVM と rbenv の違いは

  * RVM には Ruby のインストール機能がついている（rbenv は [ruby-build](https://github.com/sstephenson/ruby-build) を使う必要がある）
  * RVM は cd を上書きする（rbenv は単純なシェルスクリプトによってつくられている）

という点があります。

RVM は単体で Ruby の環境が構築できますが、rbenv には Ruby のバージョン切り替えしかありません。そのため、`rbenv install`
コマンドで Ruby を簡単にインストールするためには [ruby-build](https://github.com/sstephenson/ruby-
build) のインストールが必要です。これは、OS X であれば [Homebrew](http://brew.sh/index_ja.html)
等のパッケージ管理システムを用いることで、 rbenv と同時にインストールすればさほど難しくありません。

また、RVM は cd を上書きしてしまうため、シェルの機能に手を加えることになります。rbenv
は単純なシェルスクリプトによってつくられており、シェルの機能を害されることがありません。シェルの機能を上書きされると、何かトラブルがあった際に原因の切り分けが困難になります。


CC BY-SA 3.0
2015-01-02T17:52:04.377
2959
2015-01-02T17:57:34.637
2015-01-02T17:57:34.637
724
724
2955
answer


RVMにはrubygemを管理するgemsetの機能がありますが、rbenvには(標準では)ありません。

rbenvに移行するならgemの管理はbundlerに一本化するか、rbenv-gemsetと言うプラグインを別に入れる必要があります。


CC BY-SA 3.0
2015-01-26T04:21:11.710
5303
2015-01-26T04:21:11.710
5793
2955
answer


rbenv の公式 Wiki に ["Why rbenv?"](https://github.com/rbenv/rbenv/wiki/Why-
rbenv%3F) という記事があります。これによると、RVM は以下のことを **します** が、rbenv は以下のことを **しません**
(現在の最新版である2017年2月の版から抜粋・編集・和訳しました)。

  * シェルに読み込まれること。rbenv は代わりに `$PATH` を使います。
  * `cd` のようなシェルコマンドをオーバーライドすること。
  * Ruby のバージョン以外についてのコンフィグ・ファイルを持つこと。
  * Ruby をインストールすること。rbenv では自前でインストールするか [ruby-build](https://github.com/rbenv/ruby-build) を使います。
  * gemset を管理すること。rbenv では [Bundler](https://bundler.io/) を使うか、使えなければ [rbenv-gemset](https://github.com/jf/rbenv-gemset) を使います。
  * 互換性のために Ruby ライブラリに変更を加えること。RVM では[いくつか](https://rvm.io/integration/bundler)の[ライブラリ](https://rvm.io/integration/capistrano)を使う際に注意が必要です。


CC BY-SA 4.0
2018-05-16T08:42:57.633
44018
2018-05-16T08:42:57.633
19110
2955
answer