Log of an installation of libexodus on Centos 5.3: Difference between revisions
Line 31: | Line 31: | ||
sudo ln -s /usr/local/include/exodus-9.6/exodus /usr/local/include/exodus | sudo ln -s /usr/local/include/exodus-9.6/exodus /usr/local/include/exodus | ||
=== Setting up Postgres for Exodus === | === Setting up Postgres for Exodus === |
Revision as of 15:46, 11 July 2009
Preparation
sudo yum update sudo yum install boost-devel postgresql-devel gcc-c++ subversion postgresql-server sudo /etc/init.d/ postgresql start
Exodus
cd ~ mkdir exodus cd exodus svn co http://svn.neosys.com/svn/trunk cd trunk/exodus
./configure make sudo make install
sudo nano /etc/ld.so.conf
... and add the following line (note: NO preceding word include)
/usr/local/lib
register the new libraries
sudo /sbin/ldconfig
make a pointer to the include files
sudo ln -s /usr/local/include/exodus-9.6/exodus /usr/local/include/exodus
Setting up Postgres for Exodus
become user postgres and get into postgres command prompt
sudo su - postgres
psql
create a user and database for exodus. Use the given password for now.
CREATE ROLE exodus LOGIN PASSWORD 'somesillysecret' CREATEDB CREATEROLE; CREATE DATABASE exodus WITH ENCODING='UTF8' OWNER=exodus;
\connect exodus
-- cut and paste the following SQL to register the functions into postgres --
CREATE OR REPLACE FUNCTION exodus_call(bytea, bytea, bytea, bytea, bytea, int4, int4) RETURNS bytea AS 'pgexodus', 'exodus_call' LANGUAGE C IMMUTABLE;
CREATE OR REPLACE FUNCTION exodus_extract_bytea(bytea, int4, int4, int4) RETURNS bytea AS 'pgexodus', 'exodus_extract_bytea' LANGUAGE C IMMUTABLE;
CREATE OR REPLACE FUNCTION exodus_extract_text(bytea, int4, int4, int4) RETURNS text AS 'pgexodus', 'exodus_extract_text' LANGUAGE C IMMUTABLE;
CREATE OR REPLACE FUNCTION exodus_extract_sort(bytea, int4, int4, int4) RETURNS text AS 'pgexodus', 'exodus_extract_sort' LANGUAGE C IMMUTABLE;
-- Remaining functions are STRICT therefore never get called with NULLS -- also return NULL if passed zero length strings
CREATE OR REPLACE FUNCTION exodus_extract_text2(bytea, int4, int4, int4) RETURNS text AS 'pgexodus', 'exodus_extract_text2' LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION exodus_extract_date(bytea, int4, int4, int4) RETURNS date AS 'pgexodus', 'exodus_extract_date' LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION exodus_extract_time(bytea, int4, int4, int4) RETURNS time AS 'pgexodus', 'exodus_extract_time' LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION exodus_extract_datetime(bytea, int4, int4, int4) RETURNS timestamp AS 'pgexodus', 'exodus_extract_datetime' LANGUAGE C IMMUTABLE STRICT;
Check the functions loaded properly (count them)
\df exodus*
List of functions Schema | Name | Result data type | Argument data types --------+-------------------------+-----------------------------+----------------------------------------------------- public | exodus_call | bytea | bytea, bytea, bytea, bytea, bytea, integer, integer public | exodus_extract_bytea | bytea | bytea, integer, integer, integer public | exodus_extract_date | date | bytea, integer, integer, integer public | exodus_extract_datetime | timestamp without time zone | bytea, integer, integer, integer public | exodus_extract_sort | text | bytea, integer, integer, integer public | exodus_extract_text | text | bytea, integer, integer, integer public | exodus_extract_text2 | text | bytea, integer, integer, integer public | exodus_extract_time | time without time zone | bytea, integer, integer, integer (8 rows)
For more information see http://www.postgresql.org/docs/8.1/static/app-psql.html
Quit postgres command prompt
\q
Unless you are only going to run Exodus as user "exodus" from the local machine, grant login from 127.0.0.1 using username/unencrypted password (instead of only logged-in username without password)
For more info see http://developer.postgresql.org/pgdocs/postgres/auth-pg-hba-conf.html
nano ~/data/pg_hba.conf
or for Ubuntu
sudo nano /etc/postgresql/8.3/main/pg_hba.conf
comment out the following lines. NB DONT comment out any other similar lines esp. ones containining "postgres"
#local all all ident sameuser #host all all 127.0.0.1/32 ident sameuser
and add these lines which allows the 'postgres' user local access through ident authentication, which is needed for cron scripts. The second line, allows anyone to connect locally on 127.0.0.1 if they can provide a valid username and password.
local all postgres ident sameuser host all all 127.0.0.1 255.255.255.255 md5
quit postgres user
exit
Reload Postgres
sudo /etc/init.d/postgresql reload or sudo /etc/init.d/postgresql-8.3 restart