Opt_Link 2.0


opt_link is a companion to the opt_depot perl script. It creates and removes symbolic links from a single depot directory to software packages in various package sites.


New Features of Opt_link 2.0


Upgrading from Opt_link 1.4.2

Installing opt_link 2.0 involves two processes:

  1. Creating a 'Sites' file.
  2. Replacing the master .exclude file used by opt_link 1.4.2 with a simpler exclusion file.

Creation of a Sites file. This file contains the priority and label information for any site directories. Here's an example:

  main /v/site/packages
  local /site/local/packages
  verylocal /usr/local/packs

Each label and accompanying directory would appear in a separate line in the sites file.

Note: The order in which the directories appear in the sites file dictates the priority level of the package sites, so in this case /v/site/packages would be a higher priority site than /site/local/packages. However, the prioritization of sites is optional (see priority modes)

New Primary Exclusion File. Instead of relying on a semi-permanent record of all exclusions, opt_link 2.0 processes each packages exclusion file during the program run. Because of this, the primary .exclude file need only contain those packages which are to have the highest priority exclusion.To put it another way, if a package is listed in the main .exclude file, it will not be installed.

The master exclude file can also contain site-specific package exclusions, which take the form of <label>:<excluded package>. So if the line 'local:emacs-19.34' appeared in the .exclude file, then emacs-19.34 would not be installed from /site/local/packages, although it may still be installed from another package site (ie /v/site/packages or /usr/local/packs)

A possible .exclude file might look something like this:

  # New 2.0 .exclude file
  
  netscape-3.01
  local:emacs-19.34
  bash
  main:pine3.91

It would consist of general and site-specific exclusions in any order.


Optional Features

-q Quiet: As with opt_link 1.4.2, there is the option of recording opt_link's daily activities in a separate log file. If a link is created or removed, this information is ordered by package site and is written to the log file. The -q command disables logging.

-v Verbosity: If desired, the administrator may receive a printout of opt_link's activities. The printout would contain the same information as that which is appended to the log file.

-n Test: Running opt_link with the -n command causes the same information to be printed to the screen as with the -v verbose option, but no actual linking or unlinking is performed by the program.

-g Get most recent: The -g command disables absolute priority mode and enables get_most_recent behavior. See the following section on Priority Modes for an explanation on what each mode entails.


Priority Modes

opt_link 2.0 accommodates a couple of different schemes for determining a package's priority:

Absolute Priority: If the Get most recent (-g) option is not selected, then a package will not be installed if its exclusion list contains a package which has already been installed from a higher priority site.

Get most recent: When the Get most recent (-g) option is selected, opt_link will allow exclusions to occur regardless of where a package is located. For example, a version of emacs-19.33 which excludes emacs-19.30 would be installed even if it resided on a lower priority site volume than emacs-19.30.


The .priority file

opt_link 2.0 does not use the .priority file at all.

It is used to resolve conflicts with the directory linking done by the opt_depot script, and is not needed for the linking operations that opt_link performs.


butcher@arlut.utexas.edu -- Last Updated: 20 May 1997