Hacker News new | ask | show | jobs
A story of PROMPT_COMMAND and RVM (niczsoft.com)
15 points by mpapis 4926 days ago
2 comments

RVM can really bite you if you are not careful. And it can really mess things up https://github.com/wayneeseguin/rvm/issues/1234

Right now I am looking for an alternative on my servers, because I need different Ruby versions across projects.

It is very interesting history following the development of RVM, to Rbenv and now also Chruby. It seems like 37signals is going the way of Rbenv.

It will be interesting to follow. It seems like a really fundamental problem, that need to be solved for us to build good software.

Running different versions of Ruby on a single server requires a lot of attention to detail. I used to do it, but I didn't use an automated tool like RVM. RVM is great for switching environments, but it is unnecessary when all you need are a static set of environments that change infrequently. Check out ruby-build for this purpose.

In the end, I found the trouble of running two reliable Ruby environments in production did not offset well against the cost of either updating applications to work with the same Ruby version, or running separate virtualized environments at the OS layer. The time spent debugging and updating our environment was too great in comparison to the additional cost of upgrading our software to all run on Ruby 1.9.

Do any of these behave like Python's virtualenv? I really like how virtualenv works, and if I ever want to get semi-serious with Ruby, I'd like to have something similar.
Not for managing the Ruby version itself, but I wrote gemenv (http://github.com/regularfry/gemenv) to be able to have the same style of contained package management that virtualenv offers. There's no reason you couldn't ./configure --prefix=gemenv and build a ruby binary into it as well.
You can use virtualenv to manage the python version, also. If you have multiple versions of python installed, say python27 and python3, using the --python option of virtualenv you can tell it which executable you want to create the virtualenv with.

Honestly I always felt the various multi-ruby helpers were a bit too much for me. I just compiled my rubies my self setting --prefix during configure and then would just adjust a few env variables to set up things like PATH and GEM_HOME and had no issues.

That's what I mean - I specifically wanted gemenv not to worry about installing rubies. It does one job, and one job only :-)
thanks for mentioning - added to my list https://github.com/wayneeseguin/rvm/blob/master/help/alt.md
Bundle install --binstubs --shebang ruby-local-exec --path .bundle does pretty much the same thing.

Assuming you're using rbenv and have all the correct paths.

The issue you mention was a duplicate and was fixed already.
This post is 30% technical, 70% politics.

Essentially, the author is upset that the author of rbenv[0] decided to criticize rvm instead of opening tickets and whatnot.

The author then goes on to blame the rbenv author for the year long delay in implementing PROMPT_COMMAND in rvm.

> We could have this code available for rvm users one year ago, possibly we could have a lot more of good solutions if the problems were discussed instead of throwing accusations as it was done by rbenv author.

[0]: https://github.com/sstephenson/rbenv

It makes sense to raise the issue before blaming about it. That's what Open Source is supposed to be.
There comes a point where you think "I disagree with so many of the design decisions this project took that I don't have the energy to chase up every last consequence." Well before that point it becomes reasonable to kick off another project to flesh out your own ideas. Competition is good.
Probably why it's titled "A story…"