-
Operating system
- Ubuntu 18.04 or higher
- CentOS 7
Note: If your Linux operating system does not meet the requirements, we recommend that you pull a Docker image of Ubuntu 18.04 or CentOS 7 as your compilation environment.
-
GCC 7.0 or higher to support C++ 17
-
CMake 3.12 or higher
-
Git
For GPU-enabled version, you will also need:
- CUDA 10.0 or higher
- NVIDIA driver 418 or higher
$ cd [Milvus root path]/core
$ ./ubuntu_build_deps.sh
$ cd [Milvus root path]/core
$ ./centos7_build_deps.sh
$ cd [Milvus root path]/core
$ ./build.sh -t Debug
or
$ ./build.sh -t Release
By default, it will build CPU-only version. To build GPU version, add -g
option.
$ ./build.sh -g
If you want to know the complete build options, run the following command.
$./build.sh -h
When the build is completed, everything that you need in order to run Milvus will be installed under [Milvus root path]/core/milvus
.
$ cd [Milvus root path]/core/milvus
Add lib/
directory to LD_LIBRARY_PATH
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[Milvus root path]/core/milvus/lib
Then start Milvus server:
$ cd scripts
$ ./start_server.sh
To stop Milvus server, run:
$ ./stop_server.sh
With the following Docker images, you should be able to compile Milvus on any Linux platform that runs Docker. To build a GPU supported Milvus, you need to install NVIDIA Docker first.
Pull CPU-only image:
$ docker pull milvusdb/milvus-cpu-build-env:latest
Pull GPU-enabled image:
$ docker pull milvusdb/milvus-gpu-build-env:latest
Start a CPU-only container:
$ docker run -it -p 19530:19530 -d milvusdb/milvus-cpu-build-env:latest
Start a GPU container:
$ docker run --runtime=nvidia -it -p 19530:19530 -d milvusdb/milvus-gpu-build-env:latest
To enter the container:
$ docker exec -it [container_id] bash
Download latest Milvus source code:
$ cd /home
$ git clone https://github.com/milvus-io/milvus
To enter its core directory:
$ cd ./milvus/core
If you are using a CPU-only image, compile it like this:
$ ./build.sh -t Release
If you are using a GPU-enabled image, you need to add a -g
parameter:
$ ./build.sh -g -t Release
Then start Milvus server:
$ ./start_server.sh
Follow the steps below to solve this problem:
-
Make sure you have
libcurl4-openssl-dev
installed in your system. -
Try reinstalling the latest CMake from source with
--system-curl
option:$ ./bootstrap --system-curl $ make $ sudo make install
If the
--system-curl
command doesn't work, you can also reinstall CMake in Ubuntu Software on your local computer.
Try increasing the memory allocated to Docker. If this doesn't work, you can reduce the number of threads in CMake build in [Milvus root path]/core/build.sh
.
make -j 8 install || exit 1 # The default number of threads is 8.
Note: You might also need to configure CMake build for faiss in [Milvus root path]/core/src/index/thirdparty/faiss
.
Follow the steps below to solve this problem:
- Check whether
libmysqlpp.so.3
is correctly installed. - If
libmysqlpp.so.3
is installed, check whether it is added toLD_LIBRARY_PATH
.
Follow the steps below to install a supported version of CMake:
-
Remove the unsupported version of CMake.
-
Get CMake 3.12 or higher. Here we get CMake 3.12.
$ wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz
-
Extract the file and install CMake.
$ tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz $ mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2 $ ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/