2006-07-28
A plug for blastwave.org
Oscar del Rio's comment on a previous entry has led me to take a look at blastwave.org for my Sun freeware needs; I had previously tried out sunfreeware.com, mostly because that comes up first for a Google search on [Sun Freeware].
Blastwave is a breath of fresh air on Solaris, in that it is a clumsier
version of what I've come to expect as basic functionality from Linux
package managers like apt and yum: you have your automatic fetching
of stuff and running of pkgadd, you have dependencies (that get
automatically fetched too), and you even have digital signatures.
Solaris being Solaris, pkgadd will periodically stop to ask you
questions and the whole thing is a bit noisy (and slow).
But that's all just convenience. The way Blastwave has won my heart
is by putting all of its stuff in one place that it owns completely,
/opt/csw. This is clearly the right way on Solaris, since the
convention is that you put your stuff in a directory in /opt and no
one else touches it.
By contrast, Sunfreeware seems to like dumping stuff in /usr/local.
This makes me nervous and unhappy, because a lot of things may feel that
they have a right to drop stuff in /usr/local, and this is a recipe
for collisions and problems down the road.
The downside of blastwave.org is that it eats up a lot of disk space; using it to install just Subversion, NTP, and GNU textutils on a system used up 179 megabytes of disk space and wound up with 25 packages.
2006-07-22
Solaris's sparseness
Coming from years of working primarily on Linux, one of the things that keeps getting me about working on Solaris 9 is just how sparse and bare a Solaris install is. I especially feel this with system diagnostic tools, where about 90% of the things I am used to considering as routine are either third-party packages or just not available.
(Solaris 10 holds out the promise to be much better, with things like DTrace, but I'm stuck working with Solaris 9 machines at the moment.)
Some of this is just different names for the same stuff (for which the
Rosetta Stone for Unix is very handy),
but for a lot of it you really need to start installing third-party
software. (Even when semi-substitutes are part of Solaris; fuser is
only a pale shadow of lsof, for example.)
And sometimes there doesn't seem to be anything at all. For example,
my current desire is for something to dump system level file locking
information, because I am trying to run down a peculiar Samba and NFS
locking problem and I would sorely love to be able to see what processes
have certain files locked, and how. On Linux I would use lslk; on
Solaris, well, the core author of lslk dropped it in 2001 or so.
(Yes, I can find the source code. Last updated for Solaris 8. My quickly hacked attempt yielded no useful results.)
Sidebar: an inexplicable omission from Sun's Freeware stuff
Much to my surprise, Sun's Freeware software collection inexplicably
does not include gdb, despite having the GNU compilers. Sure,
Solaris has mdb, so you can at least do some state analysis of errant
daemons with gcore and it (if the stars are right), but it's not quite
the same.
Knowing about pstack would probably have saved me some time a few
days ago, though. Moral: I should always check the Rosetta Stone
before proceeding to brute force.
(Not that it would have helped; all of the Samba daemons confuse
pstack as much as they confuse gdb and mdb. Oh well.)
2006-07-13
A thought on Linux installation versus Solaris 9 installation
I've been thinking about a question recently: why is installing most Linux distributions so much easier and friendlier than installing Solaris 9 on a standalone machine? (I can't speak for Solaris 10, as I haven't tried to install it on anything.)
(It's not just an issue of comparing today's technology against Solaris 9's 2001 or so era technology; I was doing Linux installs in 2001, and it was still much better back then.)
The simple answer is that the Linux installers are better because the Linux distributions consider them more important than Sun does. But that begs the question: why can Sun get away with an uninspiring installer in their market?
I think the answer is that you've already been sold on Solaris by the time you hit the Solaris 9 installer; a substandard installation experience is just something you get to suck up on the way to your real objectives.
(Note too that the Solaris automatic installation experience is apparently quite good; not coincidentally, ease of large scale deployment is one of Solaris's selling points.)
By contrast, Linux distributions have faced the discipline of having to keep the user sold on Linux at all times, from start to finish. Even a single bad bump could, would, and did cause would-be users to abandon the entire effort; as a result, Linux distributions have had to relentlessly improve all of the potential stumbling points in order to keep their users.
This discipline of having to constantly care about the user's experience is what makes the difference. Linux has had it and Solaris has not, and Linux is far better for it.
(Another possible factor is preinstallation of Solaris on Sun hardware; if you never install it to start with, how bad the installation experience is is irrelevant to you. However, I have no idea how many people actually run the preinstalled versions.)
2006-07-03
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.)