Solaris Admin

Packages

We install different "classes" of software into different places. The system software, Solaris, gets installed on all the computers to make them baseline usable. Software added above and beyond the base Solaris usually fits into one of a small handful of categories. These are the valid CSE system installation "targets":

  1. /usr partition. This is where we try to not install software. Each time the system software gets upgraded, /usr gets wiped out. We try to only install software here that is absolutely crucial to make the machine usable (e.g. sudo, tcsh) or things that run as system daemons (e.g. gated, Samba). The software we install here always goes into /usr/local. Most of the software we install here is from source code but a few of SUN's packages (mostly Java) now install to /usr. The only exception to this general rule is a few pieces of software that we update which comes with the base Solaris operating system. /usr/lib/sendmail is the primary example of this. We try to avoid doing this, since it makes OS upgrades harder and our configurations non-standard.
  2. /opt partition. Most packages from SUN as well as some from third-party vendors install best to /opt. The large central servers each have their own /opt partitions, currently armstrong, castor, hadar, milo, mcast, oliver, and picasso. Electra, the mail hub, also has its own /opt but it is small and only has a few things installed (the C Compiler mostly).
  3. /util partition. The primary place software gets installed is /util. There is a "master copy" on milo. Each night at 2am a cron job on milo starts up and rdists milo's /util to armstrong, castor, hadar, and oliver. Almost all the software is compiled from source code kept in milo:/src.

Installing Solaris

This section will be built up based on what gets done during the upgrade from Solaris-8 to Solaris-9.

The first step during an upgrade cycle for Solaris is to set up a separate JumpStart configuration on the main JumpStart server (currently milo) to handle the new OS release. See the JumpStart document for details on that. Getting JumpStart properly configured handles the bulk of the Solaris installation and configuration. Virtually all of the workstations will rely completely on JumpStart for their configuration. The big servers and slightly more tailored machines will have special needs and those are what this describes.

Servers with local /opt

If a server has its own local /opt (this is usually an indication it is either one of the big central servers like hadar or the machine is being tailored to rely on as little as possible) depending on its needs you may need to install post-JumpStart:

  • Compiler suite: go to /src/local/PACKAGES/devpro_v9n1_sparc and run ./installer (graphical installation program). Install "University Edition" unless you have a reason to do something else.
  • Netscape 6: go to /src/local/PACKAGES/Netscape_6.2.2 and use pkgadd for the packages SUNWns6xp SUNWns6m SUNWns6b SUNWns6p:
      sudo pkgadd -d . SUNWns6xp SUNWns6m SUNWns6b SUNWns6p
    

Local Installations from Source Code

  1. Build Steps
    1. Download and unpack the source code.

      The source code is kept in /src. The directory structure in /src follows the directory structure of where the package or program gets installed. If the program got installed in /util/bin, the source code for it will be in /src/util/bin. If the package sits in its own directory in /util/elm, the source code for it will be in /src/util/elm. If the program got installed to /usr/local/sbin the source code is in /src/local/sbin. The source directories will be the package name plus some indication of what version it is, for example /src/util/elm-2.5. You should be added to a group that allows you to write files into /src without needing super-user privileges. You can unpack the files where they need to go and do the entire configuration nd compilation from your normal account.

    2. Configure and build the source, being sure to set the destination to the appropriate place in /util.

      The configuration steps will generally be described inside the software's distribution. Often, you need to identify paths to libraries that the package needs, as well as where it will be installed. If what you want to install compiles to one or some small number of executables it should go in /util/bin. If there are support libraries for it they should go to /util/lib and manual pages should go in /util/man. Try to put the source code in /src/util/bin with the directory name being the name of the program with the version number tacked onto the name. Some packages warrant their own directory in /util. Try to set it up so that the target directory has the version number as part of its name. TeX is installed this way.

      If the package has several optional features at you aren't sure which ones are needed, ask a staff member more experienced with that package.

      For the vast majority of software, the final steps to install it will be:

      hostname {build_dir} > make
      hostname {build_dir} > sudo make -n install
      hostname {build_dir} > sudo make install
      
      make gets done from your normal account. sudo make -n install will show you what commands will be done but will not actually do them. Use this to verify the software will be copied to the place you expect it to be copied. If what it says will be done is acceptable, then do sudo make install.

      We'll add more tricks (-R flag for libraries, using env, etc) as needed.

    3. Go to the Software web site and update or add documentation for the package.
    4. Notify a staff member to have the package installed.