Hacker News new | ask | show | jobs
RVM vs Packaged Installation of Ruby in Production (weaver.io)
2 points by brettweaverio 5232 days ago
1 comments

so as RVM maintainer(I know what's inside):

What RVM does: - RVM by default provides patches that will make your old ruby compile on your new system. - RVM does not provide patches for anything else, so there will be no magically enabling/disabling code. - in RVM you can specify ruby patchlevel and you will get exactly that ruby patchlevel - when you specify or not patchlevlel for ruby RVM will respect it compiling/using respectively given patchlevel or latest one.

What your system does(will do at least one of those): - bump ruby patchlevel because of security issues, but also possibly can include behavior changes - backport fixes from newer patchlevel / version to the installed version - will include code changes/patches they fill like are necessary for you - but are you ?

So the main difference: RVM - will try to keep your ruby-patchlevel compiling for you, no other changes System - will bump patchlevel or backport fixes to the build one.

Additionally in your system you can find maybe two - three provided ruby version, build by system maintainers, no possibility to define patches you would like to be include, RVM allows you to have as many rubies as you want (I have right now 37 different combinations of ruby/version/patchlevel/patches installed)

And last RVM will alllow you to use the same ruby-version-patchlevel-patches in development and in production, making sure you run the same exact behavior on across all your systems used for development and hosting.

My concern has always been, ruby (or any other complex application) is going to compile differently on like but different systems.

Over long periods of time I'd be concerned that I could never recreate the 'same' Ruby 1.9.2 installation using RVM.

How can you address the concern of small changes being introduced when compiling against slightly different versions of development and runtime libraries?

this might always happen, but considering the amount of opensource software and it's stability (when it's bug free) it should be considered stable and reproducible, compared system and RVM - both will be compiled - unless you save the compiled package and install it, but this can be done for both System and RVM