Ошибка при сборке исходного кода

Добрый вечер!
Имеется сборочный сервер с ОС: CentOS Linux release 7.7.1908 (Core)
Возникает ошибка на этапе сборки.
Команда: /opt/cmake/bin/cmake -DPACK=1 -DISTR=rhel7 -DWITH_GALERA=0 -DWITH_STEMMER=0 …
Ссылка на лог-файл: https://drive.google.com/file/d/1vxkt9KPSP221mZIN1hbt4xvcSF4asrg0/view?usp=share_link
Собственно ошибка: – Could NOT find GTest (missing: GTest_DIR)
Примечание: gtest установлен:
gtest.x86_64 1.6.0-2.el7 @epel
gtest-devel.x86_64 1.6.0-2.el7 @epel

Мы рекомендуем использовать наш сборочный докер, который умеет собирать пакеты для всех поддерживаемых ОС. Там уже есть всё нужное.

К сожалению, у меня нет опыта использования Docker. Прошу помочь с текущей проблемой.

В Docker тоже проблема:

  1. Нет установленного cmake
  2. Отсутствует исходный код

Покажите, пожалуйста, полный вывод, начиная с docker build.

docker build не выполнял. Выполнял шаги по согласно инструкции: Manticore Search Manual: Installation > Compiling from sources

Может всё-таки попробуем разобраться с проблемой со сборкой в мануальном режиме?

Так там написано <docker image>. Что вы в качестве этого использовали?

Также перед этим там написано:

You can build the image using Dockerfile and README. That is the easiest way to make binaries for any supported operating system and architecture. Once you build the image whe you run the container from it you need to specify 3 environment variables:

И лучше смотреть на обновлённую версию этой страницы Manticore Search Manual: Installation > Compiling from sources (эту ссылку я давал изначально)

Может всё-таки попробуем разобраться с проблемой со сборкой в мануальном режиме?

Для этого по сути нужно понять как работает сборочный докер и все шаги из него или из “сисрутов”, которые он использует повторить в вашей ОС, чтоб она по сути стала тем же, чем является сборочный докер. Можете это всё изучить, всё находится на гитхабе тут manticoresearch/dist/build_dockers/cross at master · manticoresoftware/manticoresearch · GitHub

Сходу почему у вас не находится gtest я предположить не могу.

вы можете поискать по cmake или в интеренете какие ключи cmake отключают GTest

а чем вас готовые пакеты не устраивают?

Искал, не нашёл. Готовые имеете ввиду установленный gtest?

готовые пакеты я имею ввиду собранные нашим CI и появляющиеся на каждый комит в dev repo

Ответ тут

Какая информация требуется от меня?

Просто прочитайте Manticore Search Manual: Installation > Compiling from sources внимательно, сделайте по инструкции и всё получится. Я на прошлой неделе пробовал (когда собственно и обновил инструкцию)

Выполнил следующие шаги:

  1. Собрал образ:
    docker build -t egorovaa/manticore:5.0.3 .
    Примечание: использовал DockerFile из исходного кода версии 5.0.3
  2. Запустил контейнер
    docker run -it --rm -e SYSROOT_URL=Index of /repository/sysroots/ -e arch=x86_64 -e DISTR=rhel7 -v /egorovaa/manticore:/5.0.3 0534f858dd4f bash
  3. Загрузил исходный код версии 5.0.3 в контейнер: https://github.com/manticoresoftware/manticoresearch/archive/refs/tags/5.0.3.tar.gz
    Получил ошибку при сборке (ссылка на лог-файл в теме)
    Подскажите, пожалуйста, что выполнил не так.

Можно полный вывод, пожалуйста, начиная с docker build?

Файл docker_build.log.
Ссылка на директорию с логами: manticore – Google Drive
Примечание: данный лог создан при повторном запуске сборку образа. Напишите, пожалуйста, если потребуется лог без существующего образа (с нуля)

Дело вот в чём: не стоило игнорировать вот эту строку инструкции:

Она весьма важная, т.к. вы бы тогда проанализировали ямлик и обнаружили, что сейчас официальные пакеты собираются с env vars

  variables:
    CACHEB: "../cache"
    arch: x86_64
    boost: boost_nov22
    sysroot: roots_nov22

Тогда собирается. Вот полный вывод:

➜  external_toolchain git:(master) pwd
/Users/sn/manticore_github/dist/build_dockers/cross/external_toolchain

# /Users/sn/manticore_github is git clone from https://github.com/manticoresoftware/manticoresearch

➜  external_toolchain git:(master) docker build .
[+] Building 117.4s (10/10) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                              0.0s
 => => transferring dockerfile: 2.70kB                                                                                                                                            0.0s
 => [internal] load .dockerignore                                                                                                                                                 0.0s
 => => transferring context: 2B                                                                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/ubuntu:focal                                                                                                                   2.7s
 => [internal] load build context                                                                                                                                                 0.0s
 => => transferring context: 1.34kB                                                                                                                                               0.0s
 => CACHED [1/5] FROM docker.io/library/ubuntu:focal@sha256:0e0402cd13f68137edb0266e1d2c682f217814420f2d43d300ed8f65479b14fb                                                      0.0s
 => [2/5] RUN apt-get update && apt-get install -y     make     ninja-build     git     bison     flex     wget     software-properties-common     rpm     elfutils     nsis    100.9s
 => [3/5] RUN cd / && wget https://github.com/Kitware/CMake/releases/download/v3.24.3/cmake-3.24.3-linux-$(uname -m).tar.gz && tar -zxf cmake-3.24.3-linux-$(uname -m).tar.gz &  10.6s
 => [4/5] RUN git config --global --add safe.directory '*'                                                                                                                        0.2s
 => [5/5] ADD entry_point.sh /sysroot/root/                                                                                                                                       0.0s
 => exporting to image                                                                                                                                                            2.9s
 => => exporting layers                                                                                                                                                           2.9s
 => => writing image sha256:b5648dbb9b0d8855659f4aca52e929580e93245695420f3714129d4ae24d515f                                                                                      0.0s

➜  external_toolchain git:(master) docker run -it --rm -e SYSROOT_URL=https://repo.manticoresearch.com/repository/sysroots \
-e arch=x86_64 \
-e DISTR=rhel7 \
-e boost=boost_nov22 \
-e sysroot=roots_nov22 \
-v $(pwd)/../../../../:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
b5648dbb9b0d8855659f4aca52e929580e93245695420f3714129d4ae24d515f bash

Arch is x86_64
Distr is rhel7
Sysroot URL is https://repo.manticoresearch.com/repository/sysroots (configured most probably in gitlab variable)
Will use Boost from dir boost_nov22 on the server; may be set to 'none', or other value with boost=XYZ clause
Will use sysroot from dir roots_nov22 on the server; may be set to other value with sysroot=XYZ clause
Fetching boost headers...
Unpacking boost headers...
Fetching boost...
Unpacking boost...
Fetching sysroot...
Unpacking sysroot...
Preparing boost and sysroot done
root@5dcb4eb4811b:/sysroot/root [llvm-15 rhel7 x86_64]$ cd /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/
root@5dcb4eb4811b:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [llvm-15 rhel7 x86_64]$ cd build
root@5dcb4eb4811b:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build [llvm-15 rhel7 x86_64]$ rm -fr *
root@5dcb4eb4811b:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build [llvm-15 rhel7 x86_64]$ cmake -DPACK=1 ..
-- The C compiler identification is Clang 15.0.7
-- The CXX compiler identification is Clang 15.0.7
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/llvm-15/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
...
-- Available runtime features:
 * ZSTD, for compressed networking, <https://github.com/facebook/zstd>

-- Configuring done
-- Generating done
-- Build files have been written to: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build
root@5dcb4eb4811b:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build [llvm-15 rhel7 x86_64]$ cmake --build . --target package
...
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore-common.spec
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore-converter.spec
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore-devel.spec
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore-icudata.spec
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore.spec
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore-server-core.spec
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore-server.spec
CPackRPM: Will use GENERATED spec file: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/_CPack_Packages/Linux/RPM/SPECS/manticore-tools.spec
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-icudata.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-common-5.0.3_230111.9dcd3f47d-1.el7.centos.noarch.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-devel-5.0.3_230111.9dcd3f47d-1.el7.centos.noarch.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-converter-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-converter-debuginfo-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-server-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-server-core-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-server-core-debuginfo-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-tools-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
CPack: - package: /manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build/manticore-tools-debuginfo-5.0.3_230111.9dcd3f47d-1.el7.centos.x86_64.rpm generated.
root@5dcb4eb4811b:/manticore_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/build [llvm-15 rhel7 x86_64]$
1 Like

Запустил контейнер с дополнительными переменными: docker run -it --rm -e SYSROOT_URL=Index of /repository/sysroots/ -e CACHEB=“…/cache” -e arch=x86_64 -e DISTR=rhel7 -e boosboost=boost_nov22 -e sysroot=roots_nov22 -v /egorovaa/manticore:/5.0.3 0534f858dd4f bash
Проблема при создании rpm пакетов: cmake --build . --target package
Лог-файл: cmake_build.log

Тут ошибка: