| SeedInstallationInstructions |
UserPreferences |
| SEED Wiki | FrontPage | RecentChanges | TitleIndex | WordIndex | SiteNavigation | HelpContents |
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.
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.
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
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.
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.
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
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
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.
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
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
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.
At this point you should be good to go. Try the server by visiting the url
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.