Cognitive Conga: a blog

Dancing the conceptual kerfuffle shuffle

Ratiocination, n. An instance of [reasoning]. Also: a conclusion arrived at by reasoning. Doubt the applicability of this at your peril leisure.

How to troubleshoot exim (or any other open-source software package)

Recently, I had some trouble getting email working the way I wanted it to, on a server running Debian Lenny. I’ve not really had to configure an MTA before (though I’d made a couple of half-hearted attempts on other occasions), so I wasn’t sure where to start. The route I ended up following to reach a solution illustrates the range of support that’s available for free software, especially popular free software like exim, the MTA I wanted to configure.

Free software, unless you buy or license a support package for it, usually comes unsupported. That’s not to say that there is no support available, just that it isn’t guaranteed. In practice, free software often has a better support than some commercial software, and much of it is free of charge.

All software packages in a mature distribution like Debian will have some documentation included, in the form of man pages or other documentation (docs). Exim is no exception. However, man pages sometimes assume more knowledge than the user has, and are consequently not always sufficient for the novice.

In cases like this, especially when the software package is a mature one, it’s worth searching the web for tutorials, and for extra documentation, e.g. on the software package’s website. Exim has a lot of good docs on its website, but these still tended to assume a bit more than I knew. I needed something to introduce me to the fundamentals of email, especially the fundamentals of email on GNU/Linux, from a sysadmin’s perspective.

Enter the book. Most of the seriously popular free software packages going, have had at least one decent book written about them. Very often, that book will have been published by O’Reilly, a publisher that has carved a niche for itself selling books that act as the missing manual for the software packages they are about. The Exim book isn’t an O’Reilly book, but it’s along similar lines, and it is mostly very well written. Fortunately, I was able to borrow it from a colleague, but like most software books, it’s readily available at online bookstores.

So the book gave me the background knowledge to make some sense of the docs, and the docs gave me a more detailed view of exim’s command and configuration files, but still I couldn’t get exim working the way I wanted. At this point, I had two further options, both free of charge: to send a mail to a mailing list, or to use IRC. Mailing lists are good for comprehensive discussions, but it can take a few hours (occasionally, days) to get a reply. IRC, on the other hand, happens synchronously, so other logged-on users will see your question almost immediately after you post it, and can respond straight away. I opted for IRC, and went to the #debian channel.

Within a few minutes, I was being helped by other users on the channel. Having already looked at the book and the docs reasonably well, I was able to understand fairly quickly why these other users proposed the troubleshooting techniques they did. And within an hour or so, all was working as I wanted it to. Bear in mind that the people helping me were all volunteers.

All in all, this was a far better experience than many I’ve had with proprietary software support requests, which can have similar end-to-end times (a day or two, start to finish), can be expensive, and can leave you with very little knowledge gain as a result. By contrast, I now have a passable understanding of the way an MTA operates and how to configure one, which may serve me well in the future, and I haven’t had to spend a dime. In fact, even if I had bought the Exim book, it might have still cost me less than the cost of a support incident with a typical old-school commercial software vendor, and I’d have a great reference book to boot!

It takes a while to acclimatise to the free software approach, but I’m glad I decided, a few years ago, to begin putting myself through the process. Hopefully, if you’ve read this far, what I’ve written might make your own efforts a little easier :)

Leave a Reply

You can use Markdown syntax and Markdown Extra syntax in this box.