Moonlit Rail ™

Slackware

Obtain a piece of software from some vendor intended for GNU/Linux and you will typically find versions offered for specific distributions — Red Hat, Fedora, Debian and Ubuntu, to name a few. Insultingly absent in the aforementioned list is a distribution that not only predates every one of those cited, but is in fact the oldest, continuously updated and maintained GNU/Linux distribution in existence: Slackware.

Introduced in 1993 by Patrick Volkerding as an improvement over the first fully self-contained GNU/Linux distribution called "SLS", Slackware's design philosophy has consistently aimed for simplicity by making few modifications against the wishes of authors whose software is included within the distribution. A valuable side-effect of this lack of modification is that few "security holes" are introduced by way of either poorly-reviewed distribution-authored patches, or confusing or obfuscated inter-package configuration dependencies. This characteristic makes Slackware the best choice for GNU/Linux distribution when running as a server in an environment requiring security-hardening (such as intrusion-detection and network-analysis).

Those good things aside, Slackware is not "perfect" for the uses I put it to. To remedy that, I have created a wide variety of scripts and enhancements over the years that have allowed Slackware servers to create high-availability clusters in mission-critical 24x7 healthcare environments — literally years before corporate players such as Red Hat would make terms such as "high availability" and "clustering" a post-it noted buzzword on every upper-level manager's bulletin board. Some of my earlier technology is now obsolete; but those tools and enhancements that are still relevant (or at least amusing) have been made available in the references below.

Build Scripts

I build a lot of packages semi-automatically, by dropping a new source "tarball" into a directory and then calling a package-building script to go and create a usable Slackware package for me. Although web sites now exist (such as slackbuilds.org) for the purposes of sharing contributed package-building scripts, the ones I use are different in that they all share a common library file filled with callable functions that do all the "heavy lifting". Although many of the scripts are esoteric or customized in ways that are specific to myself (or Moonlit Rail), you may well find some useful; regardless, the framework will allow you to create your own scripts quickly and easily.

To that end, I have packaged up the scripts into their own Slackware package, the most recent version of which is: mr-slackbuilds-1.0-noarch-1.txz. I've written a bit about the scripts in the slackbuild README file. For a list of the included scripts, there is a CATALOG file.

Up2Date Scripts

Having package building scripts without version-number dependencies would be little more than an academic exercise were it not for some ability to automatically download the sources for building those packages. With one invocation of the up2date command, I can grab "newer" sources (which for practical purposes often means, "security patches") and automatically turn them into operating-system packages.

If you would like to experiment with keeping your own Slackware system up-to-date with the latest sources, you can download Moonlit Rail's collection of scripts and either use the ones present or create your own.

The most recent version is: mr-up2date-1.0-noarch-1.txz. I've written a bit about the scripts in the up2date README file.