IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links
wiki:IppInstallation

Up: IPP at The ROE

Installation of IPP at the ROE

There instructions are particular to 32/64bit machines with the ROE's default Debian (Lenny 5.0.3) distribution, but there may be stuff applicable to other systems.

Items in italics can be ignored. They are there for my own benefit.

Directory structure

I'm a firm believer in the $HOME/local directory, which can be treated like the user's personal /usr/local.

$HOME/local can be a symbolic link to a directory on a data drive, since you might hit your quota on /home if you install a large amount on software. For example, my /home/ert/local points to /garve/ert/local .

The following installation procedure will require < 80MB, however.

In $HOME/local, the extra, non-IPP-specific perl modules will be installed in $HOME/local and the IPP-specific code will be installed in $HOME/local/ipp .

Installing ipp

1) Submit a helpdesk ticket to have the extra Debian packages installed. The list of packages to install can be found at /home/ert/ipp/ExtraDebianPackages.lst (also listed at the bottom of this page). Note that this list will generate further dependencies that the Debian package installer should resolve.

Installation of the packages can be as easy as:

  • apt-get install `cat /home/ert/ipp/ExtraDebianPackages.lst`
  • or for more control:
    foreach i ( `cat /home/ert/ipp/ExtraDebianPackages.lst` )
    apt-get install $i
    end
    

Tell them to disable apache:

  • /etc/init.d/apache2 stop
  • rm /etc/rc?.d/*apache2

2) Create the base directory structure if needed.

  • mkdir -p $HOME/local

3) Find an appropriate directory in which to compile IPP. Up to 1 GB of space will be required. Change to that directory. I'll call it $SRCDIR.

4) Inform your environment of the location of the IPP configuration files

  • Add to your .tcshrc / .cshrc / .paths file:
    if (-e $HOME/local/ipp/psconfig.csh) then
    alias psconfig "source $HOME/local/ipp/psconfig.csh"
    psconfig default
    else
    echo "psconfig not available"
    endif
    # Check your perl version with: perl --version
    set PERLVER=5.10.0
    # SYS is either linux (32bit) or lin64 (64bit)
    set SYS=lin64
    setenv PERL5LIB $HOME/local/lib/perl5
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/lib/perl/$PERLVER
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/share/perl/$PERLVER
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl5
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl/$PERLVER
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl5/auto
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl/$PERLVER/auto
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/ipp/share/perl/$PERLVER
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/ipp/default.$SYS/lib
    setenv PERL5LIB ${PERL5LIB}:$HOME/local/ipp/default.$SYS/lib/perl5
    

5) Re-source your environment. Best to log out and log back in to your terminal window.

6) Get the source code:

  • cd $SRCDIR
  • svn co http://svn.pan-starrs.ifa.hawaii.edu/repo/ipp/trunk

7) Get the extra perl packages (in the same directory as you were in step 4):

  • cd $SRCDIR
  • tar xzf /home/ert/ipp/extperl-ROE.tgz

8) Build the extra perl packages:

  • cd $SRCDIR/extperl-ROE
  • ./INSTALL-all.csh

9) Choose your installation directory and add it to ipp's rc file:

  • echo set PSCONFDIR = $HOME/local/ipp > ~/.psconfigrc
  • Note, the directory doesn't need to exist. A following step will do it.

10) Configure the IPP source

  • cd $SRCDIR/trunk/psconfig (or ipp/psconfig, depending on from where you got IPP)
  • ./psbuild -bootstrap $HOME/local/ipp

11) Build any outstanding perl modules:

  • cd $SRCDIR/trunk/psconfig
  • ./pscheckperl -build

12) (Optional) Verify the installation of the perl modules:

  • ./pscheckperl

13) Add a pkg-config file for cfitsio library:

mkdir -p $HOME/local/ipp/default.lin64/lib/pkgconfig
cat << EOF >> $HOME/local/ipp/default.lin64/lib/pkgconfig/cfitsio.pc
prefix=/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: cfitsio
Description: FITS File Subroutine Library
Version: 3.006
Libs: -L${libdir} -lcfitsio -lm
Cflags: -I${includedir}
EOF

14) Build IPP

  • ./psbuild -dev -extbuild -optimize >& Build.log

The last line of Build.log should be ** psbuild: finished **

15) Install configuration files

  • cd $SRCDIR/trunk/ippconfig
  • ./configure --prefix=/disk1/ps1/ert/local/ipp
  • make
  • make install

The Apache issue

Apache is required, but security policy at the ROE forbids web servers on machines other than those specifically designated.

So what requires Apache and why?

Apache is required by the perl module, Apache2-SOAP, a package included in IPP's extperl directory.

Added Debian packages (Lenny 5.0.3)

For my own benefit

  • synaptic
  • locate

For IPP

  • apache2-threaded-dev
  • autoconf
  • automake
  • libapache2-mod-perl2
  • libapache2-mod-perl2-dev
  • libarray-compare-perl
  • libattr1-dev
  • libcache-memcached-perl
  • libcache-perl
  • libclass-accessor-perl
  • libclass-factory-perl
  • libdata-validate-domain-perl
  • libdatetime-format-iso8601-perl
  • libdatetime-perl
  • libdbd-mysql-perl
  • libdigest-md5-file-perl
  • libdigest-sha1-perl
  • libfile-find-rule-perl
  • libfile-nfslock-perl
  • libfilesys-df-perl
  • libgsl0-dev
  • libheap-perl
  • libio-string-perl
  • libipc-run3-perl
  • libjpeg62-dev
  • liblog-log4perl-perl
  • libmysqlclient15-dev
  • libncurses5-dev
  • libnet-domain-tld-perl
  • libnet-server-perl
  • libnumber-compare-perl
  • libparams-validate-perl
  • libpng12-dev
  • libreadline5-dev
  • libsoap-lite-perl
  • libstatistics-descriptive-perl
  • libsub-uplevel-perl
  • libtemplate-perl
  • libtest-class-perl
  • libtest-cmd-perl
  • libtest-pod-coverage-perl
  • libtest-pod-perl
  • libtest-warn
  • libtext-glob-perl
  • libtimedate-perl
  • libtool
  • libtree-dagnode-perl
  • libxml-writer-perl
  • libyaml-perl
  • m4
  • pkg-config

-- EricTittley - 2009-11-06

Last modified 15 years ago Last modified on Mar 16, 2011, 5:52:10 AM
Note: See TracWiki for help on using the wiki.