I spent a good part of today trying to setup mail server on my remote Red Hat 9 machine. It came with sendmail which everyone agrees is a bloated sloth so I replaced it with Postfix using the instruction given in this document which probably represents the daily life of a Linux user. No problem there. I have heard that Maildrop and Courier IMAP combo was a good match for Postfix, so I looked for the RPMs via Red Hat's up2date. Nothing.
I managed to find the source for Maildrop and tried to configure the build. Nope. cpp, C preprocessor, was not installed. Again, not available via up2date. Got it via rpmfind.com and installed OK. Back to configuring Maildrop. OK again. Now build fails because g++ is missing.
Earlier, I had to install gcc-compat package because my server came without gcc installed. Funny. Apparently, that gcc-compat package didn't include g++. Latest gcc-compat available on RH9 was an old version of gcc also. So I considered whether to replace gcc-compat with the latest gcc package from gnu.org. gcc-compat is an ominous name. It implies that regular version of gcc is not compatible for some reason. I punted and rigged Postfix to forward mail to my personal e-mail account with my ISP [1]. Urgh. I didn't even get to Courier IMAP.
Red Hat distributions seems to have, in general, oddities that cause problems with many packages out there despite being the most popular Linux distribution. Versions of packages bundled in Red Hat distributions or available for download via up2date are often much older than the latest. Sometimes this can be dangerous. For example, latest OpenSSL package available by up2date was 0.9.7a which has serious bus including the ASN.1 bug. Red Hat 9, in particular, is a bundle of trouble because it uses NPTL library unlike other versions and distributions.
Stay away from Red Hat 9 everyone. If possible, stay away from other versions as well. Whatever performance NPTL brings, I can make it up more than enough by getting another cheap Linux box.
PS: Only bright spot in all this is the joy of using Webmin. It really is great although documentation sucks. There are so many great Webmin modules out there that one can only smile with satisfaction.
[1] One stupid Linux trick I learned was that in order for 'luser_relay' setting to work, you have to define 'local_recipient_maps' to be nothing. Leaving it commented out is not the same. What kind of talented idiots write sh*t like this?
