Metacat UNIX Installation Instructions
KNB Home Data People Informatics Biocomplexity Education Software

Table of Contents
Quick Instructions
Quick Installation
Quick Update
Installing From Source Code
Windows XP
Ubuntu 8.04
Mac OS X
Pre-Installation
Minimum Requirements
Additional Required Software
Additional Software Setup
Java
Oracle
PostgreSQL
Ant
Tomcat
Installing Metacat
Download Metacat Application
Install Metacat War
Restart Tomcat
Troubleshooting
Configure Metacat
Upgrading Existing Metacat
Stop the Running Metacat
Download Latest Metacat Application
Upgrade Metacat War
Restart Tomcat
Troubleshooting
Configure Metacat
Web Based Registry
Version Installation Notes
1.9 Installation Notes
Quick Instructions
Quick Installation

These are the installation instructions for a system that has Ubuntu 8.04 installed and has never had Metacat installed on it:

Download Metacat Package

Browse to the KNB Software Download Page. In the Metacat section, select the link that looks like:

metacat-bin-X.X.X.tar.gz

where X.X.X is the latest version of Metacat. Choose to save the file locally.

Extract the Metacat package files by typing:

tar -xvzf metacat-bin-X.X.X.tar.gz

You should see a war file and several supporting files. The location where these files were extracted will be refered to as the the <metacat_package_dir> for the remainder of this documentation.

Create Metacat Directories

Create the metacat utility base directory by typing:

sudo mkdir /var/metacat
sudo chown -R <tomcat_user> /var/metacat

where <tomcat_user> is the user that will start Tomcat. If you are starting Tomcat as the root user, you do not need to run the chown command.

Install Java

Install Java by typing:

sudo apt-get install sun-java5-jdk

hit "ok" then "yes" for license agreement

Install Apache

Install Apache and and Mod JK packages by typing:

sudo apt-get install apache2 libapache2-mod-jk

Set up Mod JK apache configuration by typing:

sudo cp <metacat_package_dir>/jk.conf /etc/apache2/mods-available
sudo cp <metacat_package_dir>/workers.properties /etc/apache2

Enable Apache Mod JK by typing:

sudo a2dismod jk
sudo a2enmod jk

Set up and enable knb (Metacat) site configurations by typing:

sudo cp <metacat_package_dir>/knb /etc/apache2/sites-available
sudo a2ensite knb

If you want to run an LSID server along with the Metacat server, set up and enable the authority service site configurations by typing:

sudo cp <metacat_package_dir>/authority /etc/apache2/sites-available
sudo a2ensite authority

Restart apache to bring in changes by typing:

sudo /etc/init.d/apache2 force-reload
Install Tomcat

Install Tomcat 5.5 by typing:

sudo sudo apt-get install tomcat5.5

Install Metacat friendly Tomcat startup script by typing:

sudo /etc/init.d/tomcat5.5 stop
sudo mv /etc/init.d/tomcat5.5 /etc/init.d/tomcat5.5.bak
sudo cp <metacat_package_dir>/tomcat5.5 /etc/init.d/tomcat5.5
sudo chmod +x /etc/init.d/tomcat5.5

Install PostgreSQL Database

Install PostgreSQL by typing:

sudo apt-get install postgresql

Change to postgres user:

sudo su - postgres

Setup empty Metacat database instance editing the postgreSQL configuration file:

gedit /etc/postgresql/8.3/main/pg_hba.conf

and adding the following line:

host metacat metacat 127.0.0.1 255.255.255.255 password

Save the file, then create the metacat instance:

createdb metacat

Log into postgreSQL by typing:

psql metacat

and create the metacat user by typing at the psql prompt:

CREATE USER metacat WITH UNENCRYPTED PASSWORD 'your_password';

where your_password is whatever password you would like for the metacat user.

Exit PostgreSQL by typing

\q

Restart the PostgreSQL database to bring in changes:

/etc/init.d/postgresql-8.3 restart

Log out of the postgres user account by typing:

logout

Test the installation and metacat account by typing:

psql -U metacat -W -h localhost metacat

Log back out of postgreSQL:

\q
Install Metacat War

Copy the war file to Tomcat:

sudo cp <metacat_package_dir>/knb.war /usr/share/tomcat5.5/webapps

Restart Tomcat:

sudo /etc/init.d/tomcat5.5 restart
Install LSID War

If you want to run an LSID server along with the Metacat server, copy the authority.war file to Tomcat:

sudo cp <metacat_package_dir>/authority.war /usr/share/tomcat5.5/webapps

Restart Tomcat:

sudo /etc/init.d/tomcat5.5 restart
Configure Metacat

