Solaris - install continues with software. Advice?

by Derek Sivers

Even before installing Solaris, I heard that Blastwave is the best. So I followed this perfect tutorial:

Wonderful. Like Debian apt-get, it installs everything and its dependencies from binaries. Incredibly fast.

But... it puts things in unexpected places. FreeBSD has spoiled me with EVERYTHING going in /usr/local/

Most things installed with pkg-get seem to install into /opt/csw/bin/

All of MySQL's many subdirectories went into /opt/csw/mysql5/. All of PostgreSQL's went into /opt/csw/postgresql/

*Do I really have to add ALL of those directories into my PATH?* (System-wide for all users, too, I guess?) What's the typical way you Solaris fans manage these?

When installing MySQL I got this message:

Configuring service in SMF.
MySQL 5 is using Service Management Facility. The FMRI is svc:/network/cswmysql5:default

I guess my.cnf is kept at /opt/csw/mysql5/my.cnf. Data directory is /opt/csw/mysql5/var.

You can start the MySQL daemon with:
cd /opt/csw/mysql5 ; /opt/csw/mysql5/bin/mysqld_safe &

So far this Solaris PDF called "System Administration Guide: Basic Administration" has been incredibly helpful. But man, this Service Management Facility stuff is kinda complicated.


2006-03-27 09:13:12
installing software - the pkgsrc alternative
Since you have a BSD background, you may want to take a look at using pkgsrc (the NetBSD equivalent of FreeBSD's ports tree ) on Solaris instead of using pre-built packages.

Pkgsrc is supported on all of the major *nix platforms including Solaris.

In pkgsrc one may specify the installation prefix that you would like to use and have all of your packages and configuration files installed to what *you* consider to be sane locations (e.g. /usr/local/ ) .

Pkgsrc also supports building Solaris style packages if that is more to your taste.

Just my 2 cents. :-)
2006-03-28 10:08:30
SMF Stuff
I thought the SMF stuff was bogus when I started using it too, but it grows on you. Having a framework to use to create start, stop and such has turned out to be a bit of a help. It's nice to be able to do svcadm disable blat, or svcadm restart apache rather than say mv /etc/rc3.d/S90blat /etc/rc3.d/s90blat.

Takes a little getting used to, but it's worth it eventually. This article at big admin helped too:

2006-03-28 22:20:48
Using /opt
The /usr/local and /opt stuff is kind of a philosophucal difference in Unix. I'll keep small common stuff in /usr/local, but I prefer major apps go in /opt.

For managing all of these paths my .bashrc file has a script that checks all paths and then builds the $PATH variable dynamically.


You'll grow to love the SMF stuff, trust me on this. To start this mysql service just use

$ svcadm enable svc:/network/cswmysql5:default

I'll admit that service name looks kind of weird, mostly because of the naming convention established for applications and network services. Maybe it's just semantics.

2006-03-29 10:03:38
Rather than add the various bin directories under /opt/csw to the PATH, I just symlink from /opt/local/bin, which is in everyone's path.

This way I can control which CSW apps people hit. Sometimes I prefer another version.