# ======================================================================================
# . GECKO INSTALLATION NOTES
# . This is the MAIN REFERENCE file for the Gecko installation. 
# .
# . This file: README.install.txt
# .
# . 6-13-2005
# ======================================================================================


INTRODUCTION:

This is the MAIN REFERENCE file for the Gecko installation. 

Note that in the same directory where you have found this file, there should
also be a companion PDF format file:

        README-initial-admin-I.pdf

which contains some figures pertaining to the installation (which will
be referenced in this text), and also step-by-step notes for some of
the initializations of the Gecko platform once you have all the
components up and running.

But for the moment, just follow the notes in the PRESENT document.

Note that GECKO is based on a client-server architecture, and as such
consists of a number of components that you will have to separately
install. These are shown schematically below:


    ------------------       
    |  Client        |
    |  application   |
    |                |
    ------------------
         |     |
         |     |
         |     .---------------.
         |                     |
   ------------------    --------------------
   |  Apache        |	 |  Tomcat          |
   |  web server    |	 |  servlet  engine |
   |  installation  |	 |  installation    |
   ------------------	 --------------------
         |                      |        
         |                      |
  ---------------------    ----------------- 
  |  C++/Perl/Java    |	   |  Java         |  
  |  compute engines  |	   |  servlets     |  
  |                   |	   |               |  
  ---------------------	   -----------------
     |              |            |
     |              |            |
  --------------    .------.     |
  |  Perl      |           |     |     
  |  library   |	   |     |   
  |  modules   |       --------------         
  --------------       |  Oracle    |		         
                       |  database  |  
      		       |            |
      		       --------------
      

In the figure, lines indicate communication between system components.

Note that all the server components (all components but the client)
run on a UNIX/LINUX platform. The current client application on the
other hand runs on a separate Windows platform (a Java client is under
development, but is not available in this release).

The reference platform used in this install is described below, under
section heading:


   0. PLATFORMS USED IN THIS INSTALL


The main steps in the installation, as detailed in what follows, consist of:


  1. BUILD AND INSTALLATION OF THE PERL/C++/JAVA EXECUTABLES:

  2. CREATION OF THE DATA BASE TABLES.

  3. INITIALIZATION AND SYNCHRONIZATION OF DATA BASE WITH EXECUTABLES
     INSTALLATION.

  4. INSTALL AND CONFIGURE THE WEB SERVER.

  5. CONFIGURE SERVLET ENGINE.

  6. CONFIGURE YOUR PLATFORMS FOR LOCAL AREA NETWORK (LAN) ACCESS

  8. CONFIGURE YOUR PLATFORMS FOR WIDE AREA NETWORK (WAN) ACCESS

  9. START UP AND CONNECT THE CLIENT.

  10. INITIALIZE DATA.



--------------------------------------------------------------------------------------------
0. PLATFORMS USED IN THIS INSTALL:

The installation detailed in these notes was done on a Linux platform
with a fresh installation of Redhat Fedora Core 3. The platform
characteristics were:


    Linux Redhat Fedora Core 3 (Linux 2.6.9)
    Dell Dimension 4700
    2.98 GHZ
    2 GB RAM (but 512 MB sufficient for install)
    80 GB disk


2 GB RAM are necessary for an efficient production environment, as the
server has to simultaneously manage the Oracle data base, web server
and servlet engines, and compute engines.  However, 512 MB RAM are
quite sufficient for the installation itself and for all of the
testing and initial work outlined here.

Alternative configurations (e.g. with the Oracle data base server on
another machine) are possible, and have been implemented in the past,
but will not be discussed here.

There are instances of Gecko currently running on fairly old Sun
platforms (Sun enterprise server, SunOS 2.6) with equally old versions
of many of the required libraries mentioned below. There is thus
flexibility in the installation parameters (tolerance to older
versions of the required software). We still recommend sticking as
closely as possible to the software versions indicated below, whenever
practical.

A detailed list of system and software characteristics is given at the
end of this document, as well as at the beginning of the companion
document README-Initialize-3-26-2005-I.pdf.



--------------------------------------------------------------------------------------------
1. BUILD AND INSTALLATION OF THE PERL/C++/JAVA EXECUTABLES:

Much of this build and installation process does not require root
privileges. The exceptions will be for the installation of specific
Perl modules and other external software packages.  Thus you can start
working logged in as user = yourself, switching to user root only when
needed.


>> Unpacking the Gecko server package:

The Gecko server package files you downloaded from SourceForge should
be the following:

    geckoServer-6-13-2005-NO-datalib.tar.gz          all source code and test data.
    geckoServer-6-13-2005-ONLY-datalib.tar.gz        datalib: gene and chip annotation files.

(details of the stem name might vary). 

* NOTE: if you have a functional installation of Gecko, and only want to update
the source code, you will not need to download the ``-ONLY-datalib'' file.

* Gunzip and untar the files:

     gunzip geckoServer-6-13-2005-NO-datalib.tar.gz
     tar xvf geckoServer-6-13-2005-NO-datalib.tar  

     gunzip geckoServer-6-13-2005-ONLY-datalib.tar.gz
     tar xvf geckoServer-6-13-2005-ONLY-datalib.tar

(the original tarring was done with GNU tar; we recommend using GNU
tar for doing the untarring as well).

Approximate sizes of the final directories are indicated below:

     geckoServer-6-13-2005-NO-datalib       830 MB
     geckoServer-6-13-2005-ONLY-datalib     1.4 GB

* Next, rename the first (source code) file:

     mv geckoServer-6-13-2005-NO-datalib  geckoServer-6-13-2005



>> Reinserting the datalib directory into the Gecko server package:

[NOTE: if you have a functional installation of Gecko, and only want
to update the source code, you will not need to do this step (see also
NOTE above)]

* For a first time install, or if you want to have the latest version
of the ``datalib'' directories, you will also need to insert the
``datalib'' part of the package into the main server directory.

To do this, simply descend into the second (``datalib'') directory:

    cd geckoServer-6-13-2005-ONLY-datalib/bioinfo/gecko/src

and from there, move the ``datalib'' directory to the first directory:

    mv datalib FULLPATH/geckoServer-6-13-2005/bioinfo/gecko/src/.

where ``FULLPATH'' refers to the directory full path above
geckoServer-6-13-2005. You can finally remove the now
empty ``datalib'' directory:

    rmdir -R  geckoServer-6-13-2005-ONLY-datalib/bioinfo/gecko/src

* You should now have a single server package directory named
geckoServer-6-13-2005, which we'll refer to below as GECKOROOT:

      GECKOROOT = FULLPATH/geckoServer-6-13-2005

GECKOROOT is the directory within which you will configure and build
the Perl/C++/Java excutables. Note that the actual *installation* of
these will be under a separate directory, which you will specify as
part of the build process.



>> Perl prerequisite:

You should have Perl already installed on your platform. Note the Perl
version number. From the command line, type:

---------------------------------------------------------
% perl --version

This is perl, v5.8.5 built for i386-linux-thread-multi
. . .
---------------------------------------------------------

The latest Gecko installs have been with Perl v5.8.5, although the
system should be back-compatible with older versions of Perl (to Perl
5.004).