Refer to the documentation on Metacat Confguration to complete your installation of Metacat.

Quick Update

These are the instructions for a system that already has Metacat installed on it, but needs a Metacat upgrade:

Download Metacat Package

Browse to the KNB Software Download Page. In the Metacat section, select the link that looks like:

metacat-bin-X.X.X.tar.gz

where X.X.X is the latest version of Metacat. Choose to save the file locally.

Extract the Metacat package files by typing:

tar -xvzf metacat-bin-X.X.X.tar.gz

You should see a war file and several supporting files. The location where these files were extracted will be refered to as the the <metacat_package_dir> for the remainder of this documentation.

Backup Existing Metacat Installation

To be safe, it is best to backup the existing Metacat installation. Do so by typing:

cp /knb /knb.bak
cp /knb.war /knb.war.bak

Of course, you can use any backup strategy you like (or none at all).

Install Metacat War

Copy the war file to Tomcat:

sudo cp knb.war /usr/share/tomcat5.5/webapps

Restart Tomcat:

sudo /etc/init.d/tomcat5.5 restart
Update LSID War

If you want to run an LSID server along with the Metacat server, copy the authority.war file to Tomcat:

sudo cp <metacat_package_dir>/authority.war /usr/share/tomcat5.5/webapps

Restart Tomcat:

sudo /etc/init.d/tomcat5.5 restart
Configure Metacat

Refer to the documentation on Metacat Confguration to complete your installation of Metacat.

Installing From Source Code

These documents are meant to outline the metacat installation process on specific platforms. They are not a substitute for the below instructions and only meant as a supplemental guideline.

Windows XP

See the Windows XP installation instructions.

Ubuntu 8.04

See the Ubuntu 8.04 installation instructions.

Mac OS X

See the Mac OS X installation instructions.

Pre-Installation
Minimum Requirements

Installing Metacat requires a server running an SQL92 compliant database (Oracle 8i or Postgresql recommended) with at least 128MB RAM, and a Pentium III class processor or higher. The amount of disk space required depends on the size of your RDBMS tablespace (which should be at least 10 MB, however Metacat itself requires only about 1 MB of free space after installation). These instructions assume a Linux environment but may work on other UNIX type environments, however this has not been tested.

Additional Required Software

The server on which you wish to install Metacat must have the following software installed and running correctly before attempting to install Metacat.

Additional Software Setup
Java

You'll need a recent Java SDK; J2SE 1.4.2 or later is required. The latest metacat release has been tested most extensively with J2SE 5.0 and this is the recommended version. Make sure that JAVA_HOME environment variable is properly set and that both java and javac are on your PATH.

Oracle 8i

The Oracle RDBMS must be installed and running as a daemon on the system. In addition the JDBC listener must be enabled. You can enable it by logging in as your Oracle user and typing the following:

lsnrctl start

Your instance should have a table space of at least 5 MB (10 MB or higher recommended). You should also have a username specific to Metacat created and enabled. This user must have most normal permissions including CREATE SESSION, CREATE TABLE, CREATE INDEX, CREATE TRIGGER, EXECUTE PROCEDURE, EXECUTE TYPE, etc. If an action is unexplainably rejected by Metacat it is probably because the user permissions are not correctly set.

PostgreSQL

PostgreSQL can be easily installed on most linux distributions and on Windows (using cygwin) and Mac OS X. Using Fedora Core or RedHat Linux, you can install the rpms for postgres and then run

/etc/init.d/postgresql start

in order to start the database. On Ubuntu and other Debian-based Linux distributions, you can use the apt-get command to install postgres: sudo apt-get install postgresql-8.0 and then run /etc/init.d/postgresql-8.0 start to start. This initializes the data files. You need to do a bit of configuration to create a database and set up a user account and allow internet access via jdbc. See the postgres documentation for this, but here is a quick start:

Ant

Ant is a Java based build application similar to Make on UNIX systems. It takes in installation parameters from a file in the root installation directory named "build.xml". The Metacat CVS module contains a default build.xml file that may require some modification upon installation. Ant should be installed on the system and the "ant" executable shell script should be available in the users path. The latest metacat release was tested with Ant 1.6.5.

Tomcat

Install Tomcat into the directory of your choice. The directory in which you install Tomcat itself will be referred to as the "$CATALINA_HOME". We recommend that you install Tomcat version 5.5. More details about Tomcat installation are available here.

Installing Metacat

This section is only for a fresh installation. If you are upgrading an existing Metacat, please skip this section and go to the next one - Upgrading Existing Metacat

Download Metacat Application

Browse to the KNB Software Download Page. In the Metacat section, select the link that looks like:

metacat-bin-X.X.X.tar.gz

