Up: [wiki:IPPatTheROE 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