> Am I supposed to just download a tar.gz and do the configure/make/make install dance to /usr/local or /opt or something for each dependency that I need a more current version of?
No, you're (usually)supposed to stick with the out of date version rather than the shiny new version. Doing otherwise is taking on the responsibilities of a distro maintainer, usually not consciously.
> Even worse - what if my deployment target is 3-4 years older than the machine I'm developing/compiling on?
Either use the older version for developing or at least have a version of that environment for CI.
No, you're (usually)supposed to stick with the out of date version rather than the shiny new version. Doing otherwise is taking on the responsibilities of a distro maintainer, usually not consciously.
> Even worse - what if my deployment target is 3-4 years older than the machine I'm developing/compiling on?
Either use the older version for developing or at least have a version of that environment for CI.