Opt_depot 2.0 Glossary


22 August 1995 Revised April 20 1997

Jonathan Abbey -- jonabbey@arlut.utexas.edu

Erik Grostic -- grostic@arlut.utexas.edu

  1. Central Package Archive
  2. Per-Package exclusion files
  3. Depot Directory
  4. Software Base Directory
  5. .exclude file
  6. .priority file
  7. sites file


Central Package Archive

The Central Package Archive is any location where packages are physically installed for remote access via NFS. These packages are linked into the Local Depot Directory by opt_link for access by opt_depot. The Central Package Archive contains a set of subdirectories, one for each package that you wish to provide access to. Each package should contain a bin directory, a lib directory (if appropriate), include, man, man/manl, etc. Basically each package is a miniature /usr/local unto itself.

At ARL:UT we have /v/site/os in addition to /v/site/packages, for software that we want to make available to our NFS clients, but which we want users to have to take affirmative action to make local copies that will be available even if the Central Package Archive server is not available.


Per-Package Exclusion Files

Packages in the Central Package Archive may contain .exclude files, allowing packages to exclude earlier versions of itself or other packages. The easiest way to update software on the network is to add the currently installed version of the software package to the new package's own .exclude file. The current links to the older version will be removed and the new package will be given clearance to be installed.

A per-package exclusion file for netscape-4.0 might look something like this:

  netscape-2.0
  netscape-3.01b1
  netscape-3.01b2
  netscape-3.01


Depot Directory

This directory will be where all software installed through opt_depot is configured to run from. Each system you want to run client off of opt_depot should have its own copy of this directory.

On our system, this directory is called /opt/depot. We install our software so that packages look for their files under /opt/depot/<packagename>. For instance, we compile GNU Emacs 19.29 so that it expects to see its files under /opt/depot/emacs-19.29/{bin|lib|include|info} and so forth.

The opt_link script will make symbolic links from your Local Depot Directory to your Central Package Archive. Once this is done, the opt_depot script will make symbolic links in your Local Base Directory, which is where user's paths (PATH, MANPATH, LD_LIBRARY_PATH) will find the software that you install.


Software Base Directory

This is the directory that will contain the bin, man, lib, include, and info directories that you want opt_depot to manage. In our case, we have opt_depot managing /opt. Opt_depot can work cooperatively with files already existing in /opt/{bin|man| lib|include|info}. Opt_depot will add and remove symbolic links from these directories as appropriate for the packages that you install or remove. The Base Directory need not be in any special place relative to your Local Depot Directory, but the Local Depot Directory must be in the same location across all systems using your packages.

The Base Directory can contain .exclude and .priority files which are used to exclude unwanted pieces of software and to specify how conflicts will be resolved during the opt_depot linking process, respectively.

The man pages, diagrams and documentation that come with the tar file explain things in detail.

The main thing you have to remember is that you must compile and install your software so that it will look for its files through <Local Depot Directory>/<PackageName>. This is what gives the packages position independence, and allows you the choice of installing locally or on a Central Package Archive.


Exclusion File

Opt_depot allows the system administrator to remove installed software packages through the use of a .exclude file. This file contains a list of packages that opt_depot and opt_link will ignore -- that is to say no package contained in the .exclude file will have links to it built by opt_depot or opt_link. opt_clean will remove any links to packages listed in the .exclude file.

Files included in the list can either start with the package name (e.g. opt_depot/bin/opt_clean) or be absolute pathnames (e.g. /opt/depot/opt_depot/bin/opt_clean), or be the the names of the packages themselves.

Package names should be the name of the package as listed under the depot directory and should contain no slashes. Comments may follow a pound sign placed at the beginning of a line.

Example of a .exclude file:

   # I'm a .exclude file

   gcc-2.63
   netscape-1.0
   tcl
   /opt/depot/tiger/lib/c
   java-1.0/bin

Location: By default, opt_depot and opt_link look for the .exclude file under the software base directory.

Per-Package Exclusions: Each package may have its own .exclude file that contains a list of any earlier, outdated versions that should be excluded.


Priority File

.priority is a list of packages and package files in order of decreasing priority. It permits the user to specify which packages or files are more important when name conflicts arise.

If two files conflict then the priority list is searched. If either of the files or directories containing them are found then a comparison is made to determine which is of higher priority. If a file or its package is not contained in the priority list then it has the lowest priority. If two files conflict and neither are found in the list then the first one linked remains.

The format of .priority is the same as .exclude, meaning that any files included in the list can either start with the package name (e.g. opt_depot/bin/opt_clean) or be absolute pathnames (e.g. /opt/depot/opt_depot/bin/opt_clean), or be the the names of the packages themselves, if you want to assign relative priority of all files in a pair of packages.

Package names should be the name of the package as listed under the depot directory and should contain no slashes. Comments may follow a pound sign placed at the beginning of a line.

A typical .priority file might look something like this:

  # I'm the .priority file

  ghostscript-3.51
  xv-3.10a
  X11R6
  X11R5
  SUNWste/bin
  imsl/bin/


Sites File

One of the features introduced in opt_depot 2.0 is the addition of multiple package archives. Administrators can now exercise the option of having packages in several different locations be linked into the depot directory. There are also several methods for prioritizing the separate archives.

Opt_link uses the sites file to specify the locations of the package archives and their associated labels. Each entry in the sites file is in the form of <label>  <location of archive>.

The labels are used for excluding packages from a specific package archive. An entry in the .exclude file can have the form <label>:<package-name>, which indicates that only the package from that specific labeled archive should be excluded.

For Example, say the following entries appear in the sites file:

Global  /v/site/packages
Local  /usr/local/packages

If you only want to exclude a particular version of netscape contained in /v/site/packages, and a version of emacs contained in /usr/local/packages, then you might include some entries in the exclude file that looked like this:

  # It's the .exclude file

  Global:netscape-4.0
  Local:emacs-19.33

Quick syntax note: When specifying a labeled exclusion a colon must come between the label and the package-name, whereas there is only whitespace between the label and the archive location in a sites file entry.

Location: The default location of the sites file is under the /etc subdirectory of the opt_depot package.


opt-depot@mail.utexas.edu -- Last Updated 20 May 1997