Solaris 8 Migration Assistant (Project Etude)

I’ve finally completed my first successful experiment with Solaris 8 Migration Assistant (S8MA) today – a new product from Sun which allows you to run Solaris 8 branded zones. It’s a fully and officially supported solution (for an extra price), but you can download the free 90-day trial to play with it and understand how really cool it is.

Why use Solaris 8 zones?

First of all, just a few words about the niche for this product. Many companies are rather conservative about their Solaris upgrades. Most systems are still running Solaris 8, if not something older. Quite often this is also dictated by third-party software dependencies – products which were bought and configured for Solaris 8, which are now so tightly integrated that there isn’t an easy way to migrated them into Solaris 10. Such systems are doomed for slow but very expensive death. Expensive, because with every year the hardware support for  servers capable of running Solaris 8 raises again and again.

[Read more…]

How-To: Installing Solaris with PXE/DHCP

Next Solaris Express build will probably contain one of the long awaited features: Solaris NewBoot architecture for x86 systems. Among other boot architecture improvements, NewBoot introduces GRUB with ufs support, and a pxegrub for PXE booting. Casper Dik describes it here: The End Of Realmode Boot.

In this entry I’ll try and explain how to set up an install server to allow you do a network install of Solaris with PXE.

Solaris PXE/DHCP server howto

The procedure described below describes steps necessary for PXE booting and installing a client with Grub bootloader, which is the default one in Solaris since Nevada b14. Obviously, the very first requirement is that you absolutely must have a PXE-enabled network card installed in the client machine you’re about to install.

[Read more…]

HOW-TO: using pkg-get to install CSW packages in Solaris

As I’ve mentioned already, a couple day ago I’ve installed Solaris Express 2/06 on my desktop. And while the system isn’t tuned for the maximum comfort, I thought I’d write a few entries for those of you who have just started learning and using Solaris 10.

CSW software repository

CSW (Community SoftWare) available through is wonderful repository with hundreds of software packages for Solaris 8, Solaris 9 and Solaris 10. Armed with the mighty pkg-get tool, this is definitely one of the easiest and quicked ways to get new software installed without having to compile anything to meet dependencies.

Today I’ll just give you a very brief intro, with a promise to revisit CSW in more detail later.

1. Packages storage
Create a directory where all the downloaded packages will be stored. It will be better if this directory is on a filesystem with plenty of space – it’s hard to make any space usage predictions, but I believe a couple of available gigabytes would be useful.

WARNING: this directory is merely a storage for the packages. The software installed from these packages will reside in a different directory structure – under /opt/csw (read on).

solaris# mkdir /export/dist/csw
solaris# cd /export/dist/csw

2. Using pkg-get command

This command line tool is all you’re going to ever need to download, install or update your CSW packages. Before you do anything else, you have to download the package with this tool and get it installed. I’m not showing the standard output commands will give you. Here I’m only giving you the commands you may use.

solaris# /usr/sfw/bin/wget
solaris# pkgadd -d ./pkg_get.pkg

At this stage you’ll have a /opt/csw directory created, where all the installed software will be put. pkg-get is the first installed software, and the full path to this command will be /opt/csw/bin/pkg-get

3. Configuring pkg-get

To change configuration parameters of pkg-get you’re going to edit the /opt/csw/etc/pkg-get.conf file. There are parameters you may want to change.

URL parameter in pkg-get

url – this specifies what mirror of the openCSW repository we want to use.

For best results, visit the openCSW mirrors page and select the mirror closest to you geographically.

In the pkg-get.conf file you have to find this:

# default site, in USA:

and now edit the line to include your new mirror server, and not the default The closest one to me is

# default site, in USA:

WARNING: updating mirrors is a responsibility of their personnel, and not the maintainers. Because of this, some of the official mirrors might not have all the latest changes of the main repository So, if something doesn’t work, try changing this url parameter back.

UPDATED: for instance, didn’t seem to have the Solaris 11 support – which is essentially what all the latest Solaris Express builds are. Because of his, pkg-get couldn’t find the 5.11 catalog file for my Solaris version, so I had to get back to, even though my access to it can some be really slow.

PKGADDFLAGS=-G – this line has to be uncommented if you don’t want pkg-get trying to install new packages into any Solaris zones but the global one


This parameter has to be changed to reflect the location of packages storage directory:


4. CSWcommon package

This package has all the core files and directories pkg-get needs to begin with. This is also the necessary package to be installed as most of other openCSW packages depend on it.

solaris# /opt/csw/bin/pkg-get -i common

That’s it! Now you’re ready to install any CSW software packages!

HOW-TO: using truss, ldd and nm to observe binary files

I’ve decided to write down a few useful tips on observing binary files in Solaris. The commands used are available since Solaris 8, so hopefully you’ll find these tricks useful.

Quite often it happens that the programs we run don’t work as they should, showing us errors like “referenced symbol not found” or this: ./thunderbird-bin: fatal: open failed: No such file or directory

So in order for us to find out what exact librabries are being used by a given binary, or where it expects these libraries to be found, and what libraries are not found at all, we have to take the following steps:

1. Determine what libraries are needed

First we have to see what libraries the ld linker is going to use for our file. For instance, this is how you would find our what libraries are used by the main executable of the Thunderbird mail client:

[Read more…]

HOW-TO: X11 forwarding using ssh, putty and Xming

I’ve been using this combination on a daily basis for more than a year now, and I can’t stress enough how really useful it is. I use it both at home and at work, and everything is very easy and – most importantly – absolutely free.

X11 forwarding with SSH

X11 Forwarding with ssh is a wonderful feature which allows you get windows of a remotely started applications shown on your own desktop. For Windows, there are lots of pretty good albeit expensive products like Citrix, GoGlobal and XWin32, which allow you access your remote Unix desktop sessions. But in reality, if you don’t need any sessions but only want to remotely start an application and get a window from it on your desktop, you won’t need any of these expensive products – the easiest will be to use X11 forwarding and Xming.

[Read more…]