Сборка из исходных файлов | Tarantool
Документация на русском языке
поддерживается сообществом
Contributing Содействие в разработке Сборка из исходных файлов

Сборка из исходных файлов

При загрузке исходных файлов и сборке Tarantool’а могут отличаться платформы и настройки, но в целом предпринимаются одинаковые действия.

  1. Найдите средства и библиотеки, которые будут нужны для сборки и тестирования.

    Абсолютно необходимы следующие:

    • Программа для скачивания репозиториев исходного кода.
      Для всех платформ это будет 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:

    Чтобы установить все необходимые зависимости, следуйте инструкциям для вашей ОС:

    • Если вы используете 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
    

    Это действие следует выполнить только один раз при первой загрузке.

  2. Используйте git, чтобы загрузить последний исходный код Tarantool’а из репозитория на GitHub tarantool/tarantool (ветка 1.10) в локальную директорию ~/tarantool, например:

    $ git clone --recursive https://github.com/tarantool/tarantool.git -b 1.10 ~/tarantool
    

    В редких случаях вложенные модули необходимо снова обновить с помощью команды:

    cd ~/tarantool
    $ git submodule update --init --recursive
    
  3. Используйте 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.

  4. Используйте make для завершения сборки.

    $ make
    

    Примечание

    В FreeBSD используйте вместо этого gmake.

    При этом создается исполняемый файл „tarantool“ в директории src/.

    Примечание

    Если на данном шаге вы сталкиваетесь с ошибками curl или OpenSSL, попробуйте установить пакет openssl111 версии 1.1.1d.

    Далее настоятельно рекомендуется выполнить команду make install для установки Tarantool’а в директорию /usr/local и поддержания порядка в системе. Однако, можно запустить исполняемый файл и без установки.

  1. Проведите тестирование.

    Это необязательное действие. Разработчики 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
    
  2. Создайте пакеты RPM и Debian.

    Это необязательное действие, которое следует выполнить только тем, кто хочет перераспределить Tarantool. Мы настоятельно рекомендуем использовать официальные пакеты с сайта tarantool.org. Однако, можно собрать пакеты RPM и Debian с помощью PackPack или путем использования средств dpkg-buildpackage или rpmbuild. Для получения более подробной информации обратитесь к документации по dpkg или rpmbuild.

  3. Проверьте установку Tarantool’а.

    $ # если tarantool установлен локально после сборки
    $ tarantool
    $ # - ИЛИ -
    $ # если tarantool не установлен локально после сборки
    $ ./src/tarantool
    

    Tarantool запустится в интерактивном режиме.

См. также:

Нашли ответ на свой вопрос?
Обратная связь