d6451b8170
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@985561 13f79535-47bb-0310-9956-ffa450edef68
378 lines
11 KiB
Text
378 lines
11 KiB
Text
Apache Tuscany SCA Runtime
|
|
==========================
|
|
|
|
Automated installation on Ubuntu 9.10
|
|
=====================================
|
|
|
|
Tuscany provides two automated install scripts for Ubuntu 9.10. You can start
|
|
with a fresh Ubuntu Server 9.10 system and these scripts will take care of all
|
|
the download, build and installation steps for you.
|
|
|
|
ubuntu/ubuntu-install:
|
|
Minimum build and installation using dependencies (Apache HTTPD server,
|
|
Memcached etc) from your Ubuntu 9.10 system.
|
|
|
|
ubuntu/ubuntu-install-all:
|
|
Complete build and installation with most dependencies built from source.
|
|
|
|
System dependencies are downloaded and installed using sudo apt-get. Source
|
|
dependencies are downloaded and built in the current directory.
|
|
|
|
To run the automated installation:
|
|
mkdir tuscany
|
|
cd tuscany
|
|
wget http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-install
|
|
chmod +x ./ubuntu-install
|
|
./ubuntu-install
|
|
|
|
The installation script will display each command as it's executed.
|
|
|
|
That's all you need to do to build and install the Tuscany SCA runtime on
|
|
Ubuntu 9.10.
|
|
|
|
For manual build and install steps on other systems or if you need to customize
|
|
your installation, read on...
|
|
|
|
|
|
Building
|
|
========
|
|
|
|
The Tuscany SCA Linux build uses the GNU Autotools tool chain.
|
|
|
|
First install the following development tools:
|
|
autoconf-2.64
|
|
automake-1.11
|
|
libtool-2.2.6
|
|
doxygen-1.6.1
|
|
gcc-g++-4.5
|
|
|
|
The GCC 4.5 compiler may not yet be included in your Linux distribution.
|
|
GCC 4.5 Ubuntu / Debian packages can be downloaded from:
|
|
http://ftp.debian.org/debian/pool/main/g/gcc-4.5/
|
|
|
|
To download and setup GCC 4.5 on Ubuntu 9.10, run this script:
|
|
http://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-gcc-4.5
|
|
|
|
|
|
Then install the following development dependencies:
|
|
|
|
Apache HTTP server and APR:
|
|
httpd-2.2.16 (http://httpd.apache.org/)
|
|
with included libapr and libaprutil
|
|
built with OpenSSL libssl-0.9.8g
|
|
|
|
Memcached:
|
|
memcached-1.4.4 (http://memcached.org/)
|
|
built with libevent-1.4.11
|
|
|
|
XML:
|
|
libxml2-2.7.7 (http://xmlsoft.org/)
|
|
|
|
CURL:
|
|
curl-7-19-5
|
|
libcurl4-openssl-7.19.5
|
|
|
|
JSON:
|
|
Mozilla TraceMonkey libmozjs (https://wiki.mozilla.org/JavaScript:TraceMonkey)
|
|
also included in xulrunner-1.9.1.8
|
|
|
|
Key/value store:
|
|
tinycdb-0.77 (http://www.corpit.ru/mjt/tinycdb.html)
|
|
|
|
Optional dependencies:
|
|
|
|
Web Services:
|
|
Apache Axis2/C 1.6.0 (http://ws.apache.org/axis2/c/)
|
|
|
|
Queueing:
|
|
Apache Qpid/C++ 0.6 (http://qpid.apache.org/)
|
|
built with libuuid-2.16, libboost-1.38.1, libboost-program-options-1.38.1 and
|
|
libboost-filesystem-1.38.1
|
|
|
|
Python:
|
|
Python 2.6.4 (http://www.python.org/)
|
|
Google AppEngine 1.3.2 (http://code.google.com/appengine/)
|
|
|
|
Java:
|
|
a Java 5+ JDK (http://openjdk.java.net/, http://harmony.apache.org/)
|
|
|
|
OpenID user sign in:
|
|
Mod_auth_openid (http://trac.butterfat.net/public/mod_auth_openid)
|
|
build it from source at http://github.com/jsdelfino/mod_auth_openid
|
|
requires Libopkele (http://kin.klever.net/libopkele/ or
|
|
http://github.com/jsdelfino/libopkele)
|
|
and HTML Tidy (http://tidy.sourceforge.net/)
|
|
|
|
XMPP Chat:
|
|
Apache Vysper 0.5 (http://mina.apache.org/)
|
|
|
|
Libstrophe (http://code.stanziq.com/strophe/)
|
|
build it from source at git://github.com/jsdelfino/libstrophe.git
|
|
requires Expat 2.0.1 (http://sourceforge.net/projects/expat/)
|
|
|
|
SQL Database:
|
|
postgresql-9.0 (http://www.postgresql.org/)
|
|
|
|
Logging:
|
|
Facebook Scribe 2.2 (http://github.com/facebook/scribe/downloads)
|
|
requires Apache Thrift 0.2.0 (http://incubator.apache.org/thrift/)
|
|
|
|
Cloud deployment:
|
|
Apache Libcloud 0.3.1 (http://incubator.apache.org/libcloud/)
|
|
|
|
|
|
To configure the Tuscany SCA build do this:
|
|
./bootstrap
|
|
./configure --prefix=<install dir>
|
|
|
|
To enable debugging and strict warning compile options, add:
|
|
--enable-maintainer-mode
|
|
|
|
To enable gprof profiling, add:
|
|
--enable-profiling
|
|
|
|
To enable multi-threading (required by the Queue and Chat components and
|
|
for running with the HTTPD worker or event multi-threaded MPMs):
|
|
--enable-threads
|
|
|
|
To enable support for Python component implementations:
|
|
--enable-python
|
|
|
|
To enable support for Java component implementations:
|
|
--enable-java
|
|
|
|
To build the Queue utility component (requires Apache Qpid/C++):
|
|
--enable-queue
|
|
|
|
To build the Chat utility component (requires Libstrophe and optionally Apache
|
|
Vysper if you want to run the tests with a local Vysper XMPP server):
|
|
--enable-chat
|
|
|
|
To build the Log utility component (requires Facebook Scribe and Apache Thrift):
|
|
--enable-log
|
|
|
|
To build the SQL Database utility component (requires PostgreSQL):
|
|
--enable-sqldb
|
|
|
|
To build the Web service utility component (requires Apache Axis2/C):
|
|
--enable-webservice
|
|
|
|
To generate doxygen documentation, add:
|
|
--enable-doxygen
|
|
|
|
To configure where to find dependencies, see the --with-* options described
|
|
in the configure help:
|
|
./configure --help
|
|
|
|
|
|
Here's an example configuration, tested on Ubuntu 9.10, with the system
|
|
dependencies installed in the standard system directories and some of the
|
|
dependencies installed under $HOME:
|
|
|
|
./configure --prefix=$HOME/tuscany-sca-cpp-bin \
|
|
--with-apr=$HOME/httpd-2.2.13-bin --with-httpd=$HOME/httpd-2.2.13-bin \
|
|
--with-memcached=$HOME/memcached-1.4.4-bin \
|
|
--with-tinycdb=$HOME/tinycdb-0.77-bin \
|
|
--with-curl=$HOME/curl-7.19.5-bin --with-libxml2=/usr \
|
|
--with-js-include=/usr/include/xulrunner-1.9.1.8/unstable \
|
|
--with-js-lib=/usr/lib/xulrunner-1.9.1.8 \
|
|
--enable-libcloud \
|
|
--with-libcloud=$HOME/libcloud-0.3.1-bin \
|
|
--enable-threads \
|
|
--enable-python --with-python=/usr \
|
|
--enable-gae --with-gae=$HOME/google_appengine \
|
|
--enable-java --with-java=/usr/lib/jvm/default-java \
|
|
--enable-webservice --with-axis2c=$HOME/axis2c-1.6.0-bin \
|
|
--with-libxml2=$HOME/libxml2-2.7.7-bin \
|
|
--enable-queue --with-qpidc=$HOME/qpidc-0.6-bin \
|
|
--enable-chat --with-libstrophe=$HOME/libstrophe-bin \
|
|
--with-vysper=$HOME/vysper-0.5 \
|
|
--enable-sqldb --with-pgsql=$HOME/postgresql-9.0-bin \
|
|
--enable-log --with-thrift=$HOME/thrift-0.2.0-bin \
|
|
--with-scribe=$HOME/scribe-2.2-bin \
|
|
--enable-openid --with-mod-auth-openid=$HOME/mod-auth-openid-bin \
|
|
--enable-maintainer-mode
|
|
|
|
|
|
To build the Tuscany SCA runtime, do this:
|
|
make
|
|
|
|
To run the tests, do this:
|
|
make check
|
|
|
|
To build ctags for the source, do this:
|
|
make ctags
|
|
|
|
To build a source distribution, do this:
|
|
make dist
|
|
|
|
To build a binary distribution, do this:
|
|
make bindist
|
|
|
|
|
|
Installing
|
|
==========
|
|
|
|
To install the Tuscany SCA binaries, do this:
|
|
make install
|
|
|
|
|
|
Building dependencies from source
|
|
=================================
|
|
|
|
Here are example build and install steps for some of the dependencies.
|
|
|
|
Apache HTTPD, including APR, using the HTTP prefork MPM (recommended):
|
|
wget http://www.apache.org/dist/httpd/httpd-2.2.16.tar.gz
|
|
tar xzf httpd-2.2.16.tar.gz
|
|
cd httpd-2.2.16
|
|
./configure --enable-ssl --enable-proxy --enable-mods-shared=most \
|
|
--with-included-apr --with-mpm=prefork --prefix=$HOME/httpd-2.2.16-bin
|
|
make
|
|
make install
|
|
export PATH=$HOME/httpd-2.2.16-bin/bin:$PATH
|
|
|
|
Memcached:
|
|
wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
|
|
tar xzf memcached-1.4.4.tar.gz
|
|
cd memcached-1.4.4
|
|
./configure --prefix=$HOME/memcached-1.4.4-bin
|
|
make
|
|
make install
|
|
|
|
TinyCDB:
|
|
wget http://www.corpit.ru/mjt/tinycdb/tinycdb_0.77.tar.gz
|
|
tar xzf tinycdb_0.77.tar.gz
|
|
cd tinycdb-0.77
|
|
make
|
|
make prefix=$HOME/tinycdb-0.77-bin install
|
|
|
|
CURL:
|
|
wget http://curl.haxx.se/download/curl-7.19.5.tar.gz
|
|
tar xzf curl-7.19.5.tar.gz
|
|
cd curl-7.19.5
|
|
./configure --prefix=$HOME/curl-7.19.5-bin
|
|
make
|
|
make install
|
|
|
|
Libxml2:
|
|
wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.7.7.tar.gz
|
|
tar xzf libxml2-sources-2.7.7.tar.gz
|
|
cd libxml2-2.7.7
|
|
./configure --prefix=$HOME/libxml2-2.7.7-bin
|
|
make
|
|
make install
|
|
|
|
TraceMonkey:
|
|
wget http://hg.mozilla.org/tracemonkey/archive/e4364736e170.tar.gz
|
|
tar xzf tracemonkey-e4364736e170.tar.gz
|
|
cd tracemonkey-e4364736e170/js/src
|
|
autoconf2.13
|
|
./configure --prefix=$HOME/tracemonkey-bin
|
|
make
|
|
make install
|
|
|
|
Apache Axis2/C:
|
|
wget http://www.apache.org/dist/ws/axis2-c/1_6_0/axis2c-src-1.6.0.tar.gz
|
|
tar xzf axis2c-src-1.6.0.tar.gz
|
|
cd axis2c-src-1.6.0
|
|
./configure --enable-libxml2 --enable-openssl \
|
|
--with-apache2=$HOME/httpd-2.2.16-bin/include --prefix=$HOME/axis2c-1.6.0-bin
|
|
make
|
|
make install
|
|
export AXIS2C_HOME=$HOME/axis2c-1.6.0-bin
|
|
|
|
Apache Qpid/C++:
|
|
wget http://www.apache.org/dist/qpid/0.6/qpid-cpp-0.6.tar.gz
|
|
tar xzf qpid-cpp-0.6.tar.gz
|
|
cd qpidc-0.6
|
|
./configure --prefix=$HOME/qpidc-0.6-bin
|
|
make
|
|
make install
|
|
|
|
Libexpat:
|
|
wget http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download
|
|
tar xzf expat-2.0.1.tar.gz
|
|
cd expat-2.0.1
|
|
./configure --prefix=$HOME/expat-2.0.1-bin
|
|
make
|
|
make install
|
|
|
|
Libstrophe:
|
|
git clone git://github.com/jsdelfino/libstrophe.git
|
|
cd libstrophe
|
|
./bootstrap.sh
|
|
./configure --prefix=$HOME/libstrophe-bin --with-expat=$HOME/expat-2.0.1-bin
|
|
make
|
|
make install
|
|
|
|
HTML Tidy:
|
|
cvs -z3 -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy co -P tidy
|
|
cd tidy
|
|
build/gnuauto/setup.sh
|
|
./configure --prefix=$HOME/htmltidy-bin
|
|
make
|
|
make install
|
|
|
|
Libopkele:
|
|
git clone git://github.com/jsdelfino/libopkele.git
|
|
cd libopkele
|
|
./autogen.bash
|
|
./configure --prefix=$HOME/libopkele-bin --with-curl=$HOME/curl-7.19.5-bin \
|
|
--with-expat=$HOME/expat-2.0.1-bin --with-htmltidy=$HOME/htmltidy-bin
|
|
|
|
Mod_auth_openid:
|
|
git clone git://github.com/jsdelfino/mod_auth_openid.git
|
|
cd mod_auth_openid
|
|
./autogen.sh
|
|
./configure --prefix=$HOME/mod-auth-openid-bin \
|
|
--with-apr=$HOME/httpd-2.2.16-bin --with-httpd=$HOME/httpd-2.2.16-bin \
|
|
--with-curl=$HOME/curl-7.19.5-bin --with-libopkele=$HOME/libopkele-bin
|
|
make
|
|
make install
|
|
|
|
PostgreSQL:
|
|
wget http://wwwmaster.postgresql.org/download/mirrors-ftp/source/9.0alpha5/postgresql-9.0alpha5.tar.gz
|
|
tar xzf postgresql-9.0alpha5.tar.gz
|
|
cd postgresql-9.0alpha5
|
|
./configure --prefix=$HOME/postgresql-9.0-bin
|
|
make
|
|
make install
|
|
|
|
Apache Thrift (including Facebook fb303):
|
|
wget http://www.apache.org/dist/incubator/thrift/0.2.0-incubating/thrift-0.2.0-incubating.tar.gz
|
|
tar xzf thrift-0.2.0-incubating.tar.gz
|
|
cd thrift-0.2.0
|
|
./bootstrap.sh
|
|
./configure --prefix=$HOME/thrift-0.2.0-bin --with-java=no --with-erlang=no \
|
|
--with-perl=no --with-ruby=no --with-csharp=no --disable-static
|
|
make
|
|
make install
|
|
cd contrib/fb303
|
|
./bootstrap.sh
|
|
./configure --prefix=$HOME/thrift-0.2.0-bin/contrib/fb303 \
|
|
PY_PREFIX=$HOME/thrift-0.2.0-bin/contrib/fb303 \
|
|
--with-thriftpath=$HOME/thrift-0.2.0-bin
|
|
make
|
|
make install
|
|
cp cpp/lib/libfb303.so $HOME/thrift-0.2.0-bin/contrib/fb303/lib
|
|
|
|
Facebook Scribe:
|
|
wget http://github.com/downloads/facebook/scribe/scribe-2.2.tar.gz
|
|
tar xzf scribe-2.2.tar.gz
|
|
cd scribe
|
|
./bootstrap.sh --prefix=$HOME/scribe-2.2-bin PY_PREFIX=$HOME/scribe-2.2-bin \
|
|
--with-thriftpath=$HOME/thrift-0.2.0-bin \
|
|
--with-fb303path=$HOME/thrift-0.2.0-bin/contrib/fb303 \
|
|
--disable-static
|
|
make
|
|
make install
|
|
cp src/lib/libscribe.so $HOME/scribe-2.2-bin/lib
|
|
|
|
Apache Libcloud:
|
|
wget http://www.apache.org/dist/incubator/libcloud/apache-libcloud-incubating-0.3.1.tar.bz2
|
|
tar xjf apache-libcloud-incubating-0.3.1.tar.bz2
|
|
cd apache-libcloud-0.3.1
|
|
python setup.py build
|
|
python setup.py install --home $HOME/libcloud-0.3.1-bin
|
|
|