diff --git a/divorce_your_linux_admin.rst b/divorce_your_linux_admin.rst index 38fb903..06e2777 100644 --- a/divorce_your_linux_admin.rst +++ b/divorce_your_linux_admin.rst @@ -141,8 +141,63 @@ In short, **NEVER make assumptions where things are**. Always discover it at configuration time. -Package Management For Lusers + +Preview Of Coming Attractions ----------------------------- -- writable dir -- example is from CentOS +What I eventually (after many hours of whining, etc.) disovered, was that +getting this to work required a number of key things: + + 1) Everything has to be built from source *in the directory location + being targeted*. The only exception is the ``brew`` program + itself, which is position agnostic. So, if I want to build + a tools tree under ``/my/fine/tools``, then I have to clone + ``linuxbrew`` into that directory and do the build from there. + + 2) The initial build requires the OS compiler chain and related + development tools to bootstrap up a minimal ``linuxbrew`` + environment capable of compiling everything else. You can do + this on your own machine (not recommended because you shouldn't + be fidding around as root there), but a better way is to do it in + a VM. In my case, I made it even simpler by doing everything in + ``docker`` containers. + + 3) Once you have a bootstrapped ``linuxbrew`` environment running - i.e., + One that has a functioning ``gcc`` and supporting tool chain - you + make a ``tar`` backup of it. You then untar that onto a machine that has + (almost) no native OS development tools on it and do the remainder + of the installations from there. + + It's "almost" because - due to the aforementioned dain bramaged + open source packages, You *have* to have the OS copies of + ``autoconfig``, ``automake``, ``perl``, and ``make`` installed on + your build machine. These open source packages just *insist* that + ``perl`` is always to be found under ``/usr/bin``, for example. + + 4) When you're all done installing and configuring your + ``linuxbrew`` environment, you just `tar`` it off somewhere + safe. You can then untar it onto any other Linux machine (with + a reasonably current kernel) so long as you do so at the *same + directory location under which it was built*. + + This lends itself nicely to automated deploys via tools like ``tsshbatch`` + or ``ansible`. You build a master tarball of your "standard" tools + tree and then use automated deployment to put it everywhere. + + +Doing It The ``docker`` Way +--------------------------- + +Like I said, you can do this in a VM, but the step-by-step +approach below uses ``docker`` containers which are easy to +setup and tear down for testing. + + +Resources +--------- + + + + +Document Information +--------------------