Сборка из исходных файлов
При загрузке исходных файлов и сборке Tarantool’а могут отличаться платформы и настройки, но в целом предпринимаются одинаковые действия.
Найдите средства и библиотеки, которые будут нужны для сборки и тестирования.
Абсолютно необходимы следующие:
Программа для скачивания репозиториев исходного кода.
Для всех платформ это будетgit
. Программа позволяет скачивать самый актуальный набор исходных файлов из репозитория Tarantool’а на GitHub.Компилятор C/C++.
Как правило, этоgcc
иg++
версии 4.6 или более новой. На Mac OS X этоClang
версии 3.2+.Программа для управления процессом сборки.
Для всех платформ это будетCMake
версии 2.8+.Средство автоматизации сборок.
На всех платформах это``GNU Make``.библиотека ReadLine любой версии
библиотека ncurses любой версии
библиотека OpenSSL версии 1.0.1+
библиотека ICU последней версии
библиотека Autoconf любой версии
библиотека Automake любой версии
библиотека Libtool любой версии
библиотека Zlib-devel любой версии
Python и его модули.
Интерпретатор для Python не нужен для сборки самого Tarantool’а, если вы не планируете проводить тестирование из шага 5. Для всех платформ это будетpython
версии 2.7+ (но не 3.x). Необходимы следующие модули Python:- pyyaml версии 3.10
- argparse версии 1.1
- msgpack-python версии 0.4.6
- gevent версии 1.1.2
- six версии 1.8.0
Чтобы установить все необходимые зависимости, следуйте инструкциям для вашей ОС:
Если вы используете Debian/Ubuntu, выполните команду:
$ apt install -y build-essential cmake make coreutils sed \ autoconf automake libtool zlib1g-dev \ libreadline-dev libncurses5-dev libssl-dev \ libunwind-dev libicu-dev \ python python-pip python-setuptools python-dev \ python-msgpack python-yaml python-argparse python-six python-gevent
Если вы используете RHEL/CentOS (версии 7 и ниже)/Fedora, выполните команду:
$ yum install -y gcc gcc-c++ cmake make coreutils sed \ autoconf automake libtool zlib-devel \ readline-devel ncurses-devel libyaml-devel openssl-devel \ libunwind-devel libicu-devel \ python python-pip python-setuptools python-devel \ python-msgpack python-yaml python-argparse python-six python-gevent
Если вы используете CentOS 8, выполните команды:
$ yum install epel-release $ curl -s https://packagecloud.io/install/repositories/packpack/backports/script.rpm.sh | sudo bash $ yum install -y gcc gcc-c++ cmake make coreutils sed \ autoconf automake libtool zlib-devel \ readline-devel ncurses-devel openssl-devel \ libunwind-devel libicu-devel \ python2 python2-pip python2-setuptools python2-devel \ python2-yaml python2-six
Если вы используете Mac OS X (команды для OS X El Capitan):
Если вы пользуетесь Homebrew в качестве менеджера пакетов, выполните команду:
$ brew install cmake autoconf binutils zlib \ autoconf automake libtool \ readline ncurses openssl libunwind-headers icu4c \ && pip install python-daemon \ msgpack-python pyyaml configargparse six gevent
Примечание
Таким образом невозможно установить пакет zlib-devel.
Либо загрузите стандартный пакет Xcode для разработки:
$ xcode-select --install $ xcode-select -switch /Applications/Xcode.app/Contents/Developer
Если вы используете FreeBSD (дальнейшие инструкции работают для FreeBSD 10.1+), выполните команду:
$ pkg install -y sudo git cmake gmake gcc coreutils \ autoconf automake libtool \ readline ncurses openssl libunwind icu \ python27 py27-pip py27-setuptools py27-daemon \ py27-msgpack py27-yaml py27-argparse py27-six py27-gevent
Если некоторые модули Python недоступны в репозитории, лучше всего произвести настройку модулей, скачав пакет в формате TAR и выполнив установку с помощью
python setup.py
следующим образом:$ # На некоторых машинах может потребоваться такая начальная команда: $ wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python $ # Модуль Python для анализа YAML (pyYAML) для набора тестов: $ # (Если wget не работает, проверьте на сайте http://pyyaml.org/wiki/PyYAML $ # актуальность версии.) $ cd ~ $ wget http://pyyaml.org/download/pyyaml/PyYAML-3.10.tar.gz $ tar -xzf PyYAML-3.10.tar.gz $ cd PyYAML-3.10 $ sudo python setup.py install
Наконец, используйте
pip
в Python, чтобы импортировать пакеты Python, которые могут быть неактуальны в репозиториях дистрибутивов. (В CentOS 7 будет необходимо сначала установитьpip
так:sudo yum install epel-release
, а затемsudo yum install python-pip
.)$ pip install -r \ https://raw.githubusercontent.com/tarantool/test-run/master/requirements.txt \ --user
Это действие следует выполнить только один раз при первой загрузке.
Используйте
git
, чтобы загрузить последний исходный код Tarantool’а из репозитория на GitHubtarantool/tarantool
(ветка 1.10) в локальную директорию~/tarantool
, например:$ git clone --recursive https://github.com/tarantool/tarantool.git -b 1.10 ~/tarantool
В редких случаях вложенные модули необходимо снова обновить с помощью команды:
cd ~/tarantool $ git submodule update --init --recursive
Используйте CMake, чтобы начать сборку.
$ cd ~/tarantool $ make clean # необязательно, добавлено на удачу $ rm CMakeCache.txt # необязательно, добавлено на удачу $ cmake . # начать с типом сборки = Debug (отладка)
На некоторых платформах может потребоваться указать версии C и C++, например:
$ CC=gcc-4.8 CXX=g++-4.8 cmake .
Чтобы указать тип сборки в CMake используется опция
-DCMAKE_BUILD_TYPE=type
, гдеtype
может быть:Debug
– отладка, используется эксплуатационным персоналом на проектеRelease
– релиз, используется только при необходимости высокой производительностиRelWithDebInfo
– используется для сборки в эксплуатации, также предоставляет возможности отладки
Чтобы указать в CMake, что результат будет распределен, используется опция
-DENABLE_DIST=ON
. При наличии такой опцииmake install
в дальнейшем установит файлыtarantoolctl
в дополнение к файламtarantool
.Используйте
make
для завершения сборки.$ make
Примечание
В FreeBSD используйте вместо этого
gmake
.При этом создается исполняемый файл „tarantool“ в директории
src/
.Примечание
Если на данном шаге вы сталкиваетесь с ошибками
curl
илиOpenSSL
, попробуйте установить пакетopenssl111
версии1.1.1d
.Далее настоятельно рекомендуется выполнить команду
make install
для установки Tarantool’а в директорию/usr/local
и поддержания порядка в системе. Однако, можно запустить исполняемый файл и без установки.
Проведите тестирование.
Это необязательное действие. Разработчики Tarantool’а всегда проводят тестирование до публикации новых версий. Следует проводить тестирование, если внесены изменения в код. Итак, после загрузки в
~/tarantool
основные действия:$ # создание поддиректории под названием `bin` $ mkdir ~/tarantool/bin $ # привязка Python к bin (могут потребовать права пользователя superuser) $ ln /usr/bin/python ~/tarantool/bin/python $ # переход в поддиректорию с тестами $ cd ~/tarantool/test $ # проведение тестирования с помощью Python $ PATH=~/tarantool/bin:$PATH ./test-run.py
Вывод должен включать в себя обнадеживающие результаты, например:
====================================================================== TEST RESULT ------------------------------------------------------------ box/bad_trigger.test.py [ pass ] box/call.test.py [ pass ] box/iproto.test.py [ pass ] box/xlog.test.py [ pass ] box/admin.test.lua [ pass ] box/auth_access.test.lua [ pass ] ... etc.
Во избежание путаницы очистите поддиректорию
bin
:$ rm ~/tarantool/bin/python $ rmdir ~/tarantool/bin
Создайте пакеты RPM и Debian.
Это необязательное действие, которое следует выполнить только тем, кто хочет перераспределить Tarantool. Мы настоятельно рекомендуем использовать официальные пакеты с сайта tarantool.org. Однако, можно собрать пакеты RPM и Debian с помощью PackPack или путем использования средств
dpkg-buildpackage
илиrpmbuild
. Для получения более подробной информации обратитесь к документации поdpkg
илиrpmbuild
.Проверьте установку Tarantool’а.
$ # если tarantool установлен локально после сборки $ tarantool $ # - ИЛИ - $ # если tarantool не установлен локально после сборки $ ./src/tarantool
Tarantool запустится в интерактивном режиме.
См. также: