Building to contribute
To build Tarantool from source files, you need the following tools:
- Git
- GCC. Or Clang for Mac OS
- CMake 3.3 or later
- GNU Make
- Autoconf, any version
- Automake, any version
- Libtool, any version
- Readline, any version
- ncurses, any version
- OpenSSL, any version
- ICU, any version
- Zlib-devel, any version
- Python3 and modules:
- pyyaml
- gevent
- six
To install all required dependencies, build Tarantool and run tests, choose your OS and follow the instructions:
Some additional steps might be useful:
- -DENABLE_DIST=ON for tarantoolctl installation
- Make RPM and Debian packages
- Verify your Tarantool installation
$ apt-get -y install git build-essential cmake autoconf automake libtool make \
zlib1g-dev libreadline-dev libncurses5-dev libssl-dev libunwind-dev libicu-dev \
python3 python3-yaml python3-six python3-gevent
$ git clone https://github.com/tarantool/tarantool.git --recursive
$ cd tarantool
$ git submodule update --init --recursive
$ make clean # unnecessary, added for good luck
$ rm CMakeCache.txt # unnecessary, added for good luck
$ mkdir build && cd build
$ # start initiating with build type=RelWithDebInfo
$ cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ make
$ make test
$ dnf install -y git gcc gcc-c++ cmake autoconf automake libtool make \
readline-devel ncurses-devel openssl-devel zlib-devel libunwind-devel libicu-devel \
python3-pyyaml python3-six python3-gevent
$ git clone https://github.com/tarantool/tarantool.git --recursive
$ cd tarantool
$ git submodule update --init --recursive
$ make clean # unnecessary, added for good luck
$ rm CMakeCache.txt # unnecessary, added for good luck
$ mkdir build && cd build
$ # start initiating with build type=RelWithDebInfo
$ cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ make
$ make test
$ yum install -y python-pip
$ yum install -y epel-release
$ curl -s https://packagecloud.io/install/repositories/packpack/backports/script.rpm.sh | bash
$ yum install -y git gcc cmake3 autoconf automake libtool make gcc-c++ zlib-devel \
readline-devel ncurses-devel openssl-devel libunwind-devel libicu-devel \
python3-pyyaml python3-six python3-gevent
$ git clone https://github.com/tarantool/tarantool.git --recursive
$ cd tarantool
$ git submodule update --init --recursive
$ make clean # unnecessary, added for good luck
$ rm CMakeCache.txt # unnecessary, added for good luck
$ mkdir build && cd build
$ # start initiating with build type=RelWithDebInfo
$ cmake3 .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ make
$ make test
$ dnf install -y epel-release
$ dnf install -y git gcc cmake3 autoconf automake libtool libarchive make gcc-c++ \
zlib-devel readline-devel ncurses-devel openssl-devel libunwind-devel libicu-devel \
python3-pyyaml python3-six python3-gevent
$ git clone https://github.com/tarantool/tarantool.git --recursive
$ cd tarantool
$ git submodule update --init --recursive
$ make clean # unnecessary, added for good luck
$ rm CMakeCache.txt # unnecessary, added for good luck
$ mkdir build && cd build
$ # start initiating with build type=RelWithDebInfo
$ cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ make
$ make test
This instruction is for those who use Homebrew. Refer to the full instruction for Mac OS if you use MacPorts.
$ xcode-select --install
$ xcode-select -switch /Applications/Xcode.app/Contents/Developer
$ git clone https://github.com/tarantool/tarantool.git --recursive
$ cd tarantool
$ git submodule update --init --recursive
$ brew install git openssl readline curl icu4c libiconv zlib cmake autoconf automake libtool
$ pip install --user -r test-run/requirements.txt
$ make clean # unnecessary, added for good luck
$ rm CMakeCache.txt # unnecessary, added for good luck
$ mkdir build && cd build
$ # start initiating with build type=RelWithDebInfo
$ cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ make
$ make test
$ git clone https://github.com/tarantool/tarantool.git --recursive
$ cd tarantool
$ git submodule update --init --recursive
$ pkg install -y git cmake autoconf automake libtool gmake readline icu
$ pip install --user -r test-run/requirements.txt
$ make clean # unnecessary, added for good luck
$ rm CMakeCache.txt # unnecessary, added for good luck
$ mkdir build && cd build
$ # start initiating with build type=RelWithDebInfo
$ cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ gmake
$ gmake test
Important
tarantoolctl
is deprecated in favor of tt CLI.
Find the instructions on switching from tarantoolctl
to tt
in
Migration from tarantoolctl to tt.
The CMake option for hinting that the result will be distributed is
-DENABLE_DIST=ON
. With this option, make install
installs tarantoolctl
files in addition to tarantool
files.
This step is optional. It’s only for people who want to redistribute Tarantool. We highly recommend to use official packages from the tarantool.org web-site. However, you can build RPM and Debian packages using PackPack. Consult Build RPM or Deb package using packpack for details.
$ # if you installed tarantool locally after build
$ tarantool
$ # - OR -
$ # if you didn't install tarantool locally after build
$ ./src/tarantool
This starts Tarantool in the interactive mode.