Создание Milvus на Mac M3: Ошибки, возникшие при настройке дистрибутива

Вопрос или проблема

Я пытаюсь настроить и собрать Milvus для распределенного использования на моей системе Apple M3 с 16 ГБ оперативной памяти. Я хочу создать пользовательский образ Milvus и использовать milvus-operator для запуска системы. Однако я не уверен, нужно ли мне изменять milvus-operator из-за его связи с официальным репозиторием Docker.

Следуя инструкциям в milvus/DEVELOPMENT.md, я столкнулся с проблемами во время процесса сборки. Вот мои шаги:

  1. Сборка Milvus с помощью Docker:
    • ./scripts/devcontainer.sh up
    • docker exec -ti milvus_builder_1 bash
    • make milvus

Это привело к следующей ошибке:

CMake Error: Generator: execution of make failed. Make command was: /usr/bin/gmake -f Makefile
CMake Error at /usr/local/share/cmake-3.27/Modules/FetchContent.cmake:1662 (message):
  Build step for knowhere failed: 1
  1. Сборка Milvus в локальной среде OS/оболочке:
    • ./scripts/install_deps.sh
    • make

Это привело к другой ошибке:

error: unknown type name 'AuthorizationRef'

Не могли бы вы помочь мне решить эти проблемы со сборкой?

Убедитесь, что conan и все необходимые компоненты установлены.

https://github.com/milvus-io/milvus/discussions/35614

Mac иногда капризен в отношении некоторых инструментов сборки.

Ответ или решение

Для решения ваших проблем, связанных со сборкой Milvus на системе Apple M3, давайте рассмотрим пошагово возможные причины ошибок и способы их устранения.

Шаг 1: Проверка зависимостей

Прежде всего, убедитесь, что у вас установлены все необходимые зависимости. Вам потребуется установить conan, а также другие инструменты, возможно, такие как CMake, make, и компиляторы. Используйте следующую команду для установки зависимостей:

./scripts/install_deps.sh

Если у вас еще нет conan, вы можете установить его с помощью pip:

pip install conan

Шаг 2: Первая ошибка при сборке через Docker

Ошибка при использовании docker exec указывает на то, что сборка компонента knowhere не удалась. Причины могут быть разные, но часто это связано с несовместимостью версий или отсутствием необходимых библиотек.

  1. Убедитесь, что у вас установлены все необходимые версии инструментов и библиотек, совместимые с вашими библиотеками.
  2. Попробуйте обновить сам Docker и Docker Compose до последних стабильных версий.
  3. Проверьте конфигурацию CMake. Возможно, вам придется добавить флаги, которые подойдут для архитектуры M3.

Шаг 3: Вторая ошибка при сборке в локальной среде

Ошибка, связанная с unknown type name 'AuthorizationRef', может говорить о том, что в коде отсутствуют необходимые объявления, или же ваш компилятор не может их найти.

  1. Убедитесь, что используемый компилятор поддерживает все необходимые функции. Возможно, вам необходимо использовать clang, который обычно предустановлен на macOS.
  2. Проверьте наличие всех заголовочных файлов. Ошибка может происходить из-за отсутствия библиотек, зависимых от macOS (например, CoreFoundation).

Шаг 4: Настройка milvus-operator

Если вы хотите создать собственный образ Milvus и использовать milvus-operator, вам не обязательно модифицировать milvus-operator, если ваш образ собирается корректно и работает с теми же параметрами конфигурации, что и официальный. Однако, необходимо тщательно следить, чтобы версия вашего Milvus соответствовала версии milvus-operator.

Рекомендации

  1. Ознакомьтесь с документацией Milvus и разделом DISK на GitHub для актуальной информации о совместимости и зависимостях.
  2. Посмотрите обсуждения в сообществе или на GitHub, например, это обсуждение, где другие пользователи могли столкнуться с подобными проблемами.

Если проблемы продолжат возникать, предоставьте больше информации об конфигурации вашей системы и используемых версиях зависимостей, это поможет более точно определить проблему.

Оцените материал
Добавить комментарий

Капча загружается...