成功安装Milvus!零基础Ubuntu部署安装Milvus教程

Milvus源码编译安装

网上可参考的Milvus源码安装教程资料太少,且不全,会缺少很多依赖安装,导致最后编译安装会遇到很多问题,在此,整理自己源码编译安装的全过程,方便日后查看。

Milvus源码编译安装

Golang和C++开发环境安装

根据此教程进行部署安装Golang开发环境。

由于Milvus是GO语言开发,所以需要先安装Golang,版本要求>=1.16即可。

源码安装编译基础依赖:OpenBLAS

OpenBLAS是向量计算库,参考此教程部署安装。

1.先安装必要依赖工具:

sudo apt-get update && \
# common utils for download sources tarball/zipball
sudo apt-get install -y --no-install-recommends curl wget ca-certificates gnupg2 && \
# openblas deps
sudo apt-get install -y --no-install-recommends g++ gcc gfortran git make && \
# cleanup
sudo apt-get remove --purge -y
  1. 下载0.3.9版本的OpenBLAS源码包
    这里我是手动下载上传。

    OPENBLAS_VERSION=0.3.9 &&
    wget "https://github.com/xianyi/OpenBLAS/archive/v${OPENBLAS_VERSION}.tar.gz"

  2. 解压编译

bash 复制代码
tar -zxvf xxx.tar.gz 
cd xxx
sudo make TARGET=CORE2 DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 USE_THREAD=0 USE_OPENMP=0 FC=gfortran CC=gcc COMMON_OPT="-O3 -g -fPIC" FCOMMON_OPT="-O3 -g -fPIC -frecursive" NMAX="NUM_THREADS=128" LIBPREFIX="libopenblas" LAPACKE="NO_LAPACKE=1" INTERFACE64=0 NO_STATIC=1
  1. 等待结果,出现下面内容表示OpenBLAS编译完成
bash 复制代码
make[1]: Leaving directory '/app/OpenBLAS-0.3.9/exports'

 OpenBLAS build complete. (BLAS CBLAS LAPACK LAPACKE)

  OS               ... Linux             
  Architecture     ... x86_64               
  BINARY           ... 64bit                 
  C compiler       ... GCC  (command line : gcc)
  Fortran compiler ... GFORTRAN  (command line : gfortran)
  Library Name     ... libopenblas-r0.3.9.a (Single threaded)  

To install the library, you can run "make PREFIX=/path/to/your/installation install".
  1. 安装OpenBLAS
bash 复制代码
sudo make -j4 PREFIX=/usr NO_STATIC=1 install 
  1. 出现下面内容,表示安装成功!
bash 复制代码
make[1]: Entering directory '/app/milvus/OpenBLAS-0.3.9'
Generating openblas_config.h in /usr/include
Generating f77blas.h in /usr/include
Generating cblas.h in /usr/include
Copying LAPACKE header files to /usr/include
Copying the shared library to /usr/lib
Generating openblas.pc in /usr/lib/pkgconfig
Generating OpenBLASConfig.cmake in /usr/lib/cmake/openblas
Generating OpenBLASConfigVersion.cmake in /usr/lib/cmake/openblas
Install OK!
make[1]: Leaving directory '/app/milvus/OpenBLAS-0.3.9'
  1. 清理
bash 复制代码
rm -rf xxx.tar.gz

安装Rust

bash 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
bash 复制代码
rustup install 1.73.0

查看cargo和rustup版本是否均为1.73.0

bash 复制代码
cargo --version
rustc --version

设置为默认版本并确认cargo和rust版本

bash 复制代码
rustup default 1.73.0

输入以下命令确保已设为默认版本:

bash 复制代码
rustup toolchain list

安装前置依赖

参考此教程

  1. 安装googletest
bash 复制代码
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz && \
tar zxf release-1.8.0.tar.gz && \
rm -f release-1.8.0.tar.gz && \
cd googletest-release-1.8.0 && \
cmake . && \
make && \
make install
  1. 安装packages
