Thursday, March 17, 2005

Minimalist Solaris

I've been looking at minimizing a Solaris installation. This has similarities to the work that Eric Boutilier has been doing, with the difference that while he's trying to find the minimum configuration that will actually boot so that you can install 3rd-party software on top to make a viable system, I'm interested in keeping a usable (and manageable) system that can be integrated into our network without additional utilities needing to be installed.

I'm down to 74 packages so far. This seems a lot, I know, but the core install is about a third of that, with the packages necessary for living on our network being another third, and system admin tools being another third again.

Solaris 10 actually needs more packages than previous releases. One reason is the increasing granularity of the package system, so there simply are more packages. Another is that the functionality of Solaris keeps increasing, and more utilities are making use of features outside the basic core. (For example, using XML for system configuration requires you to have an XML parser.)

While my test system got down to 74 packages, I'm typically installing Solaris 10 on machines and ending up with over 800 packages (for one thing, the Java Desktop System has a few hundred). This is getting plain silly.

I think it's got to the point where a flat list of packages has outlived its usefulness. Trying to do installation management with this many packages is impossible. You just have to hope for the best. (I know that Solaris does have package clusters, but these are really just shorthand ways of referring to lists of packages rather than having meaning in their own right.)

One problem with the present system is that you want to be both very specific and very generic. I want to say "Install JDS on a desktop" and "disable and delete this one daemon" with equal ease, and the current flat system doesn't really allow me to do either very well. (Although there are cases when the install granularity has reached the level of individual services.)

So the question that naturally arises is what sort of package management system can be used that will make life easier? I tend to think that it has to be hierarchical, but haven't got much further than that. Note that the question is really one of "how can we best bundle up files into meaningful and easy to manage chunks" rather that asking what software to use to manage those chunks.

No comments: