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
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
, but you can also install it in a private user account (eg.
To get started you need the file
. Unpack it in some working directory, run the script
, and tell it where the LIGOTOOLS directory will be. Here is an example:
www13:tmp> tar xf ligotools_init_2.4.tar
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.)
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:
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
command shown above (be sure to include the backtick quotes) you can test it with
Note that when
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.
As the output above shows, you can easily initialize your shell session to use LIGOtools by eval'ing the output from
. 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).
To add a package to the LIGOtools installation on a machine simply use the
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:
You can verify the installation with the command
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
package is currently optional for I2U2, but we will likely need it in the future when we want to use
files for intermediate result files. The
package will also be needed for that, either in addition to or instead of
(I don't yet know which). You can also, if you wish, install the
package, which includes the nifty tool
, which shows the current GPS time and provides a tool for converting GPS times to GMT and Local time (requires X11 and tk/tcl).
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.
Removing LIGOtools is straightforward: simply delete the LIGOTOOLS directory and all subdirectories.