bash 复制代码
sudo apt-get install \
    g++ \
    cmake \
    libboost-all-dev \
    libevent-dev \
    libdouble-conversion-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libiberty-dev \
    liblz4-dev \
    liblzma-dev \
    libsnappy-dev \
    make \
    zlib1g-dev \
    binutils-dev \
    libjemalloc-dev \
    libssl-dev \
    pkg-config \
    libunwind-dev
  1. 安装fmt
bash 复制代码
git clone https://github.com/fmtlib/fmt.git && cd fmt

mkdir _build && cd _build
cmake ..

make -j$(nproc)
sudo make install
  1. 安装调试相关依赖
bash 复制代码
apt-get install \
    libunwind8-dev \
    libelf-dev \
    libdwarf-dev
  1. 下载安装folly
    如果克隆失败,建议手动下载放到合适位置即可。
bash 复制代码
git clone https://github.com/facebook/folly.git

编译安装folly

bash 复制代码
cd folly
mkdir _build && cd _build
cmake ..
make -j $(nproc)
make install 

下载源码

到这一步,基本的前置工作已完成。

bash 复制代码
git clone https://gitee.com/milvus-io/milvus.git

更改安装脚本

bash 复制代码
cd milvus/scripts
vim 3rdparty_build.sh

搜索/cargo,找到+1.73 build替换为:

bash 复制代码
rustup run 1.73.0 cargo build --release --verbose

如果不替换使用下载的源码部署脚本编译,会报错"error:toolchain '1.73-x86_64-unknown-linux-gnu' is not installed".

开始编译

回退到上一级目录,执行make milvus编译。

bash 复制代码
cd milvus
make milvus

【注】在编译的时候,请记得关掉梯子再编译!!!

若失败,make clean再次make milvus。

经过漫长的等待,最后出现下面的界面表示构建完成。

看到Build Milvus就构建成功了。

测试Milvus是否安装成功

运行如下命令:

bash 复制代码
./bin/milvus

以上,Milvus 在 Ubuntu 20.04 / Ubuntu 22.04 环境中的编译安装已完成!

遇到的问题

问题1:

bash 复制代码
"fatal: destination path 'opendal' already exists and is not an empty directory. 

解决办法:

bash 复制代码
rm -rf opendal/

问题2:

bash 复制代码
error: toolchain '1.73-x86_64-unknown-linux-gnu' is not installed

解决办法:

更改源码脚本,将cargo +1.73 build更改为rustup run 1.73.0 cargo build --release

问题3:

提示Cargo.html不存在,这种是编译的第三方库没有完整下载所以报错找不到,解决方法是删掉整个源码目录,再次编译。

问题4:

无法加载共享库。

bash 复制代码
 error while loading shared libraries: libfolly_exception_tracer_base.so.0.58.0                 -dev: cannot open shared object file: No such file or directory

解决办法:

跟着我上面的流程走,安装了fmt,相关依赖包,及folly,依赖库肯定存在,此时,我们只需要找到这个依赖文件位置,将其放入/usr/local/lib下,再配置环境变量,使其生效即可。

  1. 使用find命令查找缺少依赖文件libfolly_exception_tracer_base.so.0.58.0-dev具体位置
bash 复制代码
find / -name libfolly_exception_tracer_base.so.0.58.0-dev 2>/dev/null

查找结果如下:

  1. 制作软链接
bash 复制代码
 sudo ln -s /milvus/cmake_build/lib/libfolly_exception_tracer_base.so.0.58.0-dev /usr/local/lib/libfolly_exception_tracer_base.so.0.58.0-dev
  1. 配置环境变量

问题5:

cargo部署路径要在/usr/bin之前,所以配置如下:

相关推荐
梅见十柒3 分钟前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热7 分钟前
路由基础(全)
linux·网络·网络协议·安全
传而习乎17 分钟前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
入 梦皆星河19 分钟前
在 Ubuntu/Debian 上安装 Go
ubuntu·golang·debian
我们的五年26 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记1 小时前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教1 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特1 小时前
环境变量简介
linux
小陈phd2 小时前
Vscode LinuxC++环境配置
linux·c++·vscode
是阿建吖!2 小时前
【Linux】进程状态
linux·运维