For years I have been a FreeBSD bigot. I love FreeBSD, the stability, performance, ease of use, and steady progression.

But…

Updates are kind of a chore, there is no such thing as true incremental updates, you either do patch updates against RELEASE, or you do world updates against STABLE. I am a STABLE kind of admin so my updates take quite a few man hours to do. The number of security updates required for FreeBSD is quite minimal (the target is small).

The Ubuntu Linux distribution does do things incrementally, you can update whenever you wish as by default everything is distributed as binaries. The downside is the constant updates that are in the pipeline and no easy way to figure out which update is relevant to what type of thing you are updating for. The update mailing lists are high speed, high volume, and I don’t have enough time in my day to keep up. The number of security updates required for any Linux distribution is very large (the target is huge).

And this has nothing to do with package maintenance…

So on with my dilemma…

Every 6 months I do a full update on my servers, for FreeBSD, the basics are:

  • screen -R
  • exec sudo su – root
  • cvsup ports-supfile
  • cvsup stable-supfile
  • cd /usr/ports
  • make fetchindex
  • cd /usr/src
  • make buildworld ; date
  • ^A^D

and let it run. Nothing has happened, no updates or anything else. Come back later (90 minutes or so) and…

  • screen -R
  • make installworld ; rm -fr /usr/obj/*
  • cd sys/amd64/conf
  • rm -fr ../compile/<CONFIGNAME>
  • config <CONFIGNAME>
  • cd ../compile/<CONFIGNAME>
  • make cleandepend && make depend && make && make install
  • cd ..
  • rm -fr <CONFIGNAME>
  • mergemaster -UiF
  • sync ; sync ; sync ; reboot

and my world is all happy and complete.

Ubuntu? Wow, this is easysauce…

  • sudo su – root
  • apt-get update
  • apt-get dist-upgrade
  • sync ; sync ; sync ; reboot

this updates the kernel, userland, and any installed binary packages from the debian package system. (notice I did not list out how I update packages on FreeBSD yet).

Only issue with Ubuntu (and all of the different Linux distributions) is that you can do this 2-3 times per week and have updates (as I alluded to above) to install.

So, dilemma…

I seriously need to evaluate what I do with my UNIX administration.

Do I continue down the tried and true path with FreeBSD with the small target, excellent performance, but long hours of updates, or do I choose the quick and easy path of the Ubuntu Linux distribution with the many (and varied) updates regularly?

With the FreeBSD systems – I don’t need to worry so much about security items – there is a specific mailing list dealing with such things with separation between the FreeBSD OS and any 3rd party packages with the number of issues being very low. Day to day OS maintenance is almost non-existent.

With the Ubuntu Linux distributions – I need to look regularly as to what is being updated (since the mailing lists are full of <everything> being updated), day to day is difficult to gauge because of the constant and ever flowing updates that I can not keep up with (I have other things to do with my time than to read hundreds of emails a day about joe-coder updating ffmpeg for the third time today).

I manage over 100 of these kinds of systems, approximately 10-12 of them are Ubuntu and the rest are FreeBSD based.

(updating FreeBSD ports is its own thing and both incredibly easy to deal with while also fraught with gotchas you must watch out for, like the mid-life update to Perl 5.10 from Perl 5.8, or using portupgrade on ‘gd’ or ‘curl’ can sometimes be frustrating because of weird failures)

What would you do?