> 
> It's a moot point, though, since you appear to have thrown the baby out
> with the bathwater, and installed an entirely new OS rather than learn how
> to make minor, supported changes, and use the one you had.
>

This is a good point. You cannot always escape to a different land to start
your new kingdom. Lots of experimentation with VMs would have helped with this.

One comment on compilers and deelopment environments. I had mentioned here
before the use of environment modules. I had given an example to Brian of how
to put GCC 6.0.x on a system that already had GCC 4.x.x, and make it seamless
and non-fatal for the OS's function. The same can be done with just about
anything (compilers, virtualization, libraries, etc). Have a look:

MODULE(1)                       Modules package                      MODULE(1)

NAME
       module - command interface to the Modules package

SYNOPSIS
       module [ switches ] [ sub-command ] [ sub-command-args ]

DESCRIPTION
       module is a user interface to the Modules package.  The Modules package
       provides for the dynamic modification of  the  user's  environment  via
       modulefiles.

       Each  modulefile contains the information needed to configure the shell
       for an application.  Once  the  Modules  package  is  initialized,  the
       environment  can  be  modified  on  a per-module basis using the module
       command which interprets modulefiles.  Typically  modulefiles  instruct
       the  module command to alter or set shell environment variables such as
       PATH, MANPATH, etc.  modulefiles may be  shared  by  many  users  on  a
       system and users may have their own collection to supplement or replace
       the shared modulefiles.