I'm trying to build a new web server & database server, I just usually install apache and mysql using YUM. I'm curious,

why most experienced systems admins prefer to compile apache and mysql from source rather than installing from build packages?

Is compiling more secure, flexible?

Or perform much faster when they are build from source(eg. apache)?

May you please list the Pros and Cons of compiling from source.

Thank you :)


When a package is available to install a software, please use it. Specifically in your case, talking of web and database server, there are plenty of them in any distribution :

  • Apache (web)
  • Nginx (web)
  • Lighttp (web)
  • Mysql (DB)
  • Postgresql (DB)
  • MariaDB (DB)
  • ...

By using the packages provided by your distribution, you are sure to receive the updates (patches, security update, ...) and be able to apply them easily.

Also note that in the case of some commercial distributions, you may loose the right to have support if you install your own compiled packages.

Installation of a software from the sources, compiled by you, is only an option when you need absolutly this software and there is no other way to get it in package format. Or if you want absolutely to run the very last version or even a pre-release version (beta software, ...). But on a production machine, try to stick to the packages.


Experienced sysadmins do not build from source because that software is then hard to manage. You cannot easily roll it out to servers and it cannot be automatically updated with vendor patches, as are offered regularly when you install via a package manager.


I'm not listing Pros and Cons, but the only times I'll install from source is

  1. The packaged version of $software isn't compatible with the production software I need to use.

  2. A package for $software doesn't exist

  3. Kernel Patchin'

That's pretty much it, other than that I trust (!) the package manager, and it also makes life easier.

Not the answer you're looking for? Browse other questions tagged or ask your own question.