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.
The steps you'll need to take in order to setup your site to be able to receive remote distributions of the D0 software are:
The full documentation for ups and upd is at http://www.fnal.gov/docs/products/ups/ . But a very easy to follow bootstrap procedure can be found at ftp://ftp.fnal.gov/products/bootstrap/current/index.html . I used the "Automated install on a UNIX system with a user defined configuration" prescription to create an installation in my home area that is independent of any that are already on the machine. I just had to use the "-F" option when running the "stage1.sh" script.
Once done with that, you'll have a directory with the following in it:
catman/ db/ etc/ man/ prd/
At this point you have ups/upd and perl installed and you have an operation ups system. We'll tell you how to access it later.
NOTE: To support D0 code you must modify <main-ups-dir>/db/.updfiles/updconfig . If you have installed any of the databases in a non-standard location (didn't use the predefined configurations) you must modify <your-ups-db>/.upsfiles/dbconfig
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