>>gcc prerequisite:

Your platform should also have gcc installed. This is a default under Fedora Core 3.
The version used in this installation is:

---------------------------------------------------------
% gcc --version
gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
. . .
---------------------------------------------------------

This automatically includes g77 (which is required for PGPLOT
installation, see below).



>> THE SETTINGS FILE; finding which modules are required:


* Go to GECKOROOT/bioinfo/gecko. In this directory, you will see a
file called:

       settings_GENERIC.tsv

This is the master settings file for Gecko, which determines essentially
all the Gecko system parameters. Copy this file into a settings file of
your own, say ``settings_GECKOE.tsv'':


      cp settings_GENERIC.tsv   settings_GECKOE.tsv


You will now inspect and edit the settings_GECKOE.tsv file.  Please
keep in mind that entries are *tab-separated*, and that the tab
separations must be maintained during editing. It is perhaps simplest
to load the settings_GECKOE.tsv file into a spreadsheet editor, such
as Excel or OpenOffice, and do the editing there.


 **************************************************************************
 *  NOTE about the Gecko  ``settings.tsv''  FILE:                         *
 *                                                                        *
 *  It is not necessary to get everything right the first                 *
 *  time around in the Gecko ``settings.tsv'' file.                       *
 *                                                                        *
 *  You will be able to iteratively configure the system                  *
 *  (running configure many times), so you can delay decisions about      *
 *  some parameters (e.g. if the database is not installed yet, you    *
 *  can leave database parameters assigned to dummy values).              *
 **************************************************************************


* Open the settings_GECKOE.tsv file. 


The first several lines of settings_GECKOE.tsv refer to where the
Gecko installation should expect to find a number of fairly basic
utilities.  The original (just copied from the settings_GENERIC.tsv
file) should list these as:

--------------------------------------------------------------------
AUTOCONF	/usr/bin/autoconf	GNU	2.59<<OK
PERL	/usr/bin/perl	CPAN	5.8.5<<OK
MAIL	/bin/mail		<<OK
CRONTAB	/usr/bin/crontab	<<OK	
GZIP	/usr/bin/gzip	GNU	1.3.3<<OK
GUNZIP	/usr/bin/gunzip	GNU	1.3.3<<OK
CONVERT	/usr/bin/convert	ImageMagick	6.0.7<<OK
XV	/usr/local/bin/xv	John Bradley	3.10a<<OK
SORT	/bin/sort	coreutils	5.2.1<<OK
AR	/usr/bin/ar	GNU	2.15<<OK
RANLIB	/usr/bin/ranlib	GNU	2.15<<OK
CHMOD	/bin/chmod	coreutils	5.2.1<<OK
INSTALL	/usr/bin/install	coreutils	5.2.1<<OK
JAVADIR	/usr/java/jdk1.5.0_02	Root directory for the jdk files	1.5.0
JAVABIN	/usr/java/jdk1.5.0_02/bin	Location of the jdk executables	1.5.0
JAVAINC	/usr/java/jdk1.5.0_02/include	Location of the jdk	1.5.0
JAVAINCS	/usr/java/jdk1.5.0_02/include/linux	Location of the jdk OS-specific -- solaris, irix, . . .-- include files	1.4.1
ANT	/home/geckoe/Software/ant-with-NOTES/apache-ant-1.6.2/bin/ant	apache	1.6.2
--------------------------------------------------------------------

* You should now inspect these entries one-by-one, and manually check
for the correct path on your system. Utilities not present will have
to be downloaded and freshly installed, as explained shortly below.

In particular, under Fedora Core 3 Linux you should have all of the
utilities listed from AUTOCONF to INSTALL already installed as
indicated, with the exception of the xv. You may also need to install Java 1.5 and
ant.

SOFTWARE	URL
xv              http://www.trilon.com/xv/downloads.html
java1.5         http://java.sun.com/j2se/downloads/index.html
ant	        http://www.apache.org


Install each of these in turn (in whatever directory is appropriate
for your system and preference), then record the resulting directories
in the settings_GECKOE.tsv file.

For the moment, leave the other entries in the settings_GECKOE.tsv
file (which occur later in the file) with their current, dummy
values. These will be modified shortly as well.



>> RUNNING autoconf:

* From the command line determine the Perl path. For instance:

% which perl
/usr/bin/perl


* Still in the directory GECKOROOT/bioinfo/gecko, edit if needed the file:

     run_autoconf.pl

so that the first line correctly reflects the current Perl path. In this
case this would be:

#!/usr/bin/perl -w

* The next step is then to run the script with the command line:

      ./run_autoconf.pl settings_GECKOE.tsv



[note that you can also run this script without modifying the perl path in the
header, by simply typing:

      perl run_autoconf.pl settings_GECKOE.tsv

However, the edit makes the script consitent with your current perl
installation once and for all.]


Running run_autoconf.pl will:

   - check for presence of basic utilities (list above).
   - check for presence of required Perl modules.
   - format the configure file.

Note that run_autoconf.pl can be run at any time as a diagnostic, even
before any changes are made in the settings_GECKOE.tsv file.



