Building IPS on Solaris 10
by Mark on Aug.14, 2009, under solaris
Centralised package delivery on Solaris can be a bit of a pain. Blastwave was a nice solution, but with OpenCSW splitting away from them and the two camps now delivering the same packages to the same disk hierarchy we’re left with too much choice and a confusion of options. They’re still both a good solution, but maybe there is a better option.
Sun have a solution in OpenSolaris in the form of Image Packaging System (IPS), but this is not yet available to standard production Solaris. At some point in the future it’s expected this will become the standard packaging solution for Solaris, but today we can back port it with relative ease.
Kronox at Sun has blogged about getting IPS working on Solaris 10. (UPDATE: This link now seems to be dead, which is a great shame. The rest of this article should still make sense though). With this being written a short while back it now doesn’t work all that smoothly. Here are the steps I took to make it work with x86 Solaris 10 update 6.
Instead of downloading and compiling Mercurial I chose to grab it from OpenCSW. A simple workflow to do this might be
download and install pkgutil (I prefer it to pkg-get)…
$ gunzip pkgutil*
# pkgadd pkgutil*
Add /opt/csw/bin to your path, and install mercurial…
# pkgutil -yi mercurial
You’ll also need the Gnome doc utils and the Python XML2 parser library. We can get these with ease from OpenCSW too…
# pkgutil -yi gnome_doc_utils pylibxml2
Ensure you have the following Sun packages already installed (they’re part of a standard Solaris 10u6 install, but if you did a cut down install you may not have them)
SUNWgnome-xml-share
SUNWlibpopt
SUNWlxsl
SUNWopenjade
SUNWopensp
SUNWperl-xml-parser
SUNWgnome-common-devel
SUNWopenssl-include
Grab Python setuptools and install as per the instructions on the site.
Download the IPS source…
hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate ips
Assuming you’re using the IPS source from OpenSolaris after build 106, you’ll need to export the environment variable BUILD_PYOPENSSL. Just set it to ‘yes’.
Now build the packages with ‘make’.
May 6th, 2009 on 11:55 pm
Thanks for taking the time to publish this, it was a huge help to me!
May 7th, 2009 on 7:30 am
Brilliant! Thanks for letting me know Scott. Have you got the client side working ok on Solaris 10 too?