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":
- /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.
- /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).
- /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.
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:
- Build Steps
- 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.
- 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.
- Go to the Software web site and update or add documentation for the package.
- Notify a staff member to have the package installed.