* A typical output from run_autoconf.pl (here shown after installation
of all required Perl modules, but don't worry about these yet) is shown below:


run_autoconf.pl OUTPUT:
-----------------------------------------------------------------------------
./run_autoconf.pl settings_GECKOE.tsv
 ..........  Begin execution.
 ..........  Checking that make is defined and is GNU make.
             Run:   make --version 
             make is indeed GNU Make. I found the path to be: /usr/bin/make
 ..........  Checking on existence of gcc
             Run:   which gcc 
             gcc found. I found the path to be: /usr/bin/gcc
 ..........  Getting setting values defined in file settings_GECKOE.tsv
WARNING: the value given for MACHINE is SUN
but JAVAINCS is: /usr/java/jdk1.5.0_02/include/linux which does not contain the word: solaris
Loaded ExtUtils::F77 version 1.14
Found compiler g77

-------------------------------------------------------------------------
CHECKING ON PERL MODULES INSTALLATION:
I examined for installation of 31 Perl modules.
Number of Perl modules required NOW that are missing: 0
Number of Perl modules required later that are missing: 0
STATUS: ALL Perl modules were found. You will be able to proceed with configure step.
-------------------------------------------------------------------------
MODULE	STATUS	FOUND?	NOTE
-------------------------------------------------------------------------
Algorithm/Numerical/Shuffle.pm	required_now	yes	ok
Carp.pm	required_now	yes	ok
CGI.pm	required_now	yes	ok
Data/Dumper.pm	required_now	yes	ok
DB_File.pm	required_now	yes	ok
DBD/Oracle.pm	required_now	yes	ok
DBI.pm	required_now	yes	ok
English.pm	required_now	yes	ok
Exporter.pm	required_now	yes	ok
ExtUtils/F77.pm	required_now	yes	ok
Fcntl.pm	required_now	yes	ok
File/Basename.pm	required_now	yes	ok
File/Copy.pm	required_now	yes	ok
File/Find.pm	required_now	yes	ok
FileHandle.pm	required_now	yes	ok
GD.pm	required_now	yes	ok
Getopt/Long.pm	required_now	yes	ok
Getopt/Std.pm	required_now	yes	ok
IO/File.pm	required_now	yes	ok
lib.pm	required_now	yes	ok
LWP.pm	required_now	yes	ok
LWP/Simple.pm	required_now	yes	ok
PGPLOT.pm	required_now	yes	ok
POSIX.pm	required_now	yes	ok
Storable.pm	required_now	yes	ok
Time/Local.pm	required_now	yes	ok
strict.pm	required_now	yes	ok
XML/DOM.pm	required_now	yes	ok
GO/AppHandle.pm	required_later	yes	ok
Math/SpecFun/Beta.pm	required_later	yes	ok
Math/SpecFun/Gamma.pm	required_later	yes	ok
Spreadsheet/ParseExcel.pm	required_later	yes	ok
-------------------------------------------------------------------------

 ..........  Rename old file ./configure.in to ./configure.in-25-Mar-2005-751716
 ..........  The new configure.in file has been generated.
 ..........  Removing old configure file.
 ..........  Run AUTOCONF:
/usr/bin/autoconf
 ..........  AUTOCONF successful.

***********************************************************************
* You can now do create the makefile(s) by typing:                   
*                                                                      
*                      configure                                       
*                                                                      
* on the command line.                                                 
***********************************************************************
 ..........  End of execution.
---------------------------------------------------------------------------------



PERL MODULES INSTALLATIONS:

The output stream shown above, which resulted from running


      ./run_autoconf.pl settings_GECKOE.tsv

gives you the status of the installed Perl modules (the table is in
tab-separated-format). Note that most of the modules listed are listed
as ``required_now'', meaning that they have to be installed for proper
function of most of the Gecko programs. A few, listed with
``required_later'', can be installed later, as they affect only a few
specialized functions.

-----------------------------------------------------------------------------------
PERL MODULE                     PACKAGE/VERSION      LOCATION       COMMENTS
Algorithm/Numerical/Shuffle.pm	Shuffle-1.4          www.cpan.org
Carp.pm		                                     www.cpan.org   Fedora Core 3
CGI.pm                                               www.cpan.org   Fedora Core 3
Data/Dumper.pm                                       www.cpan.org   Fedora Core 3
DB_File.pm                                           www.cpan.org   Fedora Core 3
DBD/Oracle.pm			DBD-Oracle-1.16      www.cpan.org
DBI.pm                          DBI-1.47             www.cpan.org
English.pm	                                     www.cpan.org   Fedora Core 3
Exporter.pm                                          www.cpan.org   Fedora Core 3
ExtUtils/F77.pm	                ExtUtils-F77-1.14    www.cpan.org
Fcntl.pm	                                     www.cpan.org   Fedora Core 3
File/Basename.pm                                     www.cpan.org   Fedora Core 3
File/Copy.pm	                                     www.cpan.org   Fedora Core 3
File/Find.pm	                                     www.cpan.org   Fedora Core 3
FileHandle.pm	                                     www.cpan.org   Fedora Core 3
GD.pm                           GD-2.22              www.cpan.org   Requires gd;
                                                                    see below.
Getopt/Long.pm	                                     www.cpan.org   Fedora Core 3
Getopt/Std.pm	                                     www.cpan.org   Fedora Core 3
IO/File.pm	                                     www.cpan.org   Fedora Core 3
lib.pm	                                             www.cpan.org   Fedora Core 3
LWP.pm	                                             www.cpan.org   Fedora Core 3
LWP/Simple.pm	                                     www.cpan.org   Fedora Core 3
PGPLOT.pm                       PGPLOT-2.18          included here  Requires pgplot;
                                                                    see below.
POSIX.pm	                                     www.cpan.org   Fedora Core 3
Storable.pm	                                     www.cpan.org   Fedora Core 3
Time/Local.pm	                 Time-Local-1.11     www.cpan.org
strict.pm	                                     www.cpan.org   Fedora Core 3
XML/DOM.pm                                           www.cpan.org   Fedora Core 3
GO/AppHandle.pm
Math/SpecFun/Beta.pm                                 see url below
Math/SpecFun/Gamma.pm                                see url below
                            http://home.online.no/~pjacklam/perl/modules/index.html
Spreadsheet/ParseExcel.pm	Spreadsheet          www.cpan.org
                                -ParseExcel-0.2603
------------------------------------------------------------------------------------

--------#1 include Math/SpecFun in distribution?----------

As indicated in the table above, many of the Perl modules listed above
are part of the Fedora Core 3 standard installation. Many of the
others can be installed very readily, after download from the
indicated site. As usual, you can download and build the individual
modules logged in as user = yourself, but the final installation step (``make
install'') will require root privileges.

You can check overall installation status by repeatedly running:

      ./run_autoconf.pl settings_GECKOE.tsv


and examining the resulting table.

As indicated in the comments in the table above, there are three Perl
modules that will require more attention in the build:


.....................................................................................
1. Module : GD.pm:  
           

As explained in its installation notes, installation of the GD Perl
module (GD-2.22) is itself conditional on installation of the
underlying graphics package:

        gd-2.0.33     

which can be obtained from the url:

        http://www.boutell.com/gd/index.html

gd-2.0.33 itself has some dependencies (libpng-1.2.8, zlib-1.2.2,
jpeg-6b, freetype-2.1.9). Please carefully follow all installation
instructions (starting with those in the Perl module package, but then
with those on the gd-2.0.33 home page and in the gd-2.0.33 download,
especially as regards the dependencies the outlined above).



2. Module : DBD/Oracle.pm:

The DBD/Oracle.pm module is used by DBI to communicate with the Oracle
data base.  You can install DBI before installing DBD/Oracle.pm, but
you will need to have an Oracle data base installed to install
DBD/Oracle.pm itself: this is because installation of DBD/Oracle.pm
requires specification of path names for the Oracle install itself
(software directory paths, ``$ORACLE_HOME'', etc), and requires data
base access for the tests (which involve, for instance, access to the
generic user ``scott'').

We thus assume that you have already installed an Oracle database on
your platform. However, at this point no Gecko-specific users or
tables need to have been created. See section 2 for more details
regarding the database and the creation of the Gecko-specific objects
within it.

NOTE: during the DBD/Oracle.pm installation you may have to pay
extra attention to some details regarding:

  - environment variables: ORACLE_HOME
                           LD_LIBRARY_PATH

    Example:
    ORACLE_HOME = /u01/app/oracle/product/10.1.0/Db_2

  - with a new Oracle installation, you may have to first 
    unlock user ``SCOTT'' (doing this as Oracle DBA) for the 
    tests to proceed smoothly.

Of course, consult the DBD/Oracle.pm INSTALL file for the main
installation instructions.
  


3. Module : PGPLOT.pm:

For convenience, we have included the PGPLOT.pm package within this Gecko
distribution.  Go to:

      $GECKOROOT/bioinfo/gecko/src/PGPLOT-fortran-and-perl/

and follow the directions in the file:

      README-PGPLOT.geckoe

to build and install the package. 

Similar to GD, the Perl PGPLOT relies on an underlying software
package called ``pgplot'' that has to be built beforehand (and which
is also included here).

Note also the line in settings_GECKOE.tsv:


FILE_PGPLOT_FONT	/usr/local/lib/pgplot-lib/grfont.dat	For use by PGPLOT

which should correctly indicate where the pgplot grfont file is
located, once PGPLOT has been built.
.....................................................................................




INSTALLATION DIRECTORIES PARAMETERS:


* With the Perl modules installed, we can turn to the other entries in
the settings_GECKOE.tsv file. The next block of entries are:

----------------------------------------------------------------------------------------------
#Directory and mail information:			

MAIN_TITLE	Geckoe Gene Expression Server	The title that will appear on the main web page.
GECKO_ADMIN	gecko@cam.com	Email of the GECKO administrator
MACHINE	SUN	Machine on which this runs.
WWW_BASE	http://localhost:80	Server URL, stopped at port number.
WWW_URL	http://localhost:80	Top-level html-URL for the gecko web server.
WWW_URL_NAME	Main server: Production	Name for the CGI root directory -- not compulsory.
WWW_URL_CGI	http://localhost:80/cgi-bin	The URL for the GECKO cgi-bin.
INSTALLDIR	/home/geckoe/geckoTOP1/geckocgi	The UNIX pathname which corresponds to thde top level URL.
DATALIBDIR	/home/geckoe/geckoTOP1/geckocgi/datalib	The UNIX pathname for the directory which holds the data library
DATADIR	/home/geckoe/Echip	The UNIX pathname of the directory for chip data -- this is the root of the directory tree
DATADIR_NAME	Main server: Production Data Directory	Name for the data directory --- not compulsory.
SITEDIRS	Cambridge   Paris   Germany	Names of the subdirectories in incoming dirs.
URL_SERVLET_ROOT	http://localhost:8180/servlet	Top level URL for servlets.
FILE_PGPLOT_FONT	/usr/local/lib/pgplot-lib/grfont.dat	For use by PGPLOT
GENECARDS_URL	http://cam.com/cgi-bin/genecards/carddisp	URL for genecards: add the string -- ?gc_id -- for linking to gene gc_id.
----------------------------------------------------------------------------------------------

Note again that these entries are *tab* separated, and perhaps best
edited in a spreadsheet editor such as Excel. The entries are fairly
self-explanatory.

For the build that follows, it is not critical to have all these
parameters set to their final values. However, at this point you
should decide on the 3 parameters (shown here with examples):


  INSTALLDIR   /home/geckoe/geckoTOP1/geckocgi	
                        The UNIX pathname which corresponds to the top level URL.
  DATALIBDIR   /home/geckoe/geckoTOP1/geckocgi/datalib
                        The UNIX pathname for the directory which holds the data library
  DATADIR      /home/geckoe/Echip	
                        The UNIX pathname of the directory for chip data 
                              -- this is the root of the directory tree

Here, INSTALLDIR will contain the CGI and other executables. Excluding
DATALIBDIR (if the latter is positioned as a subdirectory as indicated
above), this should occupy < 100 MB of space.

DATALIBDIR will contain libraries that map gene annotation data to
chips, chip features to genes, etc. For a large installation (many
chip types defined) this can occupy ~ 4GB of space. The initial
installation however will necessitate only ~ 130 MB of space.

DATADIR will contain the Gecko data files (flat files). 



* The final group of settings pertains to the data base:
-----------------------------------------------------------------------------------------------
#Database parameters:

FLAG_SERVER	PROD	'DEV',  (development) show all parts of web pages; 'PROD', (production) mask non-production parts.
FLAG_DB	1	Enter 1 for a full RDB install, 0 for a flat-file install.
USER_DB	elgreco@aleph	Enter the name of the DB user --- NOTE: this is ignored if flag_db is 0.
PASSWORD_DB	foobar	Enter the password for DB --- NOTE: this is ignored if flag_db is 0.
DRIVER_DB	Oracle	Enter the name of the DB driver --- NOTE: this is ignored if flag_db is 0.
DB_ORACLE_SID	aleph	
DB_ORACLE_HOME	/u01/app/oracle/product/10.1.0/Db_2
DB_ORACLE_PATH	/u01/app/oracle/product/10.1.0/Db_2/bin
DB_URL	localhost:1521	URL for database access, typically *inluding* Oracle 1521 port number.
-----------------------------------------------------------------------------------------------

We are showing these parameters here for preliminary reference, they
will be set to their definitive values only later, when the data base
Gecko user and tables have been created (in Section 2).

For the moment, run once again:


     ./run_autoconf.pl settings_GECKOE.tsv

then type:

    ./configure


This will update makefile information required for building the
programs (note again that the installation parameters themselves,
including final installation directories, URLs and data base
parameters, need not be set to their final values yet.


To do the builds, do the following:

  1. For documentations on what the individual ``makes'' will do, open
     the file ``makefile'', and inspect the information in its header.
     The various targets available are described there.

  2. From the command line, proceed with making the first four targets:

      make bigclean
      make clapack
      make ccompile
      make javacompile


Compilation of clapack should be the longest. Making the targets ccompile
and javacompile will include extensive tests which will run for a while.




INSTALLATION:

We assume that in settings_GECKOE.tsv you have set
the paths for INSTALLDIR, DATALIBDIR and DATADIR to the values desired
for the actual installation (see above).


If not, you can reset them in settings_GECKOE.tsv and once again run:

     ./run_autoconf.pl settings_GECKOE.tsv


then type:

    ./configure


Note that if you have already built the executables, you do NOT need
to rebuild them at this point.


We are now ready for the installation of the executables.
Logged in as user = yourself, type:

     make install_data_dir
     make install_src
     make install_datalib

These will create the required directories, and copy into them the
various executables and libraries.

Finally, logged in as user = root, type:


     make install_gecko_env


This will place the file:

       gecko_env.pl  

into a site_perl directory that will make it visible to the Gecko installation,
and enables it to knwo where to find modules and required libraries 

[you can also do this step manually, by simply copying gecko_env.pl,
from the directory:

  $GECKOROOT/bioinfo/gecko/src/Gen2/lib/gecko_def.pl

into any part of the site_perl directories that are relevant to
your version fo Perl].

For instance, on the Fedora Core 3 platform the location
of gecko_env.pl is set as:


    /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/gecko_env.pl


Note that  gecko_env.pl  is a file that will NOT have to be
reinstalled when you do updates or modifications (provided you
continue working with the same version of Perl).




---------------------------------------------------------------------------------------------
2. CREATION OF THE DATA BASE TABLES.

We assume that an Oracle database has already been installed on your
platform.  The current Gecko installation runs with Oracle 10g, but
should be back compatible all the way to Oracle 8.1.7.

The Oracle 10g install considered here was set up with /u01 and /u02 directories
in separate partitions, with memory allocation:

/u01    5 GB
/u02    10 GB

For definiteness, we assume that the database instance has the
following parameters:

Oracle home:  /u01/app/oracle/product/10.1.0/Db_2
Database name:  aleph 
A user name:  elgreco         Create this user under aleph. 
Password:  foobar

The database name ``aleph'' and the user password ``foobar'' are
arbitrary, and given here for reference. The user name ``ELGRECO''
however is NOT arbitrary.

* In aleph, create two TABLESPACES (ELAB name NOT arbitrary):

ELAB_DATA   512 MB
ELAB_INDX   1024 MB

* Then go to:

   $GECKOROOT/bioinfo/gecko/DB-build

This directory contains the SQL scripts for creating the Gecko
database tables.

Start a sqlplus session, login into the database as user ``elgreco'',
then execute the table creation script:

     @build-GECKODB-06.sql

...................................................................
% sqlplus elgreco/foobar@aleph

SQL*Plus: Release 10.1.0.3.0 - Production on Sat Mar 26 07:18:50 2005

Copyright (c) 1982, 2004, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> @build-GECKODB-06.sql;
...................................................................

* Note that during this preliminary installation phase, you can UNDO
your table creation by invoking the killing script:

SQL> @kill-GECKODB-06.sql;

Evidently, this script should never be called once data has been
entered into the database, unless one effectively wishes to delete
everything.


---------------------------------------------------------------------------------------------
3. INITIALIZATION AND SYNCHRONIZATION OF DATA BASE WITH EXECUTABLES
INSTALLATION.

* Once again return to:

   $GECKOROOT/bioinfo/gecko

and adjust the database parameters values in the settings_GECKOE.tsv file so that they
reflect your current database installation:

------------------------------------------------------------------------------------------------------
#Database parameters:

FLAG_SERVER	PROD	'DEV',  (development) show all parts of web pages; 'PROD', (production) mask non-production parts.
FLAG_DB	1	Enter 1 for a full RDB install, 0 for a flat-file install.
USER_DB	elgreco@aleph	Enter the name of the DB user --- NOTE: this is ignored if flag_db is 0.
PASSWORD_DB	foobar	Enter the password for DB --- NOTE: this is ignored if flag_db is 0.
DRIVER_DB	Oracle	Enter the name of the DB driver --- NOTE: this is ignored if flag_db is 0.
DB_ORACLE_SID	aleph	
DB_ORACLE_HOME	/u01/app/oracle/product/10.1.0/Db_2
DB_ORACLE_PATH	/u01/app/oracle/product/10.1.0/Db_2/bin
DB_URL	localhost:1521	URL for database access, typically *inluding* Oracle 1521 port number.
------------------------------------------------------------------------------------------------------

and rerun:

       ./run_autoconf.pl settings_GECKOE.tsv
       make install_src


At this point, the setting for DB_URL can be left arbitrary (we'll get to that below).
Now from the directory:

      $GECKOROOT/bioinfo/gecko

run the synchronization/testing program:

      src/Gen2/bin/DB_synch_and_test.pl -run

The output should look like:

............................................................................................
 ........... Begin execution: DB_synch_and_test

===========================================================================================
. Start diagnostics/initializations/synchronization:
===========================================================================================

GECKO DATABASE PARAMETERS (as currently defined in file gecko_def.pl):
[Note: these parameters can be reset by running: run_autoconf.pl on the input settings.tsv file.]
-------------------------------------------------------------
>>Oracle environment variables:
SID: aleph
HOME: /u01/app/oracle/product/10.1.0/Db_2
PATH: /u01/app/oracle/product/10.1.0/Db_2/bin

>>Database connection parameters:
Database: aleph
User: elgreco
Password: foobar
-------------------------------------------------------------

 ..........  Attempting to connect to Gecko database:
OK: connection established.

 ..........  Checking on the root data directory path.
Current setting for root data directory (as determined by DATADIR entry in settings.tsv file):
/home/geckoe/Echip
OK. The root data directory path in the database is in synch with the settings.

Root data directory SETTINGS: /home/geckoe/Echip
Root data directory DATABASE: /home/geckoe/Echip

 ..........  Testing de novo connect.
 ..........  OK. De novo connection successful.

 ..........  Checking on installed technology names.


>>CURRENT TECHNOLOGY NAMES IN DATABASE:
---------------------------------------------------
AFFYMETRIX
ALL
---------------------------------------------------
OK. Minimum required technology names are present.


 ..........  Checking on defined scan model algorithm names.

>>CURRENT ALGORITHMS IN DATABASE:
---------------------------------------------------
ALGORITHM	COMMENTS
AFFYMETRIX_MAS5_TXT	For processing of Affymetrix CHP files generated from MAS5 algorithm, and saved in ascii format.
AFFYMETRIX_MAS5_EMULATOR	For processing of Affymetrix CEL files, in ascii format. Emulates MAS5 algorithm.
---------------------------------------------------
OK. Minimum required algorithms are present.


 ..........  Checking on installed species names.


>>CURRENT SPECIES NAMES IN DATABASE:
---------------------------------------------------
human
mouse
rat
yeast
---------------------------------------------------
OK. Minimum required species names are present.


 ..........  Checking on defined user names.


>>CURRENT USER NAMES IN DATABASE:
---------------------------------------------------
gecko
---------------------------------------------------
OK. Minimum required user names are present.


 ..........  Testing the CGI installation.

GECKO CGI-BIN PARAMETERS (as currently defined in file gecko_def.pl):
[Note: these parameters can be reset by running: run_autoconf.pl on the input settings.tsv file.]

-------------------------------------------------------------
Description	Name in settings.tsv file	Value
Directory root for CGI-BIN	INSTALLDIR	/home/geckoe/Gecko/geckov2_0-2-19-2005/bioinfo/gecko/src/Gen2/cgi-bin
URL root for CGI-BIN	WWW_URL_CGI	http://localhost:80/cgi-bin
-------------------------------------------------------------

Submitting test URL: http://localhost:80/cgi-bin/get_cgi_env.cgi
OK. SUCCESS.
===========================================================================================
 .......... End of execution
............................................................................................


The program DB_synch_and_test.pl will:

   1. Synchronize the installation directory name in the database with
      the one assumed in the build directory.

   2. Initialize a minimum amount of data in the database, including some
      technology names, a user name, algorithm names, species name, etc.

   3. At this point it will also try the CGI installation, which has NOT yet been set up
      (see next section). If an error results, do not worry and continue.

Finally, you will need to create some data base views. Type:

       make install_create_db_views


* Note that both ``DB_sync_and_test.pl'' and ``make
install_create_db_views'' can be run at any later time as diagnostics.



---------------------------------------------------------------------------------------------
4. INSTALL AND CONFIGURE THE WEB SERVER.

We use the apache2 web server for access to the Gecko HTML generated
by the CGI programs. We assume below that apache2 has been installed,
and that you are somewhat familiar with configuring, starting and stopping
the httpd demon.

.................................................................
* Very briefly, you can download:

      httpd-2.0.53

from:

  www.apache.org

* Install as described in the documentation. In particular, the
configure step (as user = root).

  ./configure --prefix=/usr/local/apache2

will do the installation under /usr/local/apache2
.................................................................


* We assume that the apache2 install is in the top directory:

    APACHE_HOME = /usr/local/apache2

where you have installed is as root.

* If you had apache2 previously running, don't forget to stop it with:

   $APACHE_HOME/bin/apachectl stop

(logged in as root), then go to the conf directory:

   $APACHE_HOME/conf

Backup (copy to say ``httpd.conf-ORIGINAL'') and then edit the
apcahe2 configuration file:

     httpd.conf


* The following systematic modifications will have to be done to the
httpd.conf file.  They are shown in the context of the 
http.conf file (i.e. with bits of the httpd.conf file around them),
and for a specific example. In this example, the path:

      /home/geckoe/geckoTOP1/geckocgi  = INSTALLDIR

is the same as the INSTALLDIR value specified in the
settings_GECKOE.tsv file (see above).


* Here are the modifications for the httpd.conf file:

--------------------------------------------------------------------------------
>>Modification 1:
# .....................................................................
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
#xxx DocumentRoot "/usr/local/apache2/htdocs"    # Gecko modif
DocumentRoot "/home/geckoe/geckoTOP1"
.....................................................................


>>Modification 2:
.....................................................................
#
# This should be changed to whatever you set DocumentRoot to.
#
#xxx <Directory "/usr/local/apache2/htdocs">   # Gecko modif
<Directory "/home/geckoe/geckoTOP1">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
#xxx    Options Indexes FollowSymLinks ExecCGI    # Gecko modif
        Options Indexes FollowSymLinks MultiViews
.....................................................................

>>Modification 3:
.....................................................................
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
#xxxx ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"          # Gecko modif
ScriptAlias /cgi-bin/ "/home/geckoe/geckoTOP1/geckocgi/cgi-bin/"
.....................................................................


>>Modification 4:
.....................................................................
#
# "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
#xxx <Directory "/usr/local/apache2/cgi-bin">      # Gecko modif
#xxx    AllowOverride None
#xxx    Options None
#xxx    Order allow,deny
#xxx    Allow from all
#xxx </Directory>
# ............................................................
# . Gecko modif: enable CGI execution.
# . Invocation example:  http://localhost/cgi-bin/index.cgi
# ............................................................
<Directory "/home/geckoe/geckoTOP1/geckocgi/cgi-bin/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
# ............................................................
# . Gecko modif: set aliases:
# ............................................................
Alias /geckoTOP1/geckocgi/ "/home/geckoe/geckoTOP1/geckocgi/"

Alias /html "/home/geckoe/geckoTOP1/geckocgi/html/"

Alias /tmp "/home/geckoe/geckoTOP1/geckocgi/html/tmp/"
# ............................................................

--------------------------------------------------------------------------------


* Now restart apache2, using:

      $APACHE_HOME/bin/apachectl start


You should then be able to get the Gecko index page at URL:

      http://localhost/cgi-bin/index.cgi

You will use this web page for continuing initialization of the Gecko platform,
as well as for testing the servlet install (see below).



---------------------------------------------------------------------------------------------
5. CONFIGURE SERVLET ENGINE.

We use tomcat 5.5.7 for running the servlet engine. We assume that you
have some familiarity with installing and running tomcat.

..........................................................................
* Very briefly, download the tomcat 5.5.7 binary distribution from:

      http://jakarta.apache.org/site/binindex.cgi

Install tomcat, say under your home directory. We assume that the
tomcat root directory is:

    CATALINA_HOME=/home/geckoe/jakarta-tomcat-5.5.7

with:

    JAVA_HOME=/usr/java/jdk1.5.0_02

also defined (see tomcat instructions in package).

* Tomcat can be started and stopped using:

    $CATALINA_HOME/bin/startup.sh

    $CATALINA_HOME/bin/shutdown.sh
..........................................................................

CONFIGURATION for the servlet engine:

With tomcat shut down, do the following:

a) In the file:

   server.xml

edit the default port number from 8080 to 8180:
...............................................................................................
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8180 -changed from 8080 by Gecko modif -->
    <Connector port="8180"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <!-- Note : To disable connection timeouts, set connectionTimeout value
     to 0 -->
...............................................................................................

b) In the file:

   web.xml

uncomment the entries for the invoker servlets.

>>Modification 1:
...............................................................................................
<!--  Uncommented below by Gecko modif -->

    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
...............................................................................................

>>Modification 2:
...............................................................................................
    <!-- The mapping for the invoker servlet: uncommented by Gecko modif -->

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
...............................................................................................

CONFIGURE OR MAKE SURE settings_GECKOE.tsv file has correct servlet root value:

* In the settings_GECKOE.tsv file, set:

URL_SERVLET_ROOT	http://localhost:8180/servlet	Top level URL for servlets.

then do:

  ./run_autoconf.pl settings_GECKOE.tsv
   make install_src

INSTALL jar files in appropriate location under tomcat:

* Under:

     $CATALINA_HOME/webapps/ROOT

move WEB-INF into a backup:

   mv WEB-INF WEB-INF.ORIGINAL

Then copy the corresponding WEB-INF directory from Gecko build directory:

  cp -R $GECKOROOT/bioinfo/gecko/src/Gen2/Java-Programs/geckoserver/deployment/WEB-INF   WEB-INF
  chmod -R a+rx WEB-INF

Also, copy the images directory under the same ROOT directory:

  cp -R $GECKOROOT/bioinfo/gecko/src/Gen2/Java-Programs/geckoserver/deployment/images   images
  chmod -R a+rx images



START TOMCAT:

  $CATALINA_HOME/bin/startup.sh

You should now be able to:


  1) Invoke the tomcat general server page with the URL:

         http://localhost:8180/

     If you can get this page (with Jakarta Tomcat logo, etc), then the tomcat server works.

  2) Invoke the top Gecko servlet page with the URL:

      http://localhost:8180/servlet/com.aventis.gecko.servlet.sessions.InitializerServlet

     If you can get this page, the mappings are correct.

