3 ms·
The RVM 2.0 plan doc[1] doesn't seem touch on one of my serious problems with RVM: how will it implement ruby environment integration with the shell? Specifica
by saidajigumi 13y ago
The RVM 2.0 plan doc[1] doesn't seem touch on one of my serious problems with RVM: how will it implement ruby environment integration with the shell? Specifically, I've found that RVM's use of shell functions is horribly brittle in some important cases. So much so that I've banished it from all environments that I control (to date, in favor of rbenv and/or ruby-build).
For comparison, rbenv simply needs ~/.rbenv/bin and ~/.rbenv/shims added to $PATH. I'm all for magic when it's seamless[2], but I've not found that to be the case with RVM.
Using PATH makes it quite clear in any given execution context whether rbenv is managing a command.
[1] https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4oeLxJmU3Q5FiCNT7nTAc/edit https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4o...
[2] By "magic", I mean underlying complexity that creates practical simplicity.
- halostatue 13y agoAs I said elsethread, I haven't yet considered production, but I just switched to chruby for my development environment rather than rbenv. I still use ruby-build when I need (I just needed a version not supported by ruby-install), but I have switched wholesale to chruby, and having found chgems in researching a different answer, I may look at using that as well. chruby really is the simplest possible thing you can do to solve this problem, and in combinations with chgems, it solves isolation better than RVM does without the brittleness of the shims that rbenv has (ultimately why I moved away from rbenv). Installs are substantially easier with ruby-install and/or ruby-build, although RVM is probably better at this part in general. Extract that out from RVM and I'd consider using it.
- regularfry 13y agoI'd argue that you don't need any of rvm/rbenv/chruby in production.
- halostatue 13y agoI'd agree. Something as simple as chruby makes having multiple interpreter/gemset versions easily usable from something like cron without introducing a lot more overhead, though, or having to remember to put all the variables &c. in place everywhere you need them.