5

I need to configure a server (*nix) that runs our (bespoke) CMS and Applications.

In the past I have defaulted to using Cent OS 5, but I find this outdated difficult to upgrade the software to the versions we require.

For example, we need PHP 5.3, but CentOS 5 has 5.2. Updating is fine but breaks something else (normally MySQL support in PHP).

Eventually it will get to a situation where I can't upgrade because of missing dependancies and incompatible versions.

Error: Missing Dependency: httpd = 2.2.3-43.el5.centos.3 is needed by package httpd-devel-2.2.3-43.el5.centos.3.i386 (updates)

Is there a better alternative OS for hassle free updates, I need:

  • Apache 2.2.17 (the development version for apxs)
  • MySQL 5.5.8
  • PHP 5.3.5
5
  • 1
    FYI, CentOS 5.6 release is imminent and should contain PHP 5.3 (RHEL 5.6 now ships with blessed PHP 5.3 packages). MySQL is still 5.0.77 and Apache is 2.2.3 (but that's just RH's crazy convention for the most part).
    – HTTP500
    Feb 23, 2011 at 17:01
  • You can enable CentOS experimental repository which has PHP 5.3
    – Vick Vega
    Mar 14, 2011 at 18:01
  • @VickVega care to elaborate? Mar 15, 2011 at 12:30
  • 1
    I mixed up the name, it's CentOS-Testing - wiki.centos.org/AdditionalResources/Repositories, after enabling this repository you should be able to install php 5.3
    – Vick Vega
    Mar 15, 2011 at 15:45
  • 1
    Note that it's now 3 weeks after Jason's comment, and the CentOS 5.6 release is still 'imminent'. This is not a complaint (We know they are working hard, and it's not an easy job), but just a reality check on the "CentOS 5.6 release real soon now" rumors which have been floating around for several months now. Mar 16, 2011 at 22:36

9 Answers 9

11
+50

All stable enterprise distros will suffer from this to some extent: in order to know that they're deploying a reliable combination of packages, vendors will avoid rolling out the latest and greatest until it's had a chance to be tested both by the vendor and the public.

Our solution to this has been to maintain our own private YUM repository of packages we compiled ourselves to meet our own requirements; this allows you to be reasonable about dependencies and still provides reasonable simplicity (no need to recompile every time) for new deployments of your standard packages.

I would caution against running a distro like Fedora for production: it is very clearly, in its own estimation, an option that sacrifices enterprise-class reliability for the latest-'n-greatest package set.

Hope these suggestions are helpful!

1
  • +1 If you need to stay on the bleeding edge for some packages building them yourself may be the only way to go. Building packages usually isn't as difficult as it sounds since you can usually pull the source package(s) from the distribution development channel and backport pretty easily.
    – Zoredache
    Mar 14, 2011 at 7:22
8

Personal I've been happy with FreeBSD. For some reason it's always made a little more sense to me than other *nix OS (It has great documentation). The ports system is great for applying updates, and I've had little problem with updates breaking things. Pkg_updating especially helps.

With any distro, if you're using packages that come with the os or even through 3rd party repo's, you're going to have to wait a least a little bit for them to build the latest version of the software you want, and sometimes that's a good thing because there may be stability or dependency issues you might not know about.

Of course, you can always build directly from source, then you never have to wait.

PS: Upgrading the base os is also quite easy and stable using freebsd-update even between major versions.

7

For severs I think debian is the best choice if you need a totally free solution.

4
  • 3
    I'm not sure how stating a preference for a particular distribution answers the question about package recency and interdependency. Mar 12, 2011 at 1:27
  • 3
    For package interdependency Debian stable (plus the volatile repository) have low entropy and hence one does not bump into problems of missing packages. After all Debian stable is what it says, so there must be a very serious reason for a package version change. If one needs more recent / newer package versions Debian testing is OK. You get newer versions, and when interdependency problems arise they are promptly solved by the package maintainers. At least that is my experience for the last 6 years.
    – adamo
    Mar 14, 2011 at 15:07
  • 1
    ...in much the same way as CentOS's stable repository provdes a low-entropy experience, and other third-party repos provide a more bleeding-edge package set. This is not a concept unique to Debian, or any actively maintained enterprise-class Linux distribution. Mar 14, 2011 at 18:09
  • This does not answer the OP.
    – Mike
    Mar 15, 2011 at 22:04
6

I'll put my vote for ArchLinux. It's a rolling release setup, so no matter what you start with, you can always sync it to latest/greatest. I don't know if I'd run any servers on it, that might be a bit too adventurous for my taste, but it makes a great workstation.

4
  • +1 for Arch's actuality and its philosophy of simplicity / minimalism, which allows you to fine-tune most details of the system.
    – Axel Knauf
    Feb 23, 2011 at 16:35
  • He specifically mentioned it was for a server. But ArchLinux is still awesome for a desktop :)
    – Andrew
    Feb 23, 2011 at 17:47
  • 1
    There's servers and then there's servers. Are you running a hospital on it, or your own web/mail? I have a file server on arch with 230+ days of uptime on a 7yr old computer, so it's obviously stable, as long as hardware underneath it is healthy.
    – Marcin
    Feb 23, 2011 at 18:47
  • Arch is great if you have the discipline to test before upgrading. It is bleeding edge, however. IMHO it is one of the fastest all around best distros out there.
    – tsykoduk
    Mar 18, 2011 at 0:24
