Unexpected Feature of Software Collections

If you are anything like me, you live in perpetual fear of breaking your primary machine. The one you use for reading email, twitter, notifying you of meetings, etc. Over the years we have seen many attempts to alleviate this problem, things like etckeeper, using git to manage home (duck it), regular backups (sure…), etc.

Today, I stumbled across one of the benefits in Software Collections that I hadn’t noticed before. My internal monologue went something like this:

me: I need to install nodejs for a blog post I am writing. But, I just installed RHEL7-RC and it is mostly working right, I don’t want to bork it.

me (rational-side): you could make a new VM.

me (lazy-side): arghh, but that takes forever

me (rational-side): but, you are just installing the nodejs scl, so it is just going under /opt

me (lazy-side): ohh, right, so no risk to my actual OS

me: sudo yum install nodejs010

As you can see, first and foremost, there are a number of people talking in my head. However, of at least equal importance, using a software collection for the environment install removes most of the risk from doing the install on your primary machine.

I am not saying that I will be converted to never using VMs for development anymore, but, when I am trying to do something quick and dirty (but don’t want it to be that dirty), a software collection might be just the ticket.

Something like Docker might be another strategy, but I would still need to install and use Docker on my primary machine, which still runs some risk to breaking my machine. As a result, I normally use something like Atomic (or a heavier-weight VM) to run my Docker containers as well.

  • Bjarke Bruun

    That is why there are things called
    – your own desktop/laptop you develop on
    – test servers to test if the system works
    – staging servers to test that the system is stabil and can perform
    – production servers for, well production

    VM’s are great for testing, but really, if you are afraid of breaking your primary machine, then you are doing things wrong.

    • I think that was the point of my article. Normally, I have an infrastructure for running new things. However, sometimes, you just want to test/run something quickly, like for a blog post, that you don’t expect to be running for “real.” I could try to use the “real” infrastructure for that but that can be a hassle for something small.