We are using Fermilab's ups/upd (Unix Product Support and Unix Product Distribution) to maintain and distribute the multiple versions of our code. ups/upd allows a large number of variations on how it is installed, and on how the code it is managing is installed. This document describes only one such, essentially the one we are using here at D0 on d0chb.
The steps you'll need to take in order to setup your site tobe able to receive remote distributions of the D0 software are:
NOTE: the names of these areas need not be as given above,
but it makes life simpler if they are. In the following I will assume these
names. If you wish to put them somewhere else, just substitute your names.
UPS/UPD/Perl installation
You must first install ups/upd and perl (v5.004 or later). The
documentation for ups and upd is at
http://www.fnal.gov/docs/products/ups/.
The Reference Manual (available in both html and postscript versions) is
very long and detailed and should be consulted if the shorter Installation and
Upgrade Instructions or even shorter Installation Summary are not clear. We
recommend working backward from the shorter to the longer documents as needed.
For most purposes the
Installation Summary
along with the specific examples given here should suffice. The bullets below
are the same as those in the summary. This is an amplification of the
information in that summary with specific recommendations for D0. So read
both of these documents at once.
You can save the tar files using your web browser, but in order to use upd or anonymous ftp you'll need to be registered. These programs are freely available for anyone in the high energy physics community. But you do need to fill out and email the UPD Registration Request form to me at d0-release-mgr@fnal.gov. I'll get you registered at the FNAL kits site (fnkits) as well as at D0's distribution site.
If you have or will have only a single "flavor" of operating system reading from this disk, unwind them into: /usr/products/ups/v4_x or the directory appropriate for the version you pulled. If you'll have multiple "flavors" using that disk then add a further level of subdirectories named for the flavor you are pulling (ie IRIX+6/). The latter is assumed in several of the examples below.
Follows is a very short description of why this file is so complex:
There are four sections because this file is where the directory structure
assumed by upd is determined. We have four different
structures and or destinations. /usr/products and /d0usr/products will
normally have the same structure, but we must be able to tell upd which db
the product goes into. /d0dist/dist has two different structures, the
packages/ tree and the releases/ tree. Therefore our updconfig file must be
able to handle the four cases.
NOTE: this example is for
an installation where several "flavors" of machines share a single
/usr/products and/or /d0usr/products disk. If you have only one flavor you can
remove the "/${UPS_BASE_FLAVOR}" entry in UPS_PROD_DIR in the relevant
sections.
NOTE: you shouldn't need to edit any fermi files. In fact we are not recommending that you install them. You can, but don't need to. For our purposes all you need do is to tell your users who want/need to use the D0 software to put one of the following lines into their .login or .profile files:
> source <your-setups_dir>/setups.csh
or
> . <your-setups_dir>/setups.sh