autoconf (and any build systems emulating the "./configure" build script) support a nice --prefix= switch which allows you to install the software to an easily writable section of your filesystem.
No need for containers, chroots, root access, or weird, package-specific build/packaging scripts such as RVM (Ruby Version Manager). Just set PATH and LD_LIBRARY_PATH appropriately. I can still link to system libraries provided by my GNU/Linux distro, or I can pass additional arguments and use LD_LIBRARY_PATH/-Wl,-rpath as necessary to point linkage to newer development versions as needed. I do this for each project I want the latest revisions of and leave any distribution-supplied installations untouched. Sometimes I'll even configure the prefix to be /tmp/$SOMETHING if I don't care about using something past a reboot :) Fwiw, GNU/Linux distribution maintainers are likely to set --prefix=/usr whereas the default is --prefix=/usr/local And even non-autotooled build systems such as the default GNU Make-based build system in git supports it. Heck, git was probably the first project I encountered to default the prefix to $HOME instead of /usr/local