You will be able to systematically test the Gecko servlets from links in the main
Gecko CGI page, already mentioned above:


       http://localhost/cgi-bin/index.cgi

(see below).

---------------------------------------------------------------------------------------------
6. CONFIGURE YOUR PLATFORMS FOR LOCAL AREA NETWORK (LAN) ACCESS


We assume that your installation includes a LAN managed by a router
which you can administer.


1>> SET PERMISSIONS for external HTTP access to the Linux server:

On the Fedora Core 3 Linux platform, from the desktop, start from the
Main Menu (red hat icon on the top left), and select:

     System Settings -->  Security Level

This will display a window called ``Security Level
Configuration''. Under the tab ``Firewall Options'', it will show a
list of various services (WWW(HTTP), FTP, SSH, Telnet, etc), and
checkboxes to the left of them: 

  - check the box to the left of WWW(HTTP): this will make port 80 accessible.

Also, in the last entry called ``Other ports:'', enter:

   8180:tcp

to make port 8180 accessible (entries in this field are comma separated. An example
would be: 443:tcp, 8180:tcp).


2>> RESET THE HOSTNAME of your Linux server: 

On the Fedora Core 3 Linux platform, from the desktop, start from the
Main Menu (red hat icon on the top left), and select:

    System Settings --> Network

