Okay, so maybe I'm wrong

People have been calling me out on my last post, and that's good; I love a good argument^Wdebate, and doubly so when it comes from people w/more experience than me. So I'm going to start responding to the comments, laying out where I'm wrong and where I still think I'm right.

I said:

OpenSolaris: If I wanted to upgrade everything by hand, I'd stick with Slackware.

Bzzt! As I found on on a recent episode of BSDTalk, NetBSD's pkgsrc is available for over nine hundred thousand operating systems, including Solaris and Slackware Linux. Tha's right, both premises in that statement were wrong.

Not only that, pkgsrc can be tucked out of the way so that it doesn't interfere with the rest of the system…so I could even throw it on Thornhill right now, Slackware and all, and start using it instead of my own half-assed build script for Apache/SSH/PHP/OpenSSL/mod_ssl (which, in my own defence, works pretty darned well).

In fact, tomorrow I'm heading out to The Other University to set up two new X4200 servers, and I'm seriously considering adding pkgsrc to them — if only to avoid having to compile (and botch) Lapack and Blas. If that goes well, I may start adding it to the main server here so that we can easily get more up-to-date versions of Firefox et al. (Though I could probably get them from Blastwave…this has been a low enough priority for me so far that I haven't really looked into all my options.)

That is not to say it's perfect:

It is possible, and in the case of updating a package with
hundreds of dependencies, arguably even likely that the process will
fail at some point. One can fix problems and resume the update by
typing make update in the original directory, but the system can have
unusuable packages for a prolonged period of time. Thus, many people
find 'make update' too dangerous, particularly for something like glib
on a system using gnome.

To use binary packages if available with "make update", use
"UPDATE_TARGET=bin-install". If package tarball is not available in
${PACKAGES} locally or at URLs (defined with BINPKG_SITES), it will
build a package from source.

To enable manual rollback one can keep binary packages. One method is
to always use 'make package', and to have "DEPENDS_TARGET=package" in
/etc/mk.conf. Another is to use pkg_tarup to save packages before
starting.

From the Swedish NetBSD wiki.

It's nice that manual rollback is doable; that's always my big paranoia when it comes to source-based upgrades.

That last complaint is not as fair as it could be. I mean, I'm not going to be upgrading Gnome on either Thornhill or the two new Sun machines. And at around 80 packages, it would be damned difficult to try and recompile it all without starting with a clean slate. But this sort of nonsense with Gnome is what put me off the ports tree in FreeBSD.

(I was going to put in something about how Debian doesn't need that sort of thing, but I should research that first.)