LIGOtools is a package management system (written in perl) used to distribute software commonly used for LIGO data analyses. It is similar, at least in spirit, to Linux tools like rpm or dpkg. While commonly used to distribute binaries, LIGOtools can also be used to distribute source packages. We are interested in LIGOtools because it includes the
dmtroot
package used by Bluestone, and it also could provide an easy way to distribute supporting LIGO software to the Grid nodes which will be used for remote execution of a LIGO analysis for I2U2.
Installation of LIGOtools is straightforward. It all goes into one directory, which you point to by setting the LIGOTOOLS environment variable. Common places for a system installation are
/opt/ligotools
or just
/ligotools
, but you can also install it in a private user account (eg.
$HOME/opt/ligotools
).
Initial setup
To get started you need the file
ligotools_init_2.4.tar
. Unpack it in some working directory, run the script
ligotools_init
, and tell it where the LIGOTOOLS directory will be. Here is an example:
www13:tmp> tar xf ligotools_init_2.4.tar
www13:tmp> ./ligotools_init
This script creates a LIGOtools directory structure
into which you can install LIGOtools packages.
Enter the name of the base LIGOTOOLS directory to create,
e.g. '/home/myers/ligotools' or '/usr/local/share/ligotools'.
(The parent directory must exist and be writable by you.)
/home/myers/opt/ligotools
You cannot, alas, use $HOME or other variables or the ~/ notation when entering the directory name.
You will then be asked where to put a number of different subdirectories. The easiest thing to do is to accept the defaults by pressing
Return for each choice. Finally you will see:
Created directory /home/myers/opt/ligotools
Created directory /home/myers/opt/ligotools/packages
Created directory /home/myers/opt/ligotools/config
Created directory /home/myers/opt/ligotools/bin
Created directory /home/myers/opt/ligotools/lib
Created directory /home/myers/opt/ligotools/include
Created directory /home/myers/opt/ligotools/matlab
Created directory /home/myers/opt/ligotools/root
Created directory /home/myers/opt/ligotools/java
Installed and activated 'ltadmin' package, version 2.4
Deleted ligotools_init_2.4.tar, ligotools_init, and ltadmin_INITBIN.tar.gz
Done setting up LIGOtools directory
You should now execute the following line in your shell:
eval `/home/myers/opt/ligotools/bin/use_ligotools`
This will set the environment variable LIGOTOOLS, and update your PATH, etc.
You can add this to your .login or .cshrc to be executed each time you log in.
Once you have set up the environment with this
eval
command shown above (be sure to include the backtick quotes) you can test it with
echo $LIGOTOOLS
and/or
ligotools_list
.
Note that when
ligotools_init
finishes it deletes the files it unpacked, including itself (not unlike the Cheshire cat). I found this annoying, but I can see how some might find it convenient.
Session Setup
As the output above shows, you can easily initialize your shell session to use LIGOtools by eval'ing the output from
use_ligotools
. This is a perl script which can sense the shell it's being run under, so it works for both Bourne or C shells. We will not necessarily need to do this for a LIGO analysis, so long as we can set LIGOTOOLS to the proper top directory so that the analysis scripts can find the macros and libraries then need.
To run an analysis on a remote Grid node which uses this set of packages it might prove to be easiest to just install these on one local machine, then tar up the LIGOTOOLS directory and send that whole thing out to the Grid as a part of the analysis. One argument against this approach is that the ROOT package by itself is over 24MB (the others are all much smaller).
Adding packages
To add a package to the LIGOtools installation on a machine simply use the
ligotools_install
command with the name of the package to install (the tar file) on the command line. So for the packages we will need for I2U2:
ligotools_install root_5.20.00_Linux.tar.gz
ligotools_install basegdsroot_5.20.00_Linux.tar.gz
ligotools_install dmtroot_5.20.00_Linux.tar.gz
ligotools_install eventtool_5.20.00_Linux.tar.gz
You can verify the installation with the command
ligotools_list
which will list all the installed packages. As the printout suggests, you can have multiple versions of LIGOtools packages installed, with only one of these made the "active" package.
The version "5.20.00" for these packages is the version of ROOT which they are all built against. This particular version is not a part of the official LIGO distribution. These are packages Eric has packed up for I2U2. They were built against GDS version 2.13.1.
Copies of the packages needed for ELabs are at
http://www.spy-hill.net/pub/LIGO/ligotools/pkgs
The
eventtool
package is currently optional for I2U2, but we will likely need it in the future when we want to use
LIGO_LW
files for intermediate result files. The
metaio
package will also be needed for that, either in addition to or instead of
eventtool
(I don't yet know which). You can also, if you wish, install the
time
package, which includes the nifty tool
gpsclock
, which shows the current GPS time and provides a tool for converting GPS times to GMT and Local time (requires X11 and tk/tcl).
Updates
The command
ligotools_update
will update all LIGOtools packages to the latest available version. But we don't know if/how it will work with the unofficial packages Eric has created, so it's best to not use this until we know what it will do.
Removal
Removing LIGOtools is straightforward: simply delete the LIGOTOOLS directory and all subdirectories.
References