I decided to use Solaris as my home network gateway, after hearing a lot of good about it. After installing Solaris 10 and using it for a couple of months, I have had a very satisfying experience. There are some very well done features, like the service system, ZFS or DTrace. On the other hand some aspects seem strangely neglected, and make the initial experience difficult.
Getting the packages you need
The first thing you will look for is the slocate utility, which you won’t find. It makes it difficult to find your marks in a new system. Fortunately a couple of great freeware is included with Solaris through a companion dvd. Install most of them
One difficulty (the object of the next paragraph) is that system paths are not set to encompass all directories with applications. So one application you need might already be installed, you just have to look for it.
You will probably want some more Gnu/Linux applications, which you can get through Sunfreeware or Blastwave. The latter is my favorite. Its howto makes it easy to set-up a secure pkg-get utility. It is not as advanced as a Linux package manager, but at least it resolves package dependencies.
Toward the end of this process, you get the best of both worlds: powerful original Solaris tools, and your beloved Gnu/Linux apps.
The path issue
One issue you realize quickly is that the bin programs are located in scattered folders. The root PATH, once set, might look like: “/usr/sbin:/usr/sadm/bin:/usr/sadm/admin/bin:/usr/bin:/usr/sfw/bin:/usr/dt/bin:/usr/openwin/bin: … :/usr/local/bin:/opt/csw/bin:/opt/sfw/bin:/opt/SUNWinck/bin:/opt/SUNWvts/bin:”. Problems:
- It makes it more difficult to size your partitions correctly.
- The PATH is not set automatically, nor updated when you install a program.
- Since you do not have the slocate utility, you have to use the slow find command to locate a specific program (pain!).
- It is the same issue for man’s MANPATH.
There are different solutions to this problem. Some involve modifying the packages before install so that they all go to the same place. But the best quick fix I have found is the following. In /etc/default/login, the basic PATH and SUPATH should be set:
Then in /etc/profile you can expand both the PATH and the MANPATH. By using the shortcut /opt/*/bin you can gather all the different bin folders located in /opt.
PATH=$PATH:/usr/sfw/bin:/usr/dt/bin:/usr/openwin/bin:/usr/local/bin PATH=$PATH:`ls -d /opt/*/bin | tr "n" ":"` export PATH MANPATH=/usr/man:/usr/share/man:/usr/sfw/man:/usr/openwin/man:/usr/dt/man:/usr/local/man MANPATH=$MANPATH:`ls -d /opt/*/man | tr "n" ":"` export MANPATH
Of course you have to be very careful in the way you set the PATH! If you include folders that can be modified by a user, make sure that they appear after the system’s folders, or else a user can have the system executes a malicious program.