milvus/INSTALL.md
Lutkin Wang fc03f696ae
Add troubleshooting info about libmysqlpp.so.3 error (#1225)
* Update INSTALL.md

Signed-off-by: Lutkin Wang <yamasite@qq.com>

* Update INSTALL.md

Signed-off-by: Lutkin Wang <yamasite@qq.com>
2020-02-15 18:21:57 +08:00

176 lines
3.9 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)
- [Troubleshooting](#troubleshooting)
## 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.
- GCC 7.0 or higher to support C++17
- 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 the following Docker images, you should be able to compile Milvus on any Linux platform that run Docker. To build a GPU supported Milvus, you need 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:latest
```
Pull GPU-enabled image:
```shell
$ docker pull milvusdb/milvus-gpu-build-env:latest
```
### Step 2 Start the Docker container
Start a CPU-only container:
```shell
$ docker run -it -p 19530:19530 -d milvusdb/milvus-cpu-build-env:latest
```
Start a GPU container:
```shell
$ docker run --runtime=nvidia -it -p 19530:19530 -d milvusdb/milvus-gpu-build-env:latest
```
To enter the container:
```shell
$ docker exec -it [container_id] bash
```
### Step 3 Download Milvus source code
Download latest Milvus source code:
```shell
$ cd /home
$ git clone https://github.com/milvus-io/milvus
```
To enter its core directory:
```shell
$ cd ./milvus/core
```
### Step 4 Compile Milvus in the container
If you are using a CPU-only image, compile it like this:
```shell
$ ./build.sh -t Release
```
If you are using a 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 reinstalling the latest CMake from source with `--system-curl` option:
```shell
$ ./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.
2. If you encounter the following error when compiling in a Docker image: `internal compiler error`. Try increasing the memory allocated to docker first.
3. If you encounter the following error during compilation:
```
.../bin/milvus_server: error while loading shared libraries: libmysqlpp.so.3: cannot open shared object file: No such file or directory
```
Try the following solutions:
1. Check whether `libmysqlpp.so.3` is correctly installed;
2. If `libmysqlpp.so.3` is installed, check whether it is added to `LD_LIBRARY_PATH`.