Вопрос или проблема
Я пытаюсь настроить и собрать Milvus для распределенного использования на моей системе Apple M3 с 16 ГБ оперативной памяти. Я хочу создать пользовательский образ Milvus и использовать milvus-operator для запуска системы. Однако я не уверен, нужно ли мне изменять milvus-operator из-за его связи с официальным репозиторием Docker.
Следуя инструкциям в milvus/DEVELOPMENT.md
, я столкнулся с проблемами во время процесса сборки. Вот мои шаги:
- Сборка 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
- Сборка 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
не удалась. Причины могут быть разные, но часто это связано с несовместимостью версий или отсутствием необходимых библиотек.
- Убедитесь, что у вас установлены все необходимые версии инструментов и библиотек, совместимые с вашими библиотеками.
- Попробуйте обновить сам Docker и Docker Compose до последних стабильных версий.
- Проверьте конфигурацию
CMake
. Возможно, вам придется добавить флаги, которые подойдут для архитектуры M3.
Шаг 3: Вторая ошибка при сборке в локальной среде
Ошибка, связанная с unknown type name 'AuthorizationRef'
, может говорить о том, что в коде отсутствуют необходимые объявления, или же ваш компилятор не может их найти.
- Убедитесь, что используемый компилятор поддерживает все необходимые функции. Возможно, вам необходимо использовать
clang
, который обычно предустановлен на macOS. - Проверьте наличие всех заголовочных файлов. Ошибка может происходить из-за отсутствия библиотек, зависимых от macOS (например,
CoreFoundation
).
Шаг 4: Настройка milvus-operator
Если вы хотите создать собственный образ Milvus и использовать milvus-operator
, вам не обязательно модифицировать milvus-operator
, если ваш образ собирается корректно и работает с теми же параметрами конфигурации, что и официальный. Однако, необходимо тщательно следить, чтобы версия вашего Milvus соответствовала версии milvus-operator
.
Рекомендации
- Ознакомьтесь с документацией Milvus и разделом
DISK
на GitHub для актуальной информации о совместимости и зависимостях. - Посмотрите обсуждения в сообществе или на GitHub, например, это обсуждение, где другие пользователи могли столкнуться с подобными проблемами.
Если проблемы продолжат возникать, предоставьте больше информации об конфигурации вашей системы и используемых версиях зависимостей, это поможет более точно определить проблему.