I'm not sure it's worth stirring this up again, the different viewpoints are already clearly discussed at https://news.ycombinator.com/item?id=2059964, and the Debian Ruby maintainers have made several policy changes since then.
After trying to install a rails app on Ubuntu , frankly the entirety of ruby and its notion of how a mature language should be packaged is pure amateur hour. Rvm is a mess, the various versions are a mess. For example v1.9.3 appears to be considered the same as 1.9.1, and random bugs appear when moving between versions. WTF?
You never use tools like rbenv or rvm on production servers. They exist so that mac devs can be running the same versions of ruby found in the Linux distros.
I would argue the opposite: you should always use rvm (or similar) in production. I've done this for many projects, it's great to have the same ruby version and patchset in development, CI, staging, and production. rvm is also well supported in capistrano and jenkins.
Well, I use Debian for development and production, and I would never use Debian ruby packages on production. With the Debian packages, you have no idea what version you're getting. And then gem installs can only be done by the root user, not the deploy user. What a mess.
Godspeed Leader Nussbaum! I hope that your first action is to find a replacement for whoever was responsible for the debian-ruby disaster.
I haven't used Ruby much, but the Debian approach works well for me in Perl. I like that instead of pulling random packages off CPAN with no testing, I can depend on a Debian package of a Perl module, which is integration-tested with the rest of the distribution and release-managed, especially in terms of which other packages and versions it works with.
I'm not sure why most tutorials suggests installing RVM. You don't need rvm unless you are a running multiple rubies. You can install v1.9.3 from apt-get install ruby1.9.3. And a production server shouldn't run RVM. RVM just adds unnecessary complexity.
Why did we never hear about similar problems in the Python world? Both languages are pursuing similar solutions to packeges/libs problem: rvm/virtualenv gems/pypi and so on...
I think the python people made a few choices which prevented some of the problems:
1) It is very clear which version trees will accept new language features vs. libraries vs. bug fixes. 2.7.x for instance generally only gets bug fixes at this point. (although they sometimes but rarely break that rule).
2) There is a clear path for language changes via PEPs (Python Enhancement Proposals). These are similar to RFCs.
3) Virtualenv does not attempt to manage python versions. It instead manages which libraries are installed you point it an existing installation and it symlinks the interpreter to the virtual env folder. That interpreter simply appears before the usual one on the path. It is not as heavy weight as RVM or RBENV. In general it seems like virtualenv is much more flexible about the way it can work than the ruby versions are. It is fairly un-opinionated.
4) Python programs can be packaged as .debs and so forth without too much overhead and without using the python setuputils during installation. Installing the library basically amounts to copying some files around especially if any extensions are pre-built. (which they can be in a binary distribution). Since new python versions in the 1.5-2.x line are strongly backwards compatible shipping a newer interpreter doesn't usually cause headaches for the applications which use it and were written for a previous version. I have code which was written for the 2.2.x and it works fine with no modifications in the 2.7.x line.
A really big part of it is that the packaging situation is a big clusterfuck on python, and therefore people don't really mind packaging decisions related to them.
Rubygems on the other hand is an entrenched standard in the Ruby world, and people really expect them to be the same everywhere. This make people notice shoddy packaging in a totally different way. This has become even more noticeable with bundler since suddenly people notice when the packagers have thrown compatibility out of the window.
(I have more experience with rpm based distros, but I assume debian doesn't work too differently)