| Version 7 (modified by , 17 years ago) ( diff ) |
|---|
How to install one or more parallel IPP installations
IPP comes with a mechanism called 'psfconfig' that intends to allow installation and compilation of multiple versions and for multiple platforms on the same disk area. A user selects one of the installed versions (e.g. ipp-2.6.1) by issuing a psconfig command, e.g.
psconfig ipp-2.6.1
which then sets the PATH etc. appropriately to point to the relevant directories for the chosen version and architecture. The psconfig mechanism needs just a little bit of setting up.
Preliminaries: Setting up a global psconfig directory before installing IPP for the first time
There's one directory where all IPP installations live. By default, it's ~/psconfig/ but you can make it a different location by creating a file ~/.psconfigrc which contains
set PSCONFDIR = /IPP/
If someone else has installed IPP for you, as is the case in Heidelberg, creating that file is all you need to do to point to those IPP installations. Then set the required aliases in your .[t]chsrc or .bashrc file:
bash: alias psconfig='source /IPP/psconfig.csh' [t]csh: alias psconfig "source /IPP/psconfig.bash"
(or whatever else PSCONFDIR is set to instead of /IPP).
If you are doing the installing of IPP, the PSCONFDIR root directory is set up by the command
psbuild -bootstrap $PSCONFDIR
be sure to use the same value for PSCONFDIR here as in the ~/.psconfigrc or everything will get messed up. Once installed, psconfig will set an environment variable PSCONFDIR automatically. (See installation instructions below for where to find psbuild...)
Alternating between versions installed in a global directory and versions installed in your own home directory is possible, but you need to unset PSCONFDIR, make sure that there's no .psconfigrc (e.g. by renaming it), and point psconfig at the different different directory, so I don't recommend it.
To run pantasks, your startup file ~/.bashrc or ~/.tcshrc needs to execute psconfig; see Pantasks_FAQ#Why are my nodes "down" or "resp"?
Setting the IPP version oto use
In Heidelberg, there's always a softlink ipp-default pointing to the most recent installed version of IPP. To use that, then just issue the command
psconfig ipp-default
on the command-line.
Important: To use multiple hosts in parallel in pantasks, your startup file needs to call psconfig. If you do that, there is an unfortunate bug in IPP (1079) that will break at least the man command, and maybe more.
Setting up individual config files
IPP has a config file hierarchy. There are two per-user config files:
~/.ipprc # Definitions for psphot etc. ~/.ptolemyrc # Definitions for dvo
There are templates for both files, so to begin with, just copy those into your home directory. In Heidelberg, suitable templates are at
cp /IPP/ipprc.template ~/.ipprc cp /IPP/ptolemyrc.template ~/.ptolemyrc
The configuration system is hierarchical, with defaults in the global ippconfig directories that can be overridden by definitions in user-specified directories. E.g. to include camera definitions that are located in your own file area, edit the PATH in .ipprc:
PATH STR /home/jester/IPP/ippconfig/:MYINSTALLDIR/share/ippconfig:
This looks for any required configuration files first in /home/jester/IPP/ippconfig/ and if it does not find a match there, takes the IPP-wide defaults. At present, you have to replicate an entire file in your own area if you want to change a single setting from the default. Also note that there is an internal hierarchy, with files in the recipes/ folder setting defaults that can be overriden in camera-specific files; the catch is that a concept MUST be present in the recipes/ version of a config file (i.e. you can't add new things in a camera-specific file).
In general, the configuration system may be changing, so that a per-user configuration that works with one version of IPP may cease to work with the next release. Thus, it may be necessary to compare the local versions of .ipprc, .ptolemyrc and any individual camera config files with their defaults from the new IPP version (in MYINSTALLDIR/share/ippconfig).
Compiling and installing IPP
Go to IPP download page for tarballs of numbered versions; in addition to the IPP tarball itself, you will also need the extlibs and extperl tarballs with the matching version number.
Default installation
The necessary steps are: Get an IPP tarfile or export from svn (previously cvs); set the new version ID under which the psconfigure mechanism will know which version of IPP you mean (set the version id including the date if from svb/cvs, or using the version number if it is a numbered release); run the psbuild script which should compile everything in one long go.
# Get IPP (here from svn, by date)
cd /IPP/
svn export -r {2009-04-14} https://svn.pan-starrs.ifa.hawaii.edu/repo/ipp/trunk/ ./svn-20090414
# If downloading a numbered tarball, unpack it into a directory
# with a corresponding name, like /IPP/ipp-2.6.1. The extlibs and extperl
# tarballs originally needed to be unpacked into /IPP/extlibs and /IPP/extperl (i.e. neighbouring
# the IPP source code directory), but are now *inside* the IPP source tree.
# Set psconfig id of new version
psconfig svn-20090414
# Install autoconf >= 2.61 which is needed - copy it from /IPP/extlibs/autoconf-2.61.tar.gz
# or get it from http://www.gnu.org/software/autoconf/
cd /IPP/extlibs/autoconf-2.61
./configure --prefix=/IPP/svn-20090414.lin64/
make && make install
# Point to where CFITSIO will be
export CFITSIO=/IPP/svn-20090414.lin64/
# Compile and install IPP
cd /IPP/svn-20090414/psconfig/
psbuild -dev -extbuild
# omit the -dev if building from a version-numbered tarball
# add -clean -rebuild on recompiling to make sure that earlier versions are cleaned
If using pantasks, update your <code>~/.bashrc</code> (or equivalent) to point to the new version. Done!
To use ippMonitor
ippMonitor is a web interface to see the state of the various pipelined reduction steps in the mySQL database driving everything. This needs to be installed in a separate step, after making sure that mySQL is running, apache is running with php installed, and php can talk to mySQL.
The ippMonitor installation is done by
cd /IPP/svn-20090414/ippMonitor psconfigure --dbhost aida77 --dbuser ipp --dbpass XXXXXX --htdocs /srv/www/htdocs
Just Ohana / dvo
I wanted an install tree that has just Ohana i.e. dvo. To do that, I say
psconfig dvo-2.2
which sets up a new install tree $PSCONFDIR/dvo-2.2. I then compile and install only Ohana:
psbuild -dev -only Ohana -rebuild -clean psbuild -dev -only ippconfig # Otherwise you have no config files... # Again, omit -dev if building from numbered tarball
You need -rebuild whenever there may still be files pointing to the previous install directory - without it, nothing happens because those are still up to date. I just threw in -clean for good measure, as I wouldn't bet on everything working without it.
Note both of these don't quite work automatically, as any libraries that are not installed in /usr/local or another standard location need to be copied into the version-dependent tree's include/ and lib/ subdirectories.
Just analysis tools but not pipeline or anything that requires sql
psconfig ipp-2.2-nosql psbuild -only Ohana -rebuild && psbuild -start psLib -stop ppSim -rebuild && psbuild -only ippconfig -rebuild
I tried these without -clean and will see what happens.
Running
To use my just-Ohana tree, I log in and say
psconfig dvo-2.2
I can then use dvo.
Similarly, for the analysis-only distribution I say
psconfig ipp-2.2-nosql
and can run psphot.
