$PATH in Solaris

It's always the little things about new Unix systems that get to me. Take $PATH on Solaris.

On a modern Linux distribution with a stock install, a sysadmin's full $PATH needs only five directories:

/bin /usr/bin /sbin /usr/sbin /usr/X11R6/bin

(Sometimes /usr/bin/X11 is used instead of /usr/X11R6/bin .)

On Solaris 9, my $PATH is (so far):

/usr/bin /bin /usr/sbin /sbin /usr/ccs/bin /opt/sfw/bin /usr/openwin/bin /usr/sfw/bin

Why are all of these necessary? Well,

  • /usr/ccs/bin is where Solaris hides make (and m4 ).
  • /usr/openwin/bin is where all the X programs live.
  • /usr/sfw/bin has wget .
  • /opt/sfw/bin has all the useful freeware programs, like rsync , python , lynx , and a diff that understands -u .

If I want to do anything with Sun's dt* tools, I need to add /usr/dt/bin . If I fiddled much with Java, I'd want to add /usr/java/bin .

Personally, I think that this is the sign of immature package management tools in Solaris 9. Not needing a pile of entries in $PATH is much easier for users, and decent package management tools make it no more difficult for the system administrator to manage.