Installing Metacat on Mac OSX (10.4.10)

Author: Matthew Perry, Derik Barseghian
Date: 11/05/2007

This is a terse cheatsheet for metacat with postgres on os X. Please see metacat_install_instructs.html for the full details.

* pre-requirements

install ant, postgres, tomcat using macports

Alternatively, download and install ant, postgres and tomcat from source or using fink.

install macports.

launch a terminal

sudo port -d sync
sudo port search ant
sudo port install ant
sudo port search postgres
sudo port install postgresql82
sudo port search tomcat
sudo port install tomcat5

* metacat install

setup database

cd /opt/local/lib/postgresql82/
sudo mkdir data
chown -R yourusername.yourusername data
cd data
../bin/initdb -D data
../bin/pg_ctl -D data -l logfile start
../bin/createdb metacat
../bin/psql -d metacat
metacat=> create user metacat with unencrypted password 'metacat';
metacat=> \q

test password:

	../bin/psql -U metacat -W -h localhost metacat
	Password for user metacat:
	metacat=> \q

cd /opt/local/share/java/tomcat5
sudo mkdir -p data/metacat/data
sudo mkdir -p data/metacat/inlinedata
chown -R yourusername.yourusername data


bin/initdb -D data
bin/pg_ctl -D data -l logfile start
bin/createdb metacat
bin/psql -d metacat
metacat=> create user metacat with unencrypted password 'yourpassword';
metacat=> \q

Add to data/pg_hba.conf:

	host metacat metacat 127.0.0.1 255.255.255.255 password

bin/pg_ctl -D data -l logfile restart
psql -U metacat -W -h localhost metacat

checkout metacat

mkdir ~/cvs_src/
cd ~/cvs_src
export CVS_RSH="/usr/bin/ssh"
cvs -d:ext:your_cvs_name@cvs.ecoinformatics.org:/cvs co metacat
cvs -d:ext:your_cvs_name@cvs.ecoinformatics.org:/cvs co utilities

edit build.properties as needed

tomcat=/opt/local/share/java/tomcat5
deploy.dir=/opt/local/share/java/tomcat5/webapps/
config.hostname=localhost
config.port=8080
config.port.https=8443

datafilepath=/opt/local/share/java/tomcat5/data/metacat/data
inlinedatafilepath=/opt/local/share/java/tomcat5/data/metacat/inlinedata

if your mac username is different from your cvs name, hardcode hack:

	cvsroot=:ext:yourcvsname@cvs.ecoinformatics.org:/cvs

log.dir=/opt/local/share/java/tomcat5/logs
metacat.dir=/Users/yourname/nceas/metacat

install metacat

cd metacat
sudo ant install

Enter your cvs password a few times...

psql82 -U metacat -W -h localhost -f build/src/xmltables-postgres.sql metacat
ant register-schemas

Restart tomcat

sudo /opt/local/share/java/tomcat5/bin/shutdown.sh
sudo /opt/local/share/java/tomcat5/bin/startup.sh

Point your browser to http://localhost:8080/knb/ and you should be in business.

After restarting, you'll need to fire off the following commands in order to start up postgres/tomcat again: # Startup

/Users/nceas/Apps/postgres/bin/pg_ctl -D /Users/nceas/Apps/postgres/data/ -l /Users/nceas/Apps/postgres/logfile -m fast start
/Users/nceas/Apps/apache-tomcat-5.5.20/bin/startup.sh

# Shutdown

/Users/nceas/Apps/apache-tomcat-5.5.20/bin/shutdown.sh
/Users/nceas/Apps/postgres/bin/pg_ctl -D /Users/nceas/Apps/postgres/data/ -l /Users/nceas/Apps/postgres/logfile -m fast stop

You can create two shell scripts with the preceeding commands; start_metacat.sh and stop_metacat.sh