The brute-force way to install missing Solaris 9 packages

September 14, 2006

Every so often I wind up having to fix up a Solaris 9 machine that doesn't have Sun's wget or the like installed. Presumably there is an official way of dealing with this, but so far I have just used my unofficial brute force approach.

Solaris packages in their native form are just subdirectories (with piles of stuff), with the directory name being the package name; on the Solaris 9 CDs, they're found in the subdirectory Solaris_9/Product. One of the formats pkgadd -d will deal with is just this, a directory full of package subdirectories.

So all you need to do is get the subdirectories for the packages you want into some scratch directory on the target system and point pkgadd -d at it. What I usually do is mount the Solaris CD-ROMs on some handy Linux system, bundle up the directories I need with tar, scp the tarball to the target, unpack it into a new subdirectory in /tmp, and run pkgadd -d /tmp/pkgs.

(If I think I may need the result on several systems, I save the tarball, so I don't have to go fishing around on the CD-ROMs again. For example, I have a carefully salted away one with SUNWfns.)

The one thing to watch out for is unexpected dependencies; pkgadd will prompt you about whether you want to go on even though they're missing, and you want to say 'no' (and then go find them and bundle them up too).

(You can see the full package dependency list for any package by examining its install/depend file, which is usefully in plain text.)

PS: wget needs both SUNWwgetu and SUNWwgetr. In our set of CD-ROMs, they are on the 'Solaris 9 Software 2 of 2' CD-ROM. SUNWfns is on the first Software CD-ROM, along with SUNWfnsx.

Written on 14 September 2006.
« The really irritating thing about voicemail
A bonus to writing documentation »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu Sep 14 12:22:49 2006
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.