This page describes the tools that need to be manually downloaded, built and installed on any a system that will be used to build Trafodion. The location of the tools is configurable , see the template filehttps://github.com/trafodion/core/blob/master/and can be specified in the Trafodion configuration file. The Trafodion configuration file template is located in <Trafodion download directory>/apache-trafodion-1.2.0-incubating/core/sqf/LocalSettingsTemplate.sh. Following Following the directory structure shown in the template file will make makes it easier to specify the location of these tools for the build. This means you will only need to set the TOOLSDIR environment variable to the value of the common parent directory before building Trafodion.
MPICH
...
Several tools need to be downloaded, built, and installed. They include:
- MPICH – This tools in an implementation of the Message Passing Interface (MPI) standard. For use in Trafodion, MPICH must be built to force sockets to be used in both internode and intranode message passing.
- Bison – This tools is a general-purpose parser generator.
- Udis86 – this tool is a minimalistic disassembler library (libudis86) for the x86 class of instruction set architectures.
- LLVM is a collection of modular and reusable compiler and toolchain technologies.
- ICU is a setup of C/C++ and Java libraries providing Unicode and Globalization support for software applications.
- Zookeeper – is a coordination service for distributed applications. It exposes common services such as naming, configuration management, synchronization, and group services.
- Thrift – is a communications and data serialization tool
Apache Trafodion supplies a script that uses wget to download the appropriate tar file, builds, and installs the required tool into a directory of your choice for each of these tools. However, if one or more of these tools are already installed in your environment or if you want to verify the download location before accepting software, you can install each tool separately.
To install all the tools using the Trafodion provided script, go to "Install tools using traf_tools_setup.sh".
To install each tool individually, go to "Install tools manually"
Install tools using traf_tools_setup.sh
Apache Trafodion provides a script called 'traf_tools_setup.sh' that installs each of these tools for you. This script uses the wget to download the software into a download location, builds the product and installs it into an install directory. This script can be modified to meet the needs of your environment. For example, if you already have Zoopkeeper installed, you may not want to re-install it.
You may need root or SUDO access to install tools in desired location
In the sections below, the <Trafodion installation directory> is the root directory where the Trafodion source has been installed. If you have not yet downloaded Trafodion source, please do it now.
cd <Trafodion download directory>
cd apache-trafodion-1.2.0-incubating/install
In this directory, there is a script called 'traf_tools_setup'.
./traf_tools_setup.sh -h
Usage: ./traf_tools_setup.sh -d <downloaddir> -i <installdir>
-d <downloaddir> - location of download directory
-i <installdir> - location of install directory
-v - verbose mode
-h - help
example: traf_tools_setup.sh -d /home/userx/download -i /home/userx/tools
Execute 'traf_tools_setup.sh' to install all dependent tools
Install tools manually
In the sections below, the <tool installation directory> is the directory where you want the tool to be installed.
MPICH
Trafodion has been built and tested with version 3.0.4 of MPICH. The MPICH 3.0.4 source tar file can be downloaded from http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz.
Save (http://www.mpich.org/downloads). Save the mpich-3.0.4.tar.gz file to your build system and then perform the following commands.
tar -xzf mpich-3.0.4.tar.gz cd mpich-3.0.4 ./configure --prefix=<installation-<tool installation directory>/dest-mpich-3.0.4 --with-device=ch3:sock --disable-f77 --disable-fc make make check make install
Note: <installation- <tool installation directory> is the directory where you want MPICH to be installed. If you do not specify the --prefix option, the default location is /usr/local. For more detailed instructions, see the README file that comes with the source.
Protocol Buffers
Bison
Google Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Trafodion has been built and tested with version 23.4.1. The source can be downloaded fromhttp://code.google.com/p/protobuf/downloads/list. Download and un-tar the protobuf-2.4.1.tar.gz or protobuf-2.4.1.tar.bz2 file to your build system.
tar -xzf protobuf-2.4.1.tar.gz
cd protobuf-2.4.1
./configure --prefix=<installation-directory>/protobuf-2.4.1
make
make check
make install
Note: <installation-directory> is the directory where you want protobuf to be installed. If you do not specify the --prefix option, the default location is /usr/local. To build and install the C++ Protocol Buffer runtime and the Protocol Buffer compiler (protoc), see the detailed instructions in the README.txt file that comes with the source.
Bison
0. To determine if Bison is installed and is compatible:
which bison
bison --version
If a version older than 3.0 is returned, please download a later version. The source tar file can be downloaded from GNU's Bison is a general-purpose parser generator. Trafodion has been built and tested with version 3.0. The source can be downloaded from http://ftp.gnu.org/gnu/bison/ (via http) or ftpbison-3.0.tar.gz (http://ftp.gnu.org/gnu/bison/ (via ftp). Download and save bison-3.0.tar.gz to your build system.
Save ). Save the bison-3.0.tar.gz file to your build system and then perform the following commands.
tar -xzf bison-3.0.tar.gz cd bison-3.0 ./configure --prefix=<installation-<tool installation directory>/bison_3_linux make make check make install
Note: the " make check" step may return errors like the following that can be ignored:
make[3]: Entering directory `<mydir>/bison-3.0'
YACC examples/calc++/calc++-parser.stamp
CXX examples/calc++/examples_calc___calc__-calc++-driver.o
LEX examples/calc++/calc++-scanner.cc
CXX examples/calc++/examples_calc___calc__-calc++-scanner.o
g++: ./examples/calc++/calc++-scanner.cc: No such file or directory
g++: no input files
Adjust your PATH if necessary to make sure the correct version is chosen:
which bison
bison – version
Note: For <installation-directory> is the directory where you want Bison to be installed. If you do not specify the --prefix option, the default location is /usr/local. For more detailed instructions, see the INSTALL file that comes with the source.
Udis86
Udis86 is a minimalistic disassembler library (libudis86) for the x86 class of instruction set architectures. Trafodion has been built and tested with version 1.7.2. The source tar file can be downloaded from http://udis86.sourceforge.net/projects/udis86/files/udis86/1. Download and save 7/udis86-1.7.2.tar.gz to your build system and then perform the following commands. (http://udis86.sourceforge.net). Udis86 is a prerequisite to building the LLVM product.
tar xzf udis86-1.7.2.tar.gz cd udis86-1.7.2 ./configure --prefix=<installation-<tool installation directory>/udis86-1.7.2 --enable-shared make make install
LLVM
LLVM is a collection of modular and reusable compiler and toolchain technologies. Trafodion has been built and tested with version 3.2. Note: Udis86 must be installed on the system before LLVM is built and installed. Trafodion uses a debug build of LLVM for its debug build and a release build of LLVM for its release build. The instructions below are for building both flavors of LLVM, release and debug.
The source tar files for LLVM can be downloaded from http://llvm.org/releases/download.html. Download and save http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz to your build system and then follow these instructions.
(http://llvm.org/releases/download.html). Building LLVM takes some time to complete.
<TDB - LLVM is available from Yum, can this be used?>
# Set BASE_DIR to the top-level directory where the LLVM source will be # unpacked and the objects compiled. BASE_DIR=<your-base-dir> cd $BASE_DIR tar xzf llvm-3.2.src.tar.gz export MY_UDIS_INSTALL_DIR=<udis-installation-directory>/udis86-1.7.2 export MY_LLVM_INSTALL_DIR=<llvm-installation-directory>/dest-llvm-3.2/ export MY_LLVM_SRC_DIR=$BASE_DIR/llvm-3.2.src export MY_LLVM_OBJ_DIR=$BASE_DIR/llvm-3.2.obj/ export LD_LIBRARY_PATH=$MY_UDIS_INSTALL_DIR/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=$MY_UDIS_INSTALL_DIR/include export CPATH=$MY_UDIS_INSTALL_DIR/include mkdir -p $MY_LLVM_OBJ_DIR/release cd $MY_LLVM_OBJ_DIR/release $MY_LLVM_SRC_DIR/configure --prefix=$MY_LLVM_INSTALL_DIR/release \ --enable-optimized --enable-jit \ --enable-shared --enable-targets=x86,x86_64,cpp \ --with-udis86=$MY_UDIS_INSTALL_DIR/lib \ CFLAGS=-fgnu89-inline make libs-only make install-libs mkdir -p $MY_LLVM_OBJ_DIR/debug cd $MY_LLVM_OBJ_DIR/debug $MY_LLVM_SRC_DIR/configure --prefix=$MY_LLVM_INSTALL_DIR/debug \ --enable-optimized --enable-jit \ --enable-debug-runtime --enable-debug-symbols \ --enable-shared --enable-targets=x86,x86_64,cpp \ --with-udis86=$MY_UDIS_INSTALL_DIR/lib \ CFLAGS=-fgnu89-inline make libs-only make install-libs
ICU
ICU is a set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. Trafodion ITrafodion has been built and tested with version 4.4.0. The source can tar filecan be downloaded from from http://download.icu-project.org/files/icu4c/4.4/. Download and save icu4c-4_4-src.tgz to your build system and then perform the following commands (http://site.icu-project.org/download.
tar -xzf icu4c-4_4-src.tgz cd icu/source ./runConfigureICU Linux --with-library-suffix=Nv44 --prefix=<installation-<tool installation directory>/icu4.4/linux64 make && make check make install
Qt
Qt is a cross-platform application and UI framework for developers using C++ or QML. This is an optional build tool that only needs to be installed if you plan to build and use the GUI SQL compiler debugger. If you don't want to build the GUI SQL compiler debugger then copy sqf/LocalSettingsTemplate.sh
to your HOME directory as ".trafodion" and unset the QT_TOOLKIT variable in the .trafodion file.
Trafodion has been built and tested with Qt version 4.8.4. That version of Qt can be downloaded from http://download.qt-project.org/archive/qt/4.8/4.8.4/qt-everywhere-opensource-src-4.8.4.tar.gz.
tar -xzf qt-everywhere-opensource-src-4.8.4.tar.gz
cd qt-everywhere-opensource-src-4.8.4
./configure -prefix <installation-directory>/Qt-4.8.4-64 -platform linux-g++-64 -opensource \
-release -shared -fast -qtlibinfix CmpDbg -no-largefile -no-exceptions \
-no-accessibility -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend \
-no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script \
-no-scripttools -no-declarative -no-declarative-debug -no-mmx -no-3dnow -no-sse \
-no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-neon -no-nis -no-cups \
-no-pch -no-dbus -no-gtkstyle -no-opengl -no-openvg -no-xinerama \
-no-xsync -no-xcursor -no-xfixes -no-xrandr
Answer "yes" to the question about accepting the license. When the configure is complete continue with the following commands.
make
make install
cd to <installation-directory>/Qt-4.8.4-64/bin
, create a file named qt.conf and add following content to it.
[Paths]
Prefix=..
Headers=include
Libraries=lib
Zookeeper
You may see the following errors from make check that can be ignored:
[All tests passed successfully...]
Elapsed Time: 00:00:12.126
make[2]: Leaving directory `/home/centos/icu/source/test/cintltst'
---------------
ALL TESTS SUMMARY:
ok: testdata iotest cintltst
===== ERRS: intltest
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/home/centos/icu/source/test'
make: *** [check-recursive] Error 2
Zookeeper
Trafodion has been built and tested with version 3.4.5. Download a recent stable version of Zookeeper from https://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz.ZooKeeper is a coordination service for distributed applications. It exposes common services - such as naming, configuration management, synchronization, and group services. Download a recent stable version of Zookeeper fromhttp://zookeeper.apache.org/releases.html. Trafodion has been tested with version 3.4.5
tar -xzf zookeeper-3.4.5.tar.gz cd zookeeper-3.4.5/src/c ./configure --prefix=<installation-<tool installation directory>/zookeeper-3.4.5 make make install
...
Thrift is a communication and data serialization tool. Download source from http://archive.apache.org/dist/thrift/0.9.0/. Behind a firewall, you may need the ant flags to specify a proxy.
<TDB Thrift is no longer required but the build infrastructure still checks for it - write a JIRA to remove this dependency>
tar -xzf thrift-0.9.0.tar.gz cd thrift-0.9.0 ./configure --prefix=<installation-<tool installation dir>/thrift-0.9.0 --without-qt \ ANT_FLAGS='-Dproxy.enabled=1 -Dproxy.host=<server> -Dproxy.port=<port>' make make install
Maven
Maven is a build automation tool. Visit http://maven.apache.org/download.html for instructions for downloading and installing Maven. Trafodion has been built and tested with version 3.0.5.