Subject: Upgrading NetBSD
To: None <tech-userlevel@netbsd.org>
From: Tim Rightnour <root@garbled.net>
List: tech-userlevel
Date: 01/17/2007 13:13:26
At work I spend my life upgrading hundreds of machines. Based on all that, here
are my opinons on each systems upgrade process:

NetBSD:  Probably the easiest to do a full upgrade.  I used to dread NetBSD
upgrades, but now sysinst has progresed enough that a major upgrade is a
breeze. Upgrading pkgsrc afterwards is another story.  Security patches are a
nightmare to apply, and probably the worst of any OS I deal with.

AIX: Second easiest major upgrade.  The process is somewhat insane, but it
works most of the time.  Minor upgrades are by far the best system I have ever
seen.  If I were ever to choose a system for NetBSD to do minor upgrades, it
would be this.  Backout is trivial on minor. somewhat painful on major.

Redhat Linux: Major upgrades are horrific.  Minor upgrades using yum are not
bad, but frought with horrible dangers and surprise failures. Backout is
nonexistent.

Solaris: (6,7,8,9, haven't tried 10)  Major upgrades are horrific.  Minor
upgrades via patch are long and painful, but generally doable, and only blow up
a few machines.  Backout is trivial on minor, horrific on major.


If I could pick an ideal setup for NetBSD, I would say leave major upgrades the
way they are, and use an AIX-like system for minor upgrades.  For those who
don't know, the AIX system works like this:

System is cut up into basically syspkgs.  Each one has a version number, like
5.3.0.1.  (5.3.0 AIX, rev 1 of this pkg).  Each pkg has a state, COMMITTED or
APPLIED.  When you install a new pkg, you APPLY it.  This backs up the old one,
and lays down the new one.  When you COMMIT, you delete the old one.  If you
want to back out, you REJECT the new one, and it puts the old one back.

Being able to back out is a huge deal in a corporate environment.  If the OS
doesn't supply a way, it dumps the problem on us, and makes our lives a living
hell.

---
Tim Rightnour <root@garbled.net>
NetBSD: Free multi-architecture OS http://www.netbsd.org/
Genecys: Open Source 3D MMORPG: http://www.genecys.org/