and reset the hostname to ``geckoe'' (the hostname is arbitrary; we
are using this for convenience). Note that this setting will be
updated only when you restart the computer (see below).




3>> CHECK YOUR ROUTER for available fixed IP addresses:

For simplicity, as reference in the following example we will assume
that you are using a LINKSYS router.  Other routers will have similar
administration tools.

From any platform linked to the router, start a browser, and access
the LINKSYS web-based router administration tool, by typing the URL:

   http://192.168.1.1

DESCRIBE DHCP pool.

The DHCP pool being 192.168.1.100~149, you may an pick as fixed address
an address outside this pool. For definiteness, we will pick:

             IP_FIXED = 192.168.1.5




4>> ASSIGN A FIXED IP address to your Linux server: 

We now assign the IP_FIXED address chosen above to the Linux server.
On the Fedora Core 3 Linux platform, from the desktop, start from the
Main Menu (red hat icon on the top left), and select:

    System Settings --> Network

and DESCRIBE.




5>> RESTART YOUR Linux platform:

First shut down all the system components (apache, tomcat, Oracle database) on
which your Gecko installation is running (see Appendix A for full details).  

Then restart the Linux platform: this should reset the Linux server
hostname, and have the router assign to it the fixed IP address
IP_FIXED = 192.168.1.5.




