Linux

From NEOSYS Dev Wiki
Revision as of 21:56, 11 July 2009 by 85.17.154.66 (talk)
Jump to navigationJump to search

Building and Installing Exodus

Log of an installation of libexodus on Ubuntu 8.04.1 LTS

Log of an installation of libexodus on Ubuntu 9.04 Jaunty Jackalope

Log of an installation of libexodus on Centos 5.3

exodus Dependencies

Building Boost from Source

Boost binaries are available for most platform but it can be easier to build from source as follows:

Minimum required is boost 1_32. Here we install 1.38.

Optionally get ICU to fully support unicode in boost regex

Centos

yum install libicu-devel

Ubuntu

apt-get install libicu-dev

Download and unpack Boost Source

wget http://downloads.sourceforge.net/boost/boost_1_38_0.tar.bz2
tar xvf boost_1_38_0.tar.bz2
cd boost_1_38_0
./configure --help
./configure --with-libraries=date_time,filesystem,iostreams,program_options,regex,system,thread

Speed up the build of Boost by only doing the libraries and versions required. ADD additional config to the BJAM_CONFIG line as follows:

nano Makefile
BJAM_CONFIG= xxxxxxxxxxxxx -j4 variant=release link=shared

Build and install Boost

make
sudo make install

Centos - Add "/usr/local/lib" to the list of lib directories to ensure that the boost libs can be found.

sudo nano /etc/ld.so.conf

Ensure the new boost libraries are registered for use.

sudo /sbin/ldconfig

Ensure boost includes can be found. This step might be eliminated in a better Exodos installer.

sudo ln -s /usr/local/include/boost-1_38/boost /usr/local/include/boost

Building service

service is an incomplete multithreaded framework to support dynamic loading of library routines and serving a request/response queue.

www provides an optional web interface to the request/response queue. Windows only at the moment due to a single asp files but could be ported to php.

Building service

cd ~/exodus/trunk/service/service
g++ -fPIC -c *.cpp -I/usr/local/include/boost-1_38 -I../../exodus/mv/src
g++ -shared -o libservice.so -lc *.o
g++ -o service main.cpp -I/usr/local/include/boost-1_38 -L. -L/usr/local/lib -lexodus -lpq -lboost_filesystem-gcc41-mt\
-lboost_regex-gcc41-mt -lboost_thread-gcc41-mt -L../../exodus/mv/src -I../../exodus/mv/src -L./ -lservice

Running service

export LD_LIBRARY_PATH=../../exodus/mv/src:.:/usr/local/lib:$LD_LIBRARY_PATH
./service

Developing libexodus/pgexosdus/service

Committing your developments

First get a username and password by running the following unix command and send the output to an exodus subversion administrator eg steve.bush@neosys.com

htpasswd -nm YOURDESIREDUSERNAME

The administrator needs to run the following command as root and enter the encrypted pass (the bit AFTER the :) ignoring the warning about plain text password because it is already encrypted.

htpasswd -p /etc/apache2/dav_svn.passwd YOURDESIREDUSERNAME