Why Solaris is not my favorite operating system
Sun killed one of my systems the other day. It was very simple: I installed the latest patches (that had passed testing on my test system), rebooted, and the ssh daemon failed to come up. Bang. Dead in the water due to:
ld.so.1: sshd: fatal: libxfn.so.2: open failed: No such file or directory
Since this machine is accessed only via ssh, that's all she wrote. (For extra fun, outgoing ssh from the machine dies for the same reason.)
It turns out that this is a known issue and has been since June 7th. Current versions of patches 113273 (sshd) and 114356 (ssh) require the SUNWfns package to be installed, a dependency that is not actually listed or enforced (except by having your system fall over if it's violated).
In theory, Solaris patches have dependencies and dependency checking. In practice, as you can see, they don't.
There are two parts to why this makes Solaris not my favorite operating system. The first is that Solaris does not have a real package management system, because a real package management system has real dependencies, created automatically, enforced automatically, so that you cannot screw your systems up this way. If there is a problem you get an error message and the patch or package doesn't install and your system keeps working.
The second is that Sun doesn't care. I say this because the current versions of both 113273 and 114356 were released on June 26th, well after this became a known issue. Neither even mentions the new requirement of SUNWfns in their READMEs, much less enforces it in any of the ways open to Sun.
So much for the ssh situation moving forward. Oh well, the illusion was nice while it lasted.
(I'd hoped to hold off posting this until I could add a happy ending, but some things make it time to post it now.)