where X.X.X is the latest version of Metacat. Choose to save the file locally.

Extract the Metacat package files by typing:

tar -xvzf metacat-bin-X.X.X.tar.gz

You should see a war file and several supporting files. The location where these files were extracted will be refered to as the the <metacat_package_dir> for the remainder of this documentation.

Install Metacat War

Copy the war file to Tomcat:

sudo cp knb.war /usr/share/tomcat5.5/webapps

Restart Tomcat:

sudo /etc/init.d/tomcat5.5 restart
Restart Tomcat

Once you have successfully installed Metacat, there is one more step. Tomcat (and Apache if you have Tomcat integrated with it) must be restarted. To do this, login as the user that runs your tomcat server (often "tomcat"), go to $CATALINA_HOME/bin and type:

./shutdown.sh
./startup.sh

In the Tomcat startup messages you should see something in the log file like:

Metacat: [WARN]: Metacat (1.9.0) initialized. [edu.ucsb.nceas.metacat.MetaCatServlet]

If you see that message Tomcat has successfully loaded the Metacat servlet. Next, try to run your new servlet. Go to a web browser and type:

http://yourserver.yourdomain.com/yourcontext/

You should substitute your context name for "yourcontext" in the url above. If everything is working correctly, you should see a Metacat configuration screen. Note that if you do not have Tomcat integrated with Apache you will probably have to type:

http://yourserver.yourdomain.com:8080/yourcontext/
Troubleshooting

If you see something like:

java.lang.InternalError: Can't connect to X11 window server using 'yourservanme:0.0' as the value of the DISPLAY variable.

You should add this line:

JAVA_OPTS="-Djava.awt.headless=true $JAVA_OPTS"

at the first line of the catalina.sh file in tomcat bin directory. The reason is that GeoServer uses X11 windows to draw graphics.

Configure Metacat

Once you see the Metacat configuration screen, you can follow the instructions in the Configuring Metacat Section to complete the internal configuration of Metacat.

Upgrading Existing Metacat

The following instructions are for upgrading an existing Metacat.

Stop the Running Metacat

To do this, login as the user that runs your tomcat server (often "tomcat"), go to $CATALINA_HOME/bin and type:

./shutdown.sh
Download Latest Metacat Application

Browse to the KNB Software Download Page. In the Metacat section, select the link that looks like:

metacat-bin-X.X.X.tar.gz

where X.X.X is the latest version of Metacat. Choose to save the file locally.

Extract the Metacat package files by typing:

tar -xvzf metacat-bin-X.X.X.tar.gz

You should see a war file and several supporting files. The location where these files were extracted will be refered to as the the <metacat_package_dir> for the remainder of this documentation.

Upgrade Metacat War

Copy the war file to Tomcat:

sudo cp knb.war /usr/share/tomcat5.5/webapps

Remove (or rename) the existing application directory:

sudo rm -rf /usr/share/tomcat5.5/webapps/knb

or

sudo mv /usr/share/tomcat5.5/webapps/knb /usr/share/tomcat5.5/webapps/knb.bak

Restart Tomcat:

sudo /etc/init.d/tomcat5.5 restart
Restart Tomcat

Once you have successfully installed Metacat, there is one more step. Tomcat (and Apache if you have Tomcat integrated with it) must be restarted. To do this, login as the user that runs your tomcat server (often "tomcat"), go to $CATALINA_HOME/bin and type:

./startup.sh

In the Tomcat startup messages you should see something in the log file like:

Metacat: [WARN]: Metacat (1.8.0) initialized. [edu.ucsb.nceas.metacat.MetaCatServlet]
If you see that message Tomcat has successfully loaded the Metacat servlet. Next, try to run your new servlet. Go to a web browser and type:

http://yourserver.yourdomain.com/yourcontext/

You should substitute your context name for "yourcontext" in the url above. If everything is working correctly, you should see a query page followed by an empty result set. Note that if you do not have Tomcat integrated with Apache you will probably have to type

http://yourserver.yourdomain.com:8080/yourcontext/
Troubleshooting

If you see something like:

java.lang.InternalError: Can't connect to X11 window server using 'yourservanme:0.0' as the value of the DISPLAY variable.

You should add this line:

JAVA_OPTS="-Djava.awt.headless=true $JAVA_OPTS"

at the first line of the catalina.sh file in the tomcat bin directory. The reason is that GeoServer uses X11 windows to draw graphics.

Configure Metacat

Once you see the Metacat configuration screen, you can follow the instructions in the Configuring Metacat Section to complete the internal configuration of Metacat.

Web Based Registry

The registry allows users to upload simple metadata documents directly from the web. See the separate Registry Installation Guide.