Every Install Should Be Minimal
It used to be a bit of an art to strip down Red Hat or CentOS down to the absolute minimum needed for a server install. I’ve ranted at length about how the default install for servers included a full blown Gnome desktop, including games. Thankfully, CentOS 6 has a special iso download, which I feel is built specially for me, called the Minimal install. After installing this image a few times, I’m convinced that every Linux install should be a minimal install.
By default, if all options are selected with default values during the installer process, you boot into a system with a mere 85 processes running. Browsing through the output of ps -eaf, I see that most of the processes are system-level processes, the rpc daemons, presumably for NFS, a syslog daemon, and of course, sshd. The installer created a LVM setup with a single volume group and a single logical volume, of which it is using 694M. A listing of /etc/init.d/ shows 31 services installed, none of which I would consider out of place.
Maybe it’s just a tad bit OCD, but it bothers me to no end when software is installed unnecessarily. Server setups are particularly troubling. Servers are normally intended to be run headless in a data center or closet somewhere, accessed either through SSH on the command line or through some web based management module, so the inclusion of X11 or bluetooth daemons is wasteful. Additional software makes updates take longer, as the update process must fetch patches for software that is never used. More software also takes up disk space, and depending on how your system is setup it may also start daemons without your knowledge. Ever log into a server and run ps and wonder what all those processes are? More software means more possible security holes, as the possible number of exploits increases.
It is my opinion that this concept of a minimal install should apply to desktop installs as well. While my primary concern is servers, there is no reason why X11 installs should be weighted down with bloated packages. It is understandable that the default desktop should attempt to appeal to the widest audience, but after you know what you are doing, I would encourage you to strip down your desktop to the absolute bare minimum essentials. Examine your use of the machine and ask yourself what software you actually need for the machine to accomplish its intended task.
At times it seems like we have simply gotten used to operating systems taking up multiple gigabytes, so it is refreshing to see examples like CentOS Minimal, and Ubuntu Server moving in the other direction. There is a certain elegance to a bare bones Linux install, a sophistication that comes from well chosen tools. For the (possibly) very few people who care about such things, it is a confirmation of sorts that the time we’ve spent perfecting the package selection and custom installation process was not in vain. The simplicity of a minimal install reminds me of how Unix computing was originally intended to be.