| | 1 | = Installation of IPP at the ROE = |
| | 2 | |
| | 3 | 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. |
| | 4 | |
| | 5 | Items in italics can be ignored. They are there for my own benefit. |
| | 6 | |
| | 7 | == Directory structure == |
| | 8 | |
| | 9 | I'm a firm believer in the `$HOME/local` directory, which can be treated like the user's personal `/usr/local`. |
| | 10 | |
| | 11 | `$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 |
| | 12 | `/garve/ert/local` . |
| | 13 | |
| | 14 | The following installation procedure will require < 80MB, however. |
| | 15 | |
| | 16 | 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` . |
| | 17 | |
| | 18 | == Installing ipp == |
| | 19 | |
| | 20 | 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. |
| | 21 | |
| | 22 | Installation of the packages can be as easy as: |
| | 23 | |
| | 24 | * {{{apt-get install `cat /home/ert/ipp/ExtraDebianPackages.lst`}}} |
| | 25 | |
| | 26 | Tell them to disable apache: |
| | 27 | |
| | 28 | * `/etc/init.d/apache2 stop` |
| | 29 | * `rm /etc/rc?.d/*apache2` |
| | 30 | |
| | 31 | 2) Create the base directory structure if needed. |
| | 32 | |
| | 33 | * `mkdir -p $HOME/local` |
| | 34 | |
| | 35 | 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`. |
| | 36 | |
| | 37 | 4) Inform your environment of the location of the IPP configuration files |
| | 38 | |
| | 39 | * Add to your `.tcshrc` / `.cshrc` / `.paths` file: |
| | 40 | {{{ |
| | 41 | if (-e $HOME/local/ipp/psconfig.csh) then |
| | 42 | alias psconfig "source $HOME/local/ipp/psconfig.csh" |
| | 43 | psconfig default |
| | 44 | else |
| | 45 | echo "psconfig not available" |
| | 46 | endif |
| | 47 | # Check your perl version with: perl --version |
| | 48 | set !PERLVER=5.10.0 |
| | 49 | # SYS is either linux (32bit) or lin64 (64bit) |
| | 50 | set SYS=lin64 |
| | 51 | setenv !PERL5LIB $HOME/local/lib/perl5 |
| | 52 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/lib/perl/$PERLVER |
| | 53 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/share/perl/$PERLVER |
| | 54 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl5 |
| | 55 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl/$PERLVER |
| | 56 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl5/auto |
| | 57 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/ipp/lib/perl/$PERLVER/auto |
| | 58 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/ipp/share/perl/$PERLVER |
| | 59 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/ipp/default.$SYS/lib |
| | 60 | setenv !PERL5LIB ${PERL5LIB}:$HOME/local/ipp/default.$SYS/lib/perl5 |
| | 61 | }}} |
| | 62 | |
| | 63 | 5) Re-source your environment. Best to log out and log back in to your terminal window. |
| | 64 | |
| | 65 | 6) Get the extra perl packages (in the same directory as you were in step 4): |
| | 66 | |
| | 67 | * `cd $SRCDIR` |
| | 68 | * `tar xzf /home/ert/ipp/extperl-ROE.tgz` |
| | 69 | |
| | 70 | 7) Build the extra perl packages: |
| | 71 | |
| | 72 | * `cd $SRCDIR/extperl-ROE` |
| | 73 | * `./INSTALL-all.csh` |
| | 74 | |
| | 75 | 8) Choose your installation directory and add it to ipp's rc file: |
| | 76 | |
| | 77 | * `echo set PSCONFDIR = $HOME/local/ipp > ~/.psconfigrc` |
| | 78 | * Note, the directory doesn't need to exist. A following step will do it. |
| | 79 | |
| | 80 | 9) Get the source code: |
| | 81 | |
| | 82 | * `cd $SRCDIR` |
| | 83 | * `svn co !http://svn.pan-starrs.ifa.hawaii.edu/repo/ipp/trunk` |
| | 84 | |
| | 85 | ''(got revision 25455/25940/25968)'' |
| | 86 | |
| | 87 | 10) Configure |
| | 88 | |
| | 89 | * `cd $SRCDIR/trunk/psconfig` (or `ipp/psconfig`, depending on from where you got IPP) |
| | 90 | * `psbuild -bootstrap $HOME/local/ipp` |
| | 91 | |
| | 92 | 11) Build any outstanding perl modules: |
| | 93 | |
| | 94 | * `cd $SRCDIR/trunk/psconfig` |
| | 95 | * `./pscheckperl -build` |
| | 96 | |
| | 97 | 12) (Optional) Verify the installation of the perl modules: |
| | 98 | |
| | 99 | * `./pscheckperl` |
| | 100 | |
| | 101 | 13) Add a `pkg-config` file for `cfitsio` library: |
| | 102 | {{{ |
| | 103 | mkdir -p $HOME/local/ipp/default.lin64/lib/pkgconfig |
| | 104 | cat << EOF >> $HOME/local/ipp/default.lin64/lib/pkgconfig/cfitsio.pc |
| | 105 | prefix=/usr |
| | 106 | exec_prefix=/usr |
| | 107 | libdir=${exec_prefix}/lib |
| | 108 | includedir=${prefix}/include |
| | 109 | |
| | 110 | Name: cfitsio |
| | 111 | Description: FITS File Subroutine Library |
| | 112 | Version: 3.006 |
| | 113 | Libs: -L${libdir} -lcfitsio -lm |
| | 114 | Cflags: -I${includedir} |
| | 115 | EOF |
| | 116 | }}} |
| | 117 | |
| | 118 | 14) Build IPP |
| | 119 | |
| | 120 | * `./psbuild -dev -extbuild -optimize >& Build.log` |
| | 121 | |
| | 122 | 15) Done! The last line of Build.log should be `= psbuild: finished =` |
| | 123 | |
| | 124 | == The Apache issue == |
| | 125 | |
| | 126 | Apache is required, but security policy at the ROE forbids web servers on machines other than those specifically designated. |
| | 127 | |
| | 128 | So what requires Apache and why? |
| | 129 | |
| | 130 | Apache is required by the perl module, `Apache2-SOAP`, a package included in IPP's `extperl` directory. |
| | 131 | |
| | 132 | == Added Debian packages (Lenny 5.0.3) == |
| | 133 | For my own benefit |
| | 134 | |
| | 135 | * synaptic |
| | 136 | * locate |
| | 137 | |
| | 138 | For IPP |
| | 139 | |
| | 140 | * apache2-threaded-dev |
| | 141 | * autoconf |
| | 142 | * automake |
| | 143 | * libapache2-mod-perl2 |
| | 144 | * libapache2-mod-perl2-dev |
| | 145 | * libarray-compare-perl |
| | 146 | * libattr1-dev |
| | 147 | * libcache-memcached-perl |
| | 148 | * libcache-perl |
| | 149 | * libclass-accessor-perl |
| | 150 | * libclass-factory-perl |
| | 151 | * libdata-validate-domain-perl |
| | 152 | * libdatetime-format-iso8601-perl |
| | 153 | * libdatetime-perl |
| | 154 | * libdbd-mysql-perl |
| | 155 | * libdigest-md5-file-perl |
| | 156 | * libdigest-sha1-perl |
| | 157 | * libfile-find-rule-perl |
| | 158 | * libfile-nfslock-perl |
| | 159 | * libfilesys-df-perl |
| | 160 | * libgsl0-dev |
| | 161 | * libheap-perl |
| | 162 | * libio-string-perl |
| | 163 | * libipc-run3-perl |
| | 164 | * libjpeg62-dev |
| | 165 | * liblog-log4perl-perl |
| | 166 | * libmysqlclient15-dev |
| | 167 | * libncurses5-dev |
| | 168 | * libnet-domain-tld-perl |
| | 169 | * libnet-server-perl |
| | 170 | * libnumber-compare-perl |
| | 171 | * libparams-validate-perl |
| | 172 | * libpng12-dev |
| | 173 | * libreadline5-dev |
| | 174 | * libsoap-lite-perl |
| | 175 | * libstatistics-descriptive-perl |
| | 176 | * libsub-uplevel-perl |
| | 177 | * libtemplate-perl |
| | 178 | * libtest-class-perl |
| | 179 | * libtest-cmd-perl |
| | 180 | * libtest-pod-coverage-perl |
| | 181 | * libtest-pod-perl |
| | 182 | * libtest-warn |
| | 183 | * libtext-glob-perl |
| | 184 | * libtimedate-perl |
| | 185 | * libtool |
| | 186 | * libtree-dagnode-perl |
| | 187 | * libxml-writer-perl |
| | 188 | * libyaml-perl |
| | 189 | * m4 |
| | 190 | * pkg-config |
| | 191 | |
| | 192 | -- EricTittley - 2009-11-06 |