Создание MariaDB на CentOS
В случае использования Linux-основанной операционной системы CentOS или её производных, вы можете выборочно скомпилировать MariaDB из исходного кода. Это полезно в тех случаях, когда вы хотите использовать более новую версию, чем та, которая доступна в официальных репозиториях, или когда вам нужно включить определённые функции, недоступные другими способами.
Установка зависимостей для компиляции MariaDB 5.5
Прежде чем начать компиляцию MariaDB, необходимо установить зависимости, необходимые для компиляции. CentOS предоставляет инструмент для установки зависимостей. Утилита yum-builddep считывает пакет и генерирует список пакетов, необходимых для сборки из исходного кода, а затем вызывает YUM для их установки. В случае, если эта утилита недоступна в вашей системе, её можно установить через пакет yum-utils. После этого установите зависимости для компиляции MariaDB.
yum install yum-utils yum-builddep mariadb-server
Выполнение вышеуказанной команды устанавливает многие зависимости для компиляции, но не все из них. Будут установлены только зависимости для MariaDB 5.5, чего недостаточно для компиляции более новой версии MariaDB!
Установка зависимостей для более новых версий MariaDB
Следующие команды устанавливают все пакеты, необходимые для получения и компиляции MariaDB 10.11:
yum install git yum install gcc yum install gcc-c++ yum install tar make cmake yum install bison yum install ncurses-devel yum install openssl openssl-devel yum install snappy snappy-devel yum install valgrind yum install libcurl-devel yum install gzip yum install zlib-devel yum install lz4-devel yum install lzo-devel yum install bzip2-devel yum install libxml2-devel yum install libevent-devel yum install libaio-devel yum install boost yum install pcre2-devel yum install systemd-devel yum install rpm-build yum install libaio-devel yum install zstd yum install pam-devel yum install checkpolicy yum install policycoreutils-python yum install galera.x86_64
Вы можете заменить openssl на gnutls выше, в зависимости от того, какую реализацию TLS вы хотите использовать.
Если вы планируете использовать скрипты BUILD для упрощения сборки различных конфигураций MariaDB, то также следует установить ccache для ускорения компиляции:
yum install ccache
Если вы хотите протестировать установку MariaDB с использованием системы mysql-test-run (mtr), вам также нужно установить и настроить cpan:
yum install cpan # Complete Perl installing with the next command. Use the default answer to all questions cpan App::cpanminus
Дополнительную информацию о зависимостях см. в разделе Настройка среды разработки для Linux.
Компиляция MariaDB
После установки основных зависимостей можно получить исходный код и начать компиляцию MariaDB. Исходный код доступен на GitHub. Используйте опцию --branch для указания конкретной версии MariaDB, которую вы хотите скомпилировать.
$ git clone --branch 10.11 https://github.com/MariaDB/server.git
После клонирования репозитория исходного кода на вашу систему, можно начать компиляцию MariaDB. Используйте CMake для подготовки MariaDB к сборке:
$ cmake -DRPM=centos7 server/
После того, как CMake подготовит соответствующий Makefile для вашей системы, используйте Make для сборки MariaDB.
$ umask 0022 $ make package
Это генерирует файл RPM, который можно установить на вашу систему или скопировать для установки на другие хосты CentOS. Указание umask необходимо из-за ошибки в скриптах cmake.
Альтернативно, используйте один из скриптов сборки в каталоге BUILD, который позволяет скомпилировать различные версии MariaDB (отладка, оптимизированная, профилирование и т.д.).
Хороший вариант для разработчиков:
./BUILD/compile-pentium64-debug
Создание пакета MariaDB-compat
Пакет MariaDB-compat содержит библиотеки из более ранних релизов MariaDB. Их нельзя скомпилировать из текущей структуры исходного кода, поэтому cpack создает их, переупаковывая старые пакеты MariaDB-shared. Если вам нужен пакет -compat, вам нужно загрузить пакеты rpm MariaDB-shared-5.3 и MariaDB-shared-10.1 для вашей архитектуры (любая малая версия подойдет) и поместить их на один уровень выше дерева исходного кода, который вы собираете. CMake обнаружит их и создаст пакет MariaDB-compat. CMake сообщает об этом как
$ ls ../*.rpm ../MariaDB-shared-10.1.17-centos7-x86_64.rpm ../MariaDB-shared-5.3.12-122.el5.x86_64.rpm $ cmake -DRPM=centos7 . ... Using ../MariaDB-shared-5.3.12-122.el5.x86_64.rpm to build MariaDB-compat Using ../MariaDB-shared-10.1.17-centos7-x86_64.rpm to build MariaDB-compat
Дополнительные зависимости
В случае пропущенных пакетов при установке зависимостей для компиляции, CMake может продолжать выдавать ошибки после установки необходимых пакетов. Если это произойдет, удалите кэш CMake и повторите команду:
$ rm CMakeCache.txt
При повторном выполнении тестов CMake он должен найти необходимые пакеты вместо того, чтобы кэш сообщал о их отсутствии.
Дополнительная информация о CMake и CPackRPM
См. также Сборка RPM пакетов из исходного кода
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/source-building-mariadb-on-centos/