Friday, November 10, 2006

Installing Solaris 10

In order to be able to do some performance measuring and improve performance, I decided to install Solaris 10 to be able to get access to the excellent DTrace utility. If you don't know what it is or what it can do, there is an excellent article about DTrace in The February issue of ACM Queue.

I haven't really been using Solaris for a long time, so I thought it would be great fun to try out Solaris 10 and see what happend in the last years. Never could I imagine that it should have advanced this much! (To be honest, it was quite a while ago. I remember that when we upgraded the workstations 4 to 8 MiB memory, they became blindingly fast and that we were complaining that Solaris was too big because it occupied 2 MiB memory.)

This is going to be really fun!

For the hardware interested: the computer that Solaris was installed in is a AMD 64 X2 4200+ (dual-core, AM2 socket) with 2 GiB 553 Mhz DDR-2 memory. It is built around the ASUS M2NPV-MX motherboard, with a 250 GiB Maxtor Maxline S-ATA disk, giving me good performance and plenty of room for working. It's got a Gigabit Ethernet as well, far beyond what I need to saturate my WLAN.

Installation was straightforward. I downloaded the five CD images from the Downloads Page at OpenSolaris and created CDs from those (there is a DVD images there as well, but I had a big stack of blank CDs within reach, so I chose that). I installed the SUNWonbld package as well (since it's in the instructions in the README file), but I really don't see what it is needed for unless you're building and installing from the source. I'm keeping it around, since it might come in handy later.

The initial installation is quite basic, so there were a few things that needed to be fixed. First of all, there are none of the usual tools that I want (such as gcc, gtar, apache, bzip2, etc.), so I downloaded and installed the Solaris Software Companion DVD. After all that is done, it is necessary to set up the path correctly in /etc/profile. First of all, I don't like to keep . in the path, so I'm setting it up explicitly to contain only what I wanted to be there. Since I wanted to set up the manual path as well, I wrote this little function for use inside /etc/profile:

SetupSoftwareDirs () {
  for D do
    [ -d $D/man ] && MANPATH=$MANPATH${MANPATH:+:}$D/man
    [ -d $D/bin ] && PATH=$PATH${PATH:+:}$D/bin

# Example usage
SetupSoftwareDirs /usr/local /opt/sfw /usr/share /usr
Don't forget to unset when cleaning up at the end of /etc/profile.

Since I'm using a DSL router and have my IP assigned (and regularly reassigned) via DHCP, I needed to install a Dynamic DNS client and create a service for it in order to be able to find the machine via DNS from my laptop. I'll write some more about that adventure next time.

The system works fine, except for one small issue that I don't know how to fix: when I log out on the main console, the mouse pointer disappears. I can still click on buttons, if I can find them, but the pointer is just invisible and does not reappear when I log in again. Anybody got an idea about how to fix it?

Here are some resources that I've discovered are quite handy: