Linux User in Solaris 10 Survival Guide
28 Sep2007

This week aside from tons of different tasks I was working on one of MMM users complaint regarding some issues with MMM on Solaris 10. I knew that this OS has not so user (admin) friendly environment (especially for people with strong GNU-related background), but had no other options and decided to install Solaris 10 in VMWare Fusion on my desktop.

Installation was a bit strange comparing to Debian/RHEL/Ubuntu and FreeBSD where I have a strong experience, but I’ve managed to install it successfully. The major problem after my first boot was a lack of knowledge about how things could be done in Solaris… Below I’ll describe what generic Linux admin could do with Solaris to make it easier to use and more friendly for GNU-addicted mind 😉

Notice: If you’re Solaris administrator, please, don’t read further because I’m pretty sure that all these suggestions would look dumb for you (I knew some old solaris admins before and they hated GNU environments).

First of all, you’ll need to add some non-root user account to be able to login remotely via SSH. I did it using some Users&Groups Management tool after my first login into Gnome desktop.

Second step I did (but it is not mandatory I think) was to disable Solaris graphical login and enable remote (ssh) root login (someone would say it is dumb, but I like to be able to log in with any user account I want). To do it I’ve logged in via ssh and executed a command:

1
2
3
4
5
6
# /usr/dt/bin/dtconfig -d
done
desktop auto-start disabled.
# vi /etc/ssh/sshd_config
.... change PermitRootLogin from no to yes ....
# svcadm restart ssh

Just after this step I’ve installed Blastwave.org software packages management tool:

1
2
# pkgadd -d http://www.blastwave.org/pkg_get.pkg
.... lots of output ....

When it was finished I’ve added following line to ~/.profile and rebooted the server:

1
PATH=/opt/csw/bin:/opt/csw/sbin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin:/opt/csw/gcc3/bin

After the reboot, I’ve logged in remotely, ran bash and installed all I needed for happier life:

1
2
# pkg-get install perl gcc3 subversion top tcpdump tcptraceroute mtr
# pkg-get install mysql5 mysql5client mysql5devel less

That’s it! After these few steps I’ve got pretty nice system with many tools I’ve got used to and was able to fix a bug for customer pretty quickly.

Notice: Of course, many of you would like to use bash as your root account primary shell, but I would not recommend to do it because it could cause weird problems in case of server crash (/bin/sh is statically linked and has more chances to run in case of FS crashes).