PostGreSQL 8.0 is a pretty impressive product that doesn’t get the attention of MySQL, but really should. It’s a full-featured relational database engine with most of the competitive features of the big boys: triggers, RI, procedures, etc. In the 8.0 product, the press release claims the most features in any dot-zero release of PostGreSQL. Notable is a native Windows port for better introduction into monoculture shops.
Archive | January 19, 2005
Building your Linux apps from source, part 2
When you build apps from source, you get to configure, tune and install them just the way you want. But with great power comes great responsibility, right? Now that you have taken control, you are responsible for maintaining the applications as well. No distribution package manager is going to automatically try to update files you created yourself — you have to do it. For that reason, stick with the package manager’s version when you can. Make sure to sign up for the product’s mailing lists or announcements as well as the general security mailings lists so you’ll know when an update is needed.
Leave adequate time to do the install and configure, especially if it is a complex product or you’re not familiar with all of the steps. I mean, how hard can “./configure;make;make install” be, right? Figure two weeks for your first attempt, and maybe an hour or two after that. Okay, two weeks may be a little high, but it never hurts to score some points by coming in under your estimate, right? Start with a few little and non-critical items and build up your debugging and troubleshooting skills. Keep resources like your local Linux User Group and product’s mailing lists and Google handy.
Configure doesn’t always tell you if it doesn’t recognize the parameters you pass. I spent days trying to add the mysqli module to PHP version 4.3.10 before I finally realized that I could issue a ./configure –help and have it tell me there was no such option. Doh.
Patience, grasshopper.
Building your Linux apps from source
The idea of building applications from source is foreign to Windows and commercial software users, but it is really not as scary as it sounds. Recently, I was called upon to install and configure Apache, MySQl and PHP on a client’s RedHat 9 installation. They were keeping their Redhat 9 machine up to date using the yum legacy program, but the legacy repositories are not always up on the latest editions. After all, volunteers maintain these, too.
As the client’s requirements included a need for transactions, the InnoDb database engine was a good choice. PHP supports a new MySQL interface in PHP 5.0.3 which takes full advantage of the new features in MySQL 4.1.x, so I chose to build Apache, MySQL and PHP from source. A little Googling came across several useful sites, where other developers had posted the commands they used to do this. Two I found especially useful:
- http://dan.drydog.com/apache2php.html
- http://hulan.info/blog/item/compile-from-source-apache-2-0-52-with-ssl-php-5-0-2-and-mysql-4-1-6-on-linux
Building from source involves a few steps:
- Download the source, typically from the main project web site or a trusted mirror. A good place to store all the files is /usr/local/src.
- Unpack the files into their own directories, typically with tar -zxvf for a tar.gz (“tarball”).
- Hop into that directory and take a quick read through INSTALL, README, LICENSE and CONFIGURE files to see if there are any gotchas.
- Build the script that does the compile (a “makefile”) with ./configure. If you followed the links above, you can see ./configure may have many options. Adding –help after ./configure will list them, and a little research can tell you the ones you want. If you get errors during this step, it’s back to the forums, Google or the instructions to determin if there’s more you need to do.
- Now that you’ve created the makefile, you invoke it with the command ‘make.’
- Install your application with ‘make install.’
It still sounds like a chore, but the end result is a working application that you have tuned to your system and needs, up to date with the latest source you could obtain, and installed where you want.