rvmについて一言
rvmっていうのがあります。Rubyを切り替えるアレですね。 便利そうだしみんな使ってるから使ってみようって思った方、ちょっと待って下さい。rvmのソース見たことありますか? 僕はいくつかパッチをContributeした経験があるのですがrvmにはいくらか問題があります(rvmを使わなくなって久しいので現状とは異なるかもしれません)。
- バージョンナップが頻繁におこる。masterの追いかけをしなくちゃいけない。
- いきなりグワっと構造が変わることが多くてアップデートが怖い。
- いろいろおせっかい。
- 結構バギーでいろんなゴミが残ったりすることが多い。
とまあ、そんな感じで、ちょっと色々と問題を孕んでるんですね。 当時はgemをプロジェクトごとに管理できるBundlerがまだまだな感じで、rvmのgemsetを使って環境切り替えをしたりしていた記憶もあるのですが、もうBundlerはデファクトになったし、やっぱりrvm自体がオワコンだと思うんです。
代替の方法は一杯あって、Rubistの数だけ存在すると聞いていますが、人によってはruby
のsymlink張替えスクリプトなどで対応していたりしてると思います。僕はやはり自作のrubiesというツールでPATH
等を書き換えて切り替えています。
rubiesってなんじゃらほい
以下のことができるRubyと僅かなシェルスクリプトで書かれたすごく小さいRuby環境切り替えツールです。
ruby
を切り替える。- RubyGemsの環境を切り替える。
また、以下のことはできません。自分で頑張って下さい。
- Rubyのビルド、インストール
- RubyGemsのインストール
- その他管理系の何か
Get Started!
簡単な使い方はこんな感じで、これはRuby Enterprise Editionを切り替えて使う例。今すぐ始められます!
-
レポジトリ全体を
~/.rubies
にcloneする。$ git clone git://github.com/niw/rubies.git ~/.rubies
-
~/.rubies/src/rubies.sh
を~/.bashrc
とか~/.zshrc
でsource
。source "$HOME/.rubies/src/rubies.sh"
-
ruby
を~/.rubies/#{name}
に自分でソースからmakeして入れる。$ tar xzvf ruby-enterprise-1.8.7-2009.10.tar.gz $ cd ruby-enterprise-1.8.7-2009.10 $ ./installer -a \ "$HOME/.rubies/ruby-enterprise-1.8.7-2009.10"
-
~/.rubies
内でシンボリックリンクを張って別名も作れます。$ cd ~/.rubies $ ln -s ruby-enterprise-1.8.7-2009.10 ree
-
rubies
コマンドでruby
を切り替え。$ rubies ree
さらに
Rubyのビルドに関してはMac OS Xで且つHomwbrewを使うこと前提になっていますが、configure
用のスクリプト等も入れてあります。
あと.rubiesrc
ファイルを使ってプロジェクトごとにruby
を切り替えるとかいうこともできます。詳しくはgithubのレポジトリをご覧ください。