milvus/install.md
2019-11-28 17:18:01 +08:00

156 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Install Milvus from Source Code
- [Build from source](#build-from-source)
- [Compile Milvus on Docker](#compile-milvus-on-docker)
## Build from source
### Requirements
- Ubuntu 18.04 or higher
If your operating system is not Ubuntu 18.04 or higher, we recommend you to pull a [docker image of Ubuntu 18.04](https://docs.docker.com/install/linux/docker-ce/ubuntu/) as your compilation environment.
- CMake 3.12 or higher
##### For GPU-enabled version, you will also need:
- CUDA 10.0 or higher
- NVIDIA driver 418 or higher
### Compilation
#### Step 1 Install dependencies
```shell
$ cd [Milvus root path]/core
$ ./ubuntu_build_deps.sh
```
#### Step 2 Build
```shell
$ 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
```shell
$ ./build.sh -g
```
If you want to know the complete build options, run
```shell
$./build.sh -h
```
When the build is completed, all the stuff that you need in order to run Milvus will be installed under `[Milvus root path]/core/milvus`.
### Launch Milvus server
```shell
$ cd [Milvus root path]/core/milvus
```
Add `lib/` directory to `LD_LIBRARY_PATH`
```shell
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[Milvus root path]/core/milvus/lib
```
Then start Milvus server:
```shell
$ cd scripts
$ ./start_server.sh
```
To stop Milvus server, run:
```shell
$ ./stop_server.sh
```
## Compile Milvus on Docker
With this dockerfile, you should be able to compile CPU-only or GPU-enabled Milvus on any Linux platform that run Docker. To build a GPU-enabled Milvus, you neeed to install [NVIDIA Docker](https://github.com/NVIDIA/nvidia-docker/) first.
### Step 1 Pull Milvus Docker images
Pull CPU-only image:
```shell
$ Docker pull milvusdb/milvus-cpu-build-env:v0.6.0-ubuntu18.04
```
Pull GPU-enabled image:
```shell
$ Docker pull milvusdb/milvus-gpu-build-env:v0.6.0-ubuntu18.04
```
### Step 2 Start the Docker container
Start a CPU-only container:
```shell
$ Docker run -it -p 19530:19530 -d milvusdb/milvus-cpu-build-env:v0.6.0-ubuntu18.04
```
Start a GPU container:
```shell
$ Docker run — runtime=nvidia -it -p 19530:19530 -d milvusdb/milvus-gpu-build-env:v0.6.0-ubuntu18.04
```
To enter the container:
```shell
$ Docker exec -it [container_id] bash
```
### Step 3 Download Milvus source code and compile it in the container
Download Milvus source code:
```shell
$ cd /home
$ wget https://github.com/milvus-io/milvus/archive/0.6.0.zip
```
Unzip the source package:
```shell
$ Apt-get update
$ Apt-get install unzip
$ unzip ./0.6.0.zip
```
The source code is extracted into a folder called `milvus-0.6.0`.
If you are using a CPU-only image, compile it like this:
```shell
$ ./build.sh -t Release
```
For GPU-enabled image, you need to add a `-g` parameter:
```shell
$ ./build.sh -g -t Release
```
Then start Milvus server
```shell
$ ./start_server.sh
```
## Troubleshooting
1. If you encounter the following error when compiling:
`protocol https not supported or disabled in libcurl`.
First, make sure you have `libcurl4-openssl-dev` installed in your system.
Then try reinstall CMake from source with `--system-curl` option:
```shell
$ ./bootstrap --system-curl
$ make
$ sudo make install
```