-
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.14 or higher
-
Git
For GPU-enabled version, you will also need:
-
CUDA 10.x (10.0, 10.1, 10.2)
-
NVIDIA driver 418 or higher
Download Milvus source code, change directory and specify version (for example, 0.10.3):
$ git clone https://github.com/milvus-io/milvus
$ cd ./milvus/core
$ git checkout 0.10.3
$ ./ubuntu_build_deps.sh
$ ./centos7_build_deps.sh
If you want to use CPU-only:
run build.sh
:
$ ./build.sh -t Release
If you want to use GPU-enabled:
- Add cuda library path to
LD_LIBRARY_PATH
:
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
- Add cuda binary path to
PATH
:
$ export PATH=/usr/local/cuda/bin:$PATH
- Add a
-g
parameter to runbuild.sh
:
$ ./build.sh -g -t Release
When the build completes, everything that you need to run Milvus is 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:v0.7.0-ubuntu18.04
Pull GPU-enabled image:
$ docker pull milvusdb/milvus-gpu-build-env:v0.7.0-ubuntu18.04
Pull CPU-only image:
$ docker pull milvusdb/milvus-cpu-build-env:v0.7.0-centos7
Pull GPU-enabled image:
$ docker pull milvusdb/milvus-gpu-build-env:v0.7.0-centos7
Start a CPU-only container:
$ docker run -it -p 19530:19530 -d <milvus_cpu_docker_image>
Start a GPU container:
- For nvidia docker 2:
$ docker run --runtime=nvidia -it -p 19530:19530 -d <milvus_gpu_docker_image>
- For nvidia container toolkit:
docker run --gpus all -it -p 19530:19530 -d <milvus_gpu_docker_image>
To enter the container:
$ docker exec -it [container_id] bash
Download Milvus source code:
$ git clone https://github.com/milvus-io/milvus
To enter its core directory:
$ cd ./milvus/core
Specify version (for example, 0.10.3):
$ git checkout 0.10.3
If you are using a CPU-only image:
- run
build.sh
:
$ ./build.sh -t Release
- Start Milvus server:
$ ./start_server.sh
If you are using a GPU-enabled image:
- Add cuda library path to
LD_LIBRARY_PATH
:
$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
- Add cuda binary path to
PATH
:
$ export PATH=/usr/local/cuda/bin:$PATH
- Add a
-g
parameter to runbuild.sh
:
$ ./build.sh -g -t Release
- 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.14 or higher. Here we get CMake 3.14.
$ wget https://cmake.org/files/v3.14/cmake-3.14.7-Linux-x86_64.tar.gz
-
Extract the file and install CMake.
$ tar zxvf cmake-3.14.7-Linux-x86_64.tar.gz $ mv cmake-3.14.7-Linux-x86_64 /opt/cmake-3.14.7 $ ln -sf /opt/cmake-3.14.7/bin/* /usr/bin/