SEED Wiki   SeedInstallationInstructions UserPreferences
 
HelpContents Search Diffs Info Edit Subscribe XML Print View

1 Installing SEED

This document describes the steps required to create a working SEED disk from a SEED distribution, either via a DVD set or downloaded from the SEED FTP site.

1.1 Requirements

We support MacOSX, either Panther or Jaguar. The Mac SEED includes a Postgres server.

We also support Linux. Currently, only systems based on glibc version 2.3 are supported (we develop on RedHat 9). A Postgres server is included; we also support a system-installed mysql database server.

A working SEED installation will require 40-50 GB of disk space, plus an additional 18+ GB of space during installation.

1.2 Account preparation

We recommend the creation of an account for the purpose of installing and running the SEED software. In particular, we recommend that this account be named fig and that it's home directory be /Users/fig on a Mac and /home/fig on a Linux machine; these are the system defaults.

All installation steps below should be performed as the SEED user. Either log into the machine as the SEED user, or use the su command in an existing login:

     su - fig 

1.3 Copying installation files

The release is available at ftp://ftp.nmpdr.org/SeedReleases/. The subdirectory, Latest, has the latest release of the data and a copy of the code. You can either download ISO images and burn them to DVDs or you can just download what is needed.

From the Latest/ directory at the ftp site, find the code image and burn it to a DVD. Note that the code iso or tar file contains the installation scripts.

Next, get the data by changing into the Latest/Data/ directory and either downloading the ISO images (burn them to DVDs) or downloading the corresponding directories.

1.4 Extracting the release

Choose a location for your new SEED installation. It will need to have 50GB or more free space. Decide on the name of the SEED directory. For instance, if you have an external firewire disk mounted as /Volumes/ext_disk, you might install your SEED to /Volumes/ext_disk/FIGdisk. Do not create this directory; the SEED installer will not install to a directory that already exists, in order to ensure it does not overwrite any data.

We will call this directory InstallDir.

Mount the code image DVD, cd to the directory, follow the dirctions in the README file (a copy is on the FTP server too). This will likely take an hour or more. While this is running, you can configure your web server to work properly with the SEED as described below.

1.5 Configuring the web server environment

1.5.1 Starting the web server

First, ensure that your web server is running.

On a Mac, bring up the System Preferences app, and click on "Sharing". Ensure the "Personal Web Sharing" option is checked.

On a Linux machine, the following commands run as root should enable the web server:

    /sbin/chkconfig httpd on 
    /sbin/service httpd start 

1.5.2 Creating symbolic links

We typically create a symbolic link called FIGdisk in the home directory of the user running the SEED:

    ln -s InstallDir ~/FIGdisk 

Where InstallDir is as defined above.

The SEED requires two symbolic links to be created in the document root directory of your web server. You will need to run the following commands as root; adapt the FIGdisk path to match the symlink you installed above.

On a Mac:

    cd /Library/WebServer/Documents 
    ln -s /Users/fig/FIGdisk/FIG/CGI FIG 
    ln -s /Users/fig/FIGdisk/FIG/Tmp FIG-Tmp 

On a Linux system:

    cd /var/www/html 
    ln -s /home/fig/FIGdisk/FIG/CGI FIG 
    ln -s /home/fig/FIGdisk/FIG/Tmp FIG-Tmp 

1.5.3 Configuring the web server

Now you must edit the Apache configuration file. On a Mac it is in /etc/httpd/httpd.conf, on Linux it is in /etc/httpd/conf/httpd.conf.

Look for a section starting with the line

   <Directory "/Library/WebServer/Documents"> 

for the mac or

   <Directory "/var/www/html"> 

for Linux. Shortly after, there will be a line

    Options Indexes FollowSymLinks MultiViews  

Change this line to read

    Options Indexes FollowSymLinks MultiViews ExecCGI 

Now look for a line

    # AddHandler cgi-script .cgi 

Remove the # at the front of this line to enable it.

It is useful to also add the following change. Find the following lines:

<IfModule mod_dir.c> 
    DirectoryIndex index.html 
</IfModule> 

and change them to:

<IfModule mod_dir.c> 
    DirectoryIndex index.html index.cgi 
</IfModule> 

This should complete your Apache configuration.

1.5.4 Restarting the apache server

Now, restart the web server.

On a Mac, go back to the System Preferences app and bring up the Sharing window again. Click on the web server, click stop, and then start again.

On a Linux machine, run this command:

    /sbin/service httpd restart 

1.6 System tuning: MacOS Panther

If you are running a Panther system, you will have to increase the amount of shared memory available for Postgres. You can do this by editing the file /etc/rc and changing the lines:

sysctl -w kern.sysv.shmmax=4194304 
sysctl -w kern.sysv.shmmin=1 
sysctl -w kern.sysv.shmmni=32 
sysctl -w kern.sysv.shmseg=8 
sysctl -w kern.sysv.shmall=1024 

to read

sysctl -w kern.sysv.shmmax=167772160 
sysctl -w kern.sysv.shmmin=1 
sysctl -w kern.sysv.shmmni=32 
sysctl -w kern.sysv.shmseg=8 
sysctl -w kern.sysv.shmall=65536 