6>> CHECK ON THE assigned IP addresses:

You can check in a number of ways:

* On the Linux server, from the command line type:

      /sbin/ifconfig -a

and this will display network information (DESCRIBE).

* On any other platform connected to your LAN, from the command line
type:

     ping 192.168.1.5

and this should give a response.

* From the LINKSYS router administration page, accessible from a browser
on any platform, via the http://192.168.1.1, select from the menu on
the main page:

    Status -->  Local Network

and click: DHCP Client Table.  This will bring up a window that lists
assignment of hosts to the router-defined IP addresses.




7>> CHECK ACCESSIBLILITY of main Gecko administration web page via
new hostname:

From a browser running on the Linux server, access the URL:

     http://geckoe/cgi-bin/index.cgi

this should post the main Gecko administration page (but do not follow links yet).




8>> UPDATE HOSTNAME in settings file for main Gecko installation:

Go to $GECKOROOT/bioinfo/gecko, and edit the file:

     settings_GECKOE.tsv

that you previously used, systematically replacing:

     localhost  -->   geckoe

Save the edited file, then do:


    ./run_autoconf.pl settings_GECKOE.tsv
    ./configure
    make install_src

This will install updated files (no other builds need to be done
for this update).




9>> CHECK FULL ACCESSIBLILITY of Gecko administration web pages via new hostname:

From a browser running on the Linux server, access the URL:

     http://geckoe/cgi-bin/index.cgi

this should post the main Gecko administration page. If you already
have this page displayed from above, first refresh. Then test
following links, you should be able to do so.




10>> CONFIGURE YOUR PC for accessing the Gecko server:

On any your Window-based PC connected to your LAN, go to the directory:

    \WINNT\system32\drivers\etc

Look at the file:

   lmhosts.sam     (this is a sample file)

As described in this file, thsi contains a list of mappings of
IP addresses --> host names.

Copy the file lmhosts.sam into:

   lmhosts         (no suffix)

and edit (in your favorite text editor) by adding at the very end of
the file the line:


      192.168.1.5   geckoe




11>> CHECK LAN ACCESSIBLILITY of Gecko administration web pages via new
hostname:

From a browser running on your PC, type the URL:

       http://geckoe/cgi-bin/index.cgi

You should get the main administration web page, and be able to follow links.


---------------------------------------------------------------------------------------------
8. CONFIGURE YOUR PLATFORMS FOR WIDE AREA NETWORK (WAN) ACCESS


---------------------------------------------------------------------------------------------
9. START UP AND CONNECT THE CLIENT.

>>THIS SECTION IS STILL UNDER CONSTRUCTION.

The Gecko client application is a Visual Basic application that runs in a
Windows environment.

As an example, we consider access to the Gecko Linux server from the
client application running on a Windows PC, with both Linux platform and PC
connected via a LAN.

Customizing the gecko2.ini file.

---------------------------------------------------------------------------------------------
10. INITIALIZE DATA.

>>THIS SECTION IS STILL UNDER CONSTRUCTION.

>>Initialize cron status file:


....................................................................................................
/home/joachim/geckoTOP1/geckocgi/bin/build_cron_status.pl 
 ..........  Begin execution of /home/joachim/geckoTOP1/geckocgi/bin/build_cron_status.pl
 ..........  Note: no crontab_status file given on command line (-o option)
 ..........  Use default: CRONTAB_STATUS_FILE = /home/joachim/Echip/data/exp_files/CRON_STATUS.txt
no crontab for joachim
 ..........  End of execution.
 ..........  All data written to: /home/joachim/Echip/data/exp_files/CRON_STATUS.txt
....................................................................................................


>> Start cron jobs.

* Add user to: /etc/cron.allow

    make install_crontab

....................................................................................................
# .......................................................
# . Compiling for machine type SUN
# .......................................................
echo ...................................................
...................................................
echo .  Installing crontab
. Installing crontab
echo ...................................................
...................................................
/usr/bin/crontab src/etc/crontab_listing
/home/joachim/geckoTOP1/geckocgi/bin/build_cron_status.pl
 ..........  Begin execution of /home/joachim/geckoTOP1/geckocgi/bin/build_cron_status.pl
 ..........  Note: no crontab_status file given on command line (-o option)
 ..........  Use default: CRONTAB_STATUS_FILE = /home/joachim/Echip/data/exp_files/CRON_STATUS.txt
 ..........  End of execution.
 ..........  All data written to: /home/joachim/Echip/data/exp_files/CRON_STATUS.txt
echo ...................................................
...................................................
echo .  Installion of crontab was SUCCESSFUL!
. Installion of crontab was SUCCESSFUL!
echo ...................................................
...................................................
....................................................................................................



>> Input scans into pipeline.

* Give glioma example.


---------------------------------------------------------------------------------------------
APPENDIX A: STARTING AND SHUTTING DOWN THE SYSTEM
----------



* ORACLE DATA BASE:
  ----------------


> STARTING THE ORACLE DATA BASE:


* Log in as user = oracle :

     su oracle


* Go to the $ORACLE_HOME/bin directory:


     cd $ORACLE_HOME/bin


[for example:

     % echo $ORACLE_HOME
     /u01/app/oracle/product/10.1.0/Db_2
]     



i) Start the listeners:

     ./lsnrctl start


* This will output something like:

     .............................................................................
     LSNRCTL for Linux: Version 10.1.0.3.0 - Production on 14-APR-2005 08:59:25

     Copyright (c) 1991, 2004, Oracle.  All rights reserved.

     Starting /u01/app/oracle/product/10.1.0/Db_2/bin/tnslsnr: please wait...

     TNSLSNR for Linux: Version 10.1.0.3.0 - Production
     System parameter file is /u01/app/oracle/product/10.1.0/Db_2/network/admin/listener.ora

     . . .           . . .       . . . 

     Services Summary...

     The command completed successfully
     .............................................................................


ii) Start the data base:

    Do:

    ./sqlplus / as sysdba
    SQL> startup
    SQL> exit


* This will output something like:

  .............................................................................
  % ./sqlplus / as sysdba

  . . .   . . .   . . .

  Connected to an idle instance.

  SQL> startup
  ORACLE instance started.

  . . .   . . .   . . .

  Database mounted.
  Database opened.
  SQL> exit
  .............................................................................