3

fedora will allow you to get the newest versions, with the downside that you may need to upgrade every 6 months, although that does not always mean a reinstall. If you have rpm's (or centos/redhat related scripts) or knowledge of these it may be an acceptable option.

Otherwise, a ubuntu LTS version will be better with a life span of 18 months, with the downside of needing to convert to debs / dpkg. This may or may not be an issue for you.

Alternatively, try a rolling release distro (such as arch linux), that way you avoid the upgrade issues, but i've no experience of using rolling release setups for servers... and it gives me the heebie-jeebies.

On the other hand, centos 6 should be out fairly soon, which may solve your initial problem.

3

I understand this is going to sound a retro & counter-intuitive:

"Use the source,Luke"

I've run into exactly these problems with almost every distro family: Rpm-Yum-Centos-FC, Deb-Apt-Get-Ubuntu, Slack*, Bsd/& Gentoo. For me?

I created a source hierarchy and a few build scripts several years ago for our needs and because of these we have 100% distro (& architecture) independence.

It takes < 3 hours to port (really just copy and make) our stuff onto anybody's linux:RS Cloud, Slice, Ec2, generic dedicated hosts,etc.

Every few months I upgrade some part (php,httpd,mysql,etc) For me the tradeoffs are well worth it. I don't have to worry about upstream folks keeping the right stuff on hand. My build script checks to see whether we have make and gcc installed and adds those if not,etc.

I find out the versions and features we need and also have some QA tests for a build,but once you get set up with your own source hierarchy, and have automated building testing and installation, life is easier for me.

I created it to help w/ my then nightmarish upgrade from apache 1.3.x. php5.0.x (cgi mode no less) & mysql4 to apache 2.2.x,php5.2.5/mysql5.0 a few years back. I think for going from php5.2.5 to php5.3.3 I had to only change a couple of lines.

I'm rather annoyed at the crazy dependencies that exist in most of the main line repositories. If I want to install ImageMagick from a package manager, I end up with all this Xwindows cruft,that has no value to us at all.

You could even ... put your build stuff in your fave SCM (svn,git,etc) and just check out your stuff and go. Or drive it all with chef,puppet or even (don't laugh) expect :-)

Lastly,I try to keep machines in a farm at the same distro,and architecture, and then I can just copy our binaries around.

3

I'll echo @matthew's answer.

FreeBSD supports all of this in the main FreeBSD ports tree, right now. No need to add 3rd Party repositories, no funny hacks needed, and all of this is availalbe using the regular FreeBSD utilities.

Here are the versions in the FreeBSD ports tree, with links:

FreeBSD is a little different then OS's based on Linux. There is a small learning curve to get started. Some of this is appreciated (Ports always live under /usr/local , it's easy to control services using /etc/rc.conf). But don't be intimidated-- if you know Unix, you can learn FreeBSD.

1
  • +1, Three best parts of FreeBSD: 1. Cleanliness 2. Ports system 3. Tha Handbook - Note Googling "Handbook" the 3rd result is this link. There is a learning curve, and plenty of experts around this site.
    – Chris S
    Mar 17, 2011 at 17:47
1

You can setup your CentOS system to use 3rd party repo like atomic rocket turtle that offers more up to date software you need and dependences. If you want to switch distro you can look at Ubuntu (not-LTS) as those deb repos are pretty new.

1

Have you considered Scientific Linux (www.scientificlinux.org)?

Like CentOS, Scientific Linux is a Redhat derivative only it is put together by Fermilab, CERN, et. al.

They have their 6.0 version out (based on Redhat 6) and it comes with:

  • php-5.3.2-6.el6
  • mysql-5.1.47-4.el6
  • httpd-2.2.15-5.sl6

Another option, if you're not in a time crunch, is to wait for CentOS 6-- I have no idea how close they are to releasing tho.

Edit: Looks like the versions are still a little shy of what you're asking for...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .