blob: 85ff0c2c3f3398dfc2009f77999d99e768525b1b [file] [log] [blame]
***************
Building Bigtop
***************
Build Requirements:
===================
* A stock image of a Linux Distribution, supported are
- Debian 8
- Centos 6,7
- Ubuntu 14.04 LTS
- SLES 11 SP3
- Fedora 20
- openSuSE 13.1
* A fast Internet Connection, since compile process will download a lot
* Recommended is to install dependencies via puppet.
Either
- Read bigtop_toolchain/README.md
or
- install puppet and run
puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::installer"
Building
========
For Debian, Ubuntu Bigtop supports the deb packaging format and apt repositories
For Centos, Fedora Bigtop supports rpm packaging and yum repositories
For openSuSE, SLES Bigtop supports rpm packaging but zypper seems not supported.
Bigtop consists of many packages which should be compiled in order:
See bigtop.mk for the list of packages and names.
For doing a full recompile do a
gradle deb
or
gradle rpm
depending on Linux distribution.
If you want to create a repository
gradle apt
or
gradle yum
Build results are in
output/<names>
The $(HOME)/.m2 will contain several GB of downloads afterwards as collateral damage.
Each package will have a "-1" release part by default.
Create updated Packages
=======================
In order to create releases where one can update machines (for
instance in production) it is advisable to increase the release part for every rebuild.
This can be done by using the BIGTOP_BUILD_STAMP to set the release part of the version of every package.
For instance by default a package hadoop-2.4.1-1.deb will be created. If you need to fix this package and recompile it run:
BIGTOP_BUILD_STAMP="2" gradle hadoop-apt
This updates the package to hadoop-2.4.1-2.deb in repository, removing the old one.
Please do not use a hyphen "-" in the BIGTOP_BUILD_STAMP breaking the
algorithms apt and yum are using for calculating dependencies.
Integration into a CI system: jenkins
=====================================
A nightly build job can be created with
gradle clean
BIGTOP_BUILD_STAMP="nightly-${BUILD_NUMBER}" gradle apt|yum
For more background information on BIGTOP_BUILD_STAMP see ticket BIGTOP-1580.
Using a different JVM
=====================
By default, bigtop is compiled with a JDK version 8. If you want to change it,
for example to use JDK version 7, you just have to define the variable
BIGTOP_JDK:
BIGTOP_JDK=7; export BIGTOP_JDK
./gradlew deb
Note on LC_ALL/LANG
===================
Compilation may fail if your locale is not in english. You might for example
see some strange errors with dpkg-buildpackage. In that case, you should reset
the language variables before compiling:
LC_ALL=C; export LC_ALL
LANG=C; export LANG
./gradlew deb