and rebooting. Do this before you run the configure step below, because the configure will use the shared memory size of the currently running system to determine the optimal postgres runtime parameters.

If you run into problems where the system reports errors about running out of files (this may show up during some large SEED database import or indexing operations, and may manifest iteslf as Netinfo failures) you can add the following to /etc/rc as well:

sysctl -w kern.maxfiles=40000 

1.7 Continuing installation

After the InstallSEED script completes, you should have a complete SEED installation in InstallDir. It now needs to be configured.

Choose an environment name to configure. If you are on a mac, the environment name is mac. On a Linux machine, using the included postgres database system, use linux-postgres. On a linux machine, using a preinstalled mysql database, use linux-mysql.

Change directory to InstallDir, and run the following command:

   ./configure <environment-name> 

On a RedHat 9 machine that is using the system postgres install (which probably is the case if you've installed from the environment tarfile env-2003-1223.tgz) you will have to locate the file pg_hba.conf in the directory ~/FIGdb/<some-long-number> and make the end of the file look like this:

# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD 
 
local   all         all                                             trust 
host    all         all         127.0.0.1         255.255.255.255   trust 
 
# Using sockets credentials for improved security. Not available everywhere, 
# but works on Linux, *BSD (and probably some others) 
 
#local  all     all             ident   sameuser 

Now go back to InstallDir and run the following commands (use fig-user-env.sh for the bash and fig-user-env.csh for tcsh/csh shell):

   source config/fig-user-env.sh 
   start-servers 
   init_FIG 
   fig load_all 

The last command will take a significant amount of time to run; on a G5 mac it takes over two hours.

1.8 Ready to run

At this point you should be good to go. Try the server by visiting the url [WWW]http://localhost/FIG/index.cgi.


Tisha's Notes

Installation of SEED from ISO image files, on Gentoo linux, into the fig user's home directory ( /disks/space0/fig/ in this case). ISO files were downloaded into /disks/space0/tmp/: code-2005-0113.iso, disk_1.iso, disk_2.iso, disk_3.iso.

To mount an ISO image (the mountpoint must already exist as a directory):

mount -o loop -t iso9660 <filename.iso> <mountpoint> 

Once all the ISO files are mounted (in this case, in /disks/space0/tmp/code-2005-0113 and /disks/space0/tmp/data_disk_1, data_disk_2, etc.):

sudo -H -u fig /bin/bash 
export TMPDIR="/disks/space0/tmp" 
cd /disks/space0/tmp/code-2005-0113 
install-seed /disks/space0/fig/FIGdisk.Jan13 linux-gentoo 
cd ~ 
ln -s FIGdisk.Jan13 FIGdisk 
cd FIGdisk 
./configure linux-gentoo 
cd ~/FIGdb/<bunch of numbers> 
cat pg_hba.conf (check this file as described in 1.7, above) 
cd ~/FIGdisk 
source config/fig-user-env.sh 
start-servers 
init_FIG (this returns a bunch of errors, but if it says "Complete, you will need to . . . " at the end, it's okay) 
install-data /disks/space0/tmp/data_disk_1 
     (repeat for data_disk_2 and data_disk_3) 
fig load_all 

Check webserver config file /etc/apache2/conf/modules.d/99_seed.conf. Default config file from sanity points to SEED installation in /home/fig/, but we're installing in /disks/space0/fig. Restart apache (/etc/init.d/apache2 restart).

Multiple SEED instances on linux

Derived from a combination of "clean" SEED installation and Rob's MakeTwo instructions:

First, make a complete copy of an existing SEED instance (by copying a local one or rsync from a mirror). In this example, the "original" SEED is /disks/space0/fig/FIGdisk and the new one will be /disks/space0/fig/FIGdisk.new. The original SEED's pgsql socket is port 10000; the new one is 15001. Make sure that the entire original FIGdb tree is copied into FIGdisk.new. For clarity's sake, you'll probably want to change the FIGdb/<number> to use a different number as the original.

sudo -H -u fig /bin/bash 
export TMPDIR="/disks/space0/tmp" 
export FIGCONFIG_SANDBOX="FIGdisk.new" 
export FIGCONFIG_DBPORT="15001" 
cd /disks/space0/fig/FIGdisk.new 
rm -Rf FIG/var 
rm config/seed_id 
rm -Rf dist/releases/current/linux-gentoo <or whatever current arch name> 
./configure linux-gentoo <or whatever current arch name> 

source config/fig-user-env.sh 
switch_to_release <current, not default, release> 
start-servers 
init_FIG 
fig load_all 

(Not sure of the order of that stuff.)

Add a config file (e.g., /etc/apache2/conf/modules.d/99_new.conf) to make apache aware of the new instance. Make sure the Alias directives match up with the paths in config/FIG_Config.pm and config/FIG_Config.py, or no links will work. Restart apache.


PythonPowered
FindPage by browsing, title search , text search or an index
Or try one of these actions: LikePages, LocalSiteMap, SpellCheck