Skip to content
pwehrle edited this page Jul 8, 2014 · 2 revisions

On Ubuntu or Debian Linux

Install requirements

OS: Ubuntu 12.04 LTS or Debian Wheezy 7.0

C/C++ compiler: gcc version >=4.6 with C++11 options

Java 7 compiler: openjdk java-7 JDK

Maven: v3.0.4 or more

For C++, the recommended versions for building are: autoconf >= 2.69, automake >= 1.14, libtool >= 2.6, pkg-config >= 0.26, GCC >= 4.8

CPU: 4 core or more

RAM: 8 Go or more

Utilities: uuid, open-iscsi, open-iscsi-utils, nbd-client

NBD tests: you need to have a kernel version >=3.7 to test the command 'flush'.

Recommended package: xfsprogs (to use xfs on the data storage partitions)

Network configuration: need to open two consecutive ports for exchanging between nodes

Package for cinder install: unzip, python(>=2.7.3), curl

Build and create assembly

Prerequisite tools must be built first by executing the following in directory tools/:

./install

The first time, the project must be built completely by going to the root directory and executing:

mvn -DskipTests -DskipNarTests -DskipNarJniTests -PskipNarTestsCompile clean install

This will not execute the tests and produce a vost assembly. To execute unit tests, remove the skip properties (see Unit tests for more information)

mvn clean install

After a complete build, each module can be built separately by going to the modules directory and executing the same commands. To produce a different assembly, go to the directory main/assembly.

To create the vost assembly:

mvn install 

To create the cinost assembly:

mvn -Pcinost install 

To create the vostwui assembly:

mvn -Pvostwui install

To create the cinostwui assembly:

mvn -Pcinostwui install

On other Linux distributions

Building on Centos 6.5

Install requirements

Install needed tools:

yum clean all

yum install uuid libuuid-devel dosfstools.x86_64 xfsprogs.x86_64

yum install java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-devel.x86_64

yum install pkg-config glib2-devel.x86_64 compat-glibc.x86_64 compat-glibc-headers.x86_64

yum groupinstall "Development tools"

wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -O /etc/yum.repos.d/devtools-1.1.repo

yum install devtoolset-1.1

Now enable gcc 4.7 with:

scl enable devtoolset-1.1 bash

To install maven from source see http://maven.apache.org/ for instructions.

Update autotools from source, for example:

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

tar -zxvf autoconf-2.69.tar.gz

cd autoconf-2.69

./configure && make install

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

tar -zxvf automake-1.14.tar.gz

cd automake-1.14

./configure && make install

wget http://mirror.ibcp.fr/pub/gnu/libtool/libtool-2.4.2.tar.gz

tar -zxvf libtool-2.4.2.tar.gz

cd libtool-2.4.2

./configure && make install

wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz

tar -zxvf pkg-config-0.28.tar.gz

cd pkg-config-0.28

./configure && make install

Build and create assembly

If not already done enable gcc 4.7 for the user that will compile the sources:

scl enable devtoolset-1.1 bash

Use the following command line to produce an assembly:

mvn -DskipTests -DskipNarTests -DskipNarJniTests -PskipNarTestsCompile clean install

Building on Fedora 20

Install requirements

yum install maven
yum install libtool.x86_64

yum install gcc-c++.x86_64
yum install uuid libuuid-devel

Build and create assembly

Use the following command line to produce an assembly:

mvn -DskipTests -DskipNarTests -DskipNarJniTests -PskipNarTestsCompile clean install

Why skip unit tests?

We skip unit tests in the above instructions to reduce the duration of the build.

Clone this wiki locally