Building to contribute
To build Tarantool from source files, you will need the following tools:
- Git
- GCC. Or Clang for Mac OS
- CMake 3.3+
- GNU Make
- 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 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 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 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 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
$ 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 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
Чтобы указать в CMake, что результат будет распределен, используется опция -DENABLE_DIST=ON
. При наличии такой опции make install
в дальнейшем установит файлы tarantoolctl
в дополнение к файлам tarantool
.
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.
$ # если tarantool установлен локально после сборки
$ tarantool
$ # - ИЛИ -
$ # если tarantool не установлен локально после сборки
$ ./src/tarantool
Tarantool запустится в интерактивном режиме.