iii) Start the Oracle Enterprise Manager:

   ./emctl start dbconsole

* This will output something like (after perhaps a rather lengthy startup time):

  .............................................................................
  TZ set to US/Eastern
  Oracle Enterprise Manager 10g Database Control Release 10.1.0.3.0
  Copyright (c) 1996, 2004 Oracle Corporation.  All rights reserved.
  http://localhost.localdomain:5500/em/console/aboutApplication
  Starting Oracle Enterprise Manager 10g Database Control .............................. started.
  ------------------------------------------------------------------
  Logs are generated in directory 
  /u01/app/oracle/product/10.1.0/Db_2/localhost.localdomain_aleph/sysman/log
  .............................................................................


> STOPPING THE ORACLE DATA BASE:

* Log in as user = oracle, and go to the directory $ORACLE_HOME/bin
(see above).


i) Stop the Oracle Enterprise Manager:

   ./emctl stop dbconsole


ii) Stop the data base:

    Do:

    ./sqlplus / as sysdba
    SQL> shutdown immediate
    SQL> exit


iii) Stop the listeners:

     ./lsnrctl stop




APACHE WEB SERVER:
-----------------

In this example, apache was installed in /usr/local/apache2 under root.
Login as user = root:


     su root
     cd /usr/local/apache2/bin


* Starting apache:

     ./apachectl start

You can check for the presence of the httpd demons with:

     ps -ef|grep httpd

* Stopping apache:

     ./apachectl stop




TOMCAT SERVLET ENGINE:
---------------------

In this example, tomcat was installed in:

    CATALINA_HOME=/home/geckoe/jakarta-tomcat-5.5.7


under user = geckoe, with:

    JAVA_HOME=/usr/java/jdk1.5.0_02

also needing to be defined.

* Tomcat can be started and stopped using:

    $CATALINA_HOME/bin/startup.sh

    $CATALINA_HOME/bin/shutdown.sh


---------------------------------------------------------------------------------------------
APPENDIX B: CHANGING THE HOSTNAME OF YOUR PLATFORM:
----------

* Stop tomcat and apache (see above).

* If you change the host name of the Linux server, you also have
to change the Oracle configuration files.

  listener.ora
  tnsnames.ora

These files should be under:

   $ORACLE_HOME/network/admin

(or if not there, under the directory /var/opt/oracle).

Log on as user = oracle.
Stop the database and the listener (see above). 

......................................................................................
* Backup the tnsnames.ora file (by copying to say,
tnsnames.ora.ORIGINAL), then within tnsnames.ora, just edit the
assignment of HOST. For instance replace the default host name
definition,


ALEPH =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = aleph.geckoe.com)
    )
  )


by the new definition:


ALEPH =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = geckoe)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = aleph.geckoe.com)
    )
  )


* Backup the listener.ora file (by copying to say,
listener.ora.ORIGINAL), then within listener.ora, just edit the
assignment of HOST. For instance replace the default host name
definition,


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      )
    )
  )


by the new definition:


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = geckoe)(PORT = 1521))
      )
    )
  )
......................................................................................

* Restart the listener and the database (see above), then check that the
database is indeed accessible:

   $ORACLE_HOME/bin/sqlplus elgreco/foobar@aleph

which should connect you to the aleph database, without errors.

* Stop tomcat and apache (see above).
Then run:

    DB_synch_and_test.pl -run

this should execute without errors.

* Next test for main Gecko administration page, through the URL:

   http://geckoe/cgi-bin/index.cgi

this should display the page, and you should be able to follow links through.


* Redefining the oracle Enterprise Manager under a new host name:
As user = oracle, run:

   $ORACLE_HOME/bin/emca -r

(the -r means that it does not create a new repository).
One should get something like:

.............................................................................................
[oracle@geckoe Db_2]$ bin/emca -r

STARTED EMCA at Sat Apr 30 09:50:42 EDT 2005
Enter the following information about the database to be configured
Listener port number: 1521
Database SID: aleph
Service name: aleph.geckoe.com
Email address for notification: joachim.theilhaber@geckoe.com
Email gateway for notification: mailhost
Password for dbsnmp: foobar
Password for sysman: foobar
Password for sys: foobar

-----------------------------------------------------------------

You have specified the following settings

Database ORACLE_HOME ................ /u01/app/oracle/product/10.1.0/Db_2
Enterprise Manager ORACLE_HOME ................ /u01/app/oracle/product/10.1.0/Db_2

Database host name ................ geckoe
Listener port number ................ 1521
Database SID ................ aleph
Service name ................ aleph.geckoe.com
Email address for notification ............... joachim.theilhaber@geckoe.com
Email gateway for notification ............... mailhost

-----------------------------------------------------------------
Do you wish to continue? [yes/no]: yes
Apr 30, 2005 9:51:31 AM oracle.sysman.emcp.EMConfig checkConfiguration
WARNING: 'shared_pool_size' must be greater than or equal to 80 MB.  
Apr 30, 2005 9:51:31 AM oracle.sysman.emcp.EMConfig updateReposVars
INFO: Updating file /u01/app/oracle/product/10.1.0/Db_2/sysman/emdrep/config/repository.variables ...
Apr 30, 2005 9:51:35 AM oracle.sysman.emcp.EMConfig addPortEntries
INFO: Updating file /u01/app/oracle/product/10.1.0/Db_2/install/portlist.ini ...
Apr 30, 2005 9:51:35 AM oracle.sysman.emcp.EMConfig updateEmdProps
INFO: Updating file /u01/app/oracle/product/10.1.0/Db_2/sysman/config/emd.properties ...
Apr 30, 2005 9:51:36 AM oracle.sysman.emcp.EMConfig updateConfigFiles
INFO: targets.xml file is updated successfully
Apr 30, 2005 9:51:36 AM oracle.sysman.emcp.EMConfig updateEmomsProps
INFO: Updating file /u01/app/oracle/product/10.1.0/Db_2/sysman/config/emoms.properties ...
Apr 30, 2005 9:51:36 AM oracle.sysman.emcp.EMConfig updateConfigFiles
INFO: emoms.properties file is updated successfully
Apr 30, 2005 9:51:39 AM oracle.sysman.emcp.EMConfig startOMS
INFO: Starting the DBConsole ...
Apr 30, 2005 9:53:17 AM oracle.sysman.emcp.EMConfig perform
INFO: DBConsole is started successfully
Apr 30, 2005 9:53:17 AM oracle.sysman.emcp.EMConfig perform
INFO: >>>>>>>>>>> The Enterprise Manager URL is http://geckoe:5501/em <<<<<<<<<<<
Enterprise Manager configuration is completed successfully
FINISHED EMCA at Sat Apr 30 09:53:18 EDT 2005
[oracle@geckoe Db_2]$
.............................................................................................



* The complete update should take several minutes.
It will also list the URL from which to query the new enterprise manager.

Under $ORACLE_HOME the old EM directory was:

    localhost.localdomain_aleph/

This will create a new directory called:

    geckoe_aleph/

---------------------------------------------------------------------------------------------