Getting Started | Documentation | Glish | Learn More | Programming | Contact Us |
Version 1.9 Build 1556 |
|
Consortium installations differ from end-user installations in having a local copy of the master CVS source code repositories. The local code tree is updated regularly by the AIPS++ code distribution system via a procedure called inhale (p). Consortium installations also have a mechanism for checking sources out of, and in to, the master CVS repositories.
Before starting a consortium installation the following accounts must be created by the unix system administrator with the specified user and group ids in /etc/passwd (see §1.4):
aips2mgr uid=31415 gid=31415 aips2prg uid=31416 gid=31416 aips2usr uid=31417 gid=31417
The user and group ids correspond with those of the master sources and although different ids may be used it is highly desirable that they match. The home directory for the accounts should be set to the root directory of the AIPS++ tree. This can be anything but /aips++ is preferred and is assumed in the following examples.
The following groups must be created with the matching group id and membership (in /etc/group):
aips2mgr gid=31415 aips2prg gid=31416 aips2mgr aips2usr gid=31417 aips2mgr aips2prg
You should also add your account name and the names of any other local AIPS++ managers to the aips2mgr group membership list. Do not add everyone to the aips2mgr group, it grants permission to directly manipulate the RCS sources. You should also add the names of all local AIPS++ programmers to the aips2prg group. This will allow them to check out and modify the AIPS++ sources. The aips2mgr account and the aips2mgr and aips2prg groups will be used during the installation.
Now create the AIPS++ root directory:
yourhost% mkdir /aips++ yourhost% chown aips2mgr /aips++ yourhost% chgrp aips2prg /aips++ yourhost% chmod ug=rwx,o=rx,g+s /aips++
In practice /aips++ will often be a self-contained filesystem, usually on a separate disk. Allow 1Gbyte of disk space for the AIPS++ system; any short-term surplus may be used for programmer workspaces.
This is as much as needs doing by the system administrator at this stage. The remainder of the initial part of the installation can be done by aips2mgr.
First fetch the source code via anonymous CVS:
yourhost% cd /aips++ yourhost% cvs -r -d :pserver:anonymous@polaris.cv.nrao.edu:/home/cvs checkout -d code casa/code
This will fetch the main development branch of AIPS++. After the checkout completes you will need to configure the source installation
yourhost% cd code yourhost% chmod 544 install/configure.cvs yourhost% install/configure.cvs
You will be asked a series of questions, most of which have sensible defaults, aimed at constructing the AIPS++ aipshosts (p) file. You then have to edit your site-specific aipsrc (p) and makedefs (p) files. Template versions of these files are supplied by configure (p) and you should read the instructions carefully. After making your site-specific definitions configure will run some tests to check whether your makedefs definitions look sensible. Your install directory will then be made. This consists of a few C compilations and installation of some shell scripts, the most important of which is inhale (p) itself. Ignore any error message from gmake (p) concerning the non-existence of various subdirectories of /aips++/code.
At this point your AIPS++ installation has been bootstrapped to a state where sneeze (p) can be run.
You should also have a C++ compiler, and a TEX installation which includes LATEX, dvips, METAFONT and LATEX2HTML. Unset the DOCSYS variable in makedefs if you don't have TEX, it will prevent compilation of the AIPS++ documentation. The documentation may be downloaded using the aupdate command.
Users of SysV based systems such as Solaris should be warned that inhale (p) requires the BSD version of sum for computing checksums. You must ensure that the BSD version will be found ahead of the SysV version in aips2mgr's PATH. The GNU version of sum (in the GNU ``fileutils'' kit) provides both algorithms and uses BSD by default. Less salubrious possibilities are to put /usr/ucb (Solaris) or /usr/bsd (IRIX) ahead of /usr/bin in aips2mgr's PATH, or to create a symlink to the BSD version of sum in the AIPS++ bin area.
First invoke aipsinit (p) to add the AIPS++ bin directory to your PATH. If your interactive shell is a C-like shell (csh, tcsh) you would use
yourhost% source /aips++/aipsinit.csh
whereas for Bourne-like shells (sh, bash, ksh) you would use
yourhost% . /aips++/aipsinit.sh
If you use some other shell you'll have to revert to one of the above for the remainder of the installation. Now invoke sneeze (p)
yourhost% sneeze -l -m cumulative&
This will build and install the latest version of the sources which are under active development. If you made any mistakes in your aipsrc or makedefs definitions some of these may become apparent during the installations. After fixing them you can recover via
yourhost% gmake -C /aips++/code allsys
The allsys target will compile all AIPS++ sources, including documentation (assuming of course that you have the compilers). If you just wanted to compile the documentation alone you could use
yourhost% gmake -C /aips++/code docsys
If everything has gone properly you should now have an up-to-date AIPS++ installation. However, in order to keep it up-to-date you must define a cron job to run inhale (p) on a regular basis. The normal procedure is to do a cumulative update every Saturday evening. However, you may wish to maintain a (possibly separate) system which is updated on a daily basis. Half-daily updates are also possible, but note that 12 hours may not be sufficient time to rebuild the system.
The exact timing depends on your timezone with respect to the master. New updates are produced by 0700 and 1900 Socorro time (MST or MDT) but you should allow at least an hour's grace before collecting them. An example crontab file might resemble the following:
# Cumulative update of the AIPS++ directories each Saturday evening. 00 22 * * 6 (. $HOME/.profile ; inhale.cvs -c) 2>&1 | \ mail aips2mgr aips2-inhale@nrao.edu
(Note that all cron entries must be one-liners but they are broken here for clarity.) You may need to add the -n option to inhale (p) accordingly. Note that, as in the above example, the log produced by inhale is generally forwarded to aips2-inhale@nrao.edu. These logs are archived for about 10 days and are accessible via the AIPS++ home page http://aips2.nrao.edu/aips++/docs/html/aips++.html. This is particularly useful for verifying code portability, especially on platforms that a programmer doesn't have ready access to. You should also add the email address of a local person who will monitor the inhale logs (aips2mgr in the above example).
For active developers, you will need a CVS account on the main CVS repository server. Please send an encyrted password to aips2mgr@aoc.nrao.edu. For more information about CVS visit the webpage at http://www.cvshome.org.