I've often seen system administrators download and install server applications, including "stock" applications such as Apache, under a dedicated /srv
or /opt
directory instead of installing them from the official repository, e.g. apt-get install xxx
.
Is it really a bad idea to install and run a webserver, or an email server, or even less common services such as Zope from the distribution's official packages?
Not a bad idea at all. IMHO, the opposite is true: You need a good reason why the official packages are not sufficient.
Some problems:
Of course, when you need a specific feature of a new version or just a very specific configuration, doing your own thing is a valid approach, but it will have drawbacks.
Depends on what you are trying to achieve.
The major distributions are usually relatively quick in pushing out critical security patches and usually come with a tool for identifying them and notifying you - you don't get that when you install from a tarball.
OTOH they are slower about making non-critical updates available, don't want to complicate their support process with multiple versions of software, and (for commercial suppliers) do want you to buy a new version when it comes along. Sometimes the functionality isn't avaialble at all - e.g. php sqlite support in RHEL.
Compiling from scratch means (if you know what you are doing) you can build a binary which is optimized for your hardware. You do need to ensure that you don't end up with dependencies from the distributor supplied software on the software you maintian yourself - otherwise you'll be condemned to dependency hell!
So there are benefits in installing from the developer rather than distributor - but you need to plan time and processes for keeping the system secure. Certainly you should have a very good reason for doing so.
C.
Debian (in particular) releases versions to apt when it's been thoroughly vetted as "Stable". When you use the repository version, you can be reasonably comfortable that it will work with few if any issues.
The security maintenance argument is very valid too.
For me, unless I need a new feature in a version that hasn't filtered through the Debian or Ubuntu approval process, and it's absolutely needed, I stick with the repository versions.
-Waldo
For Postgresql and MySQL I always provision our own compiles, the same goes for versions of python and it's various plugins. I think most developers would concur they stick to their own agreed versions of software and libraries.
I generally stick with the distribution packages (CentOS). With more than a couple of servers, it's difficult to keep up with security patches if you are installing from source or non-distribution packages. We do have exceptions: we hand install Java from Oracle/Sun packages rather than use the broken Java in CentOS. And, we install MySQL from Oracle/Sun packages to get the latest stable version. Even with those two exceptions, it's a pain to keep them up to date with patches.