成功安装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之前,所以配置如下:

相关推荐
IC 见路不走42 分钟前
LeetCode 第91题:解码方法
linux·运维·服务器
翻滚吧键盘1 小时前
查看linux中steam游戏的兼容性
linux·运维·游戏
小能喵1 小时前
Kali Linux Wifi 伪造热点
linux·安全·kali·kali linux
汀沿河1 小时前
8.1 prefix Tunning与Prompt Tunning模型微调方法
linux·运维·服务器·人工智能
zly35001 小时前
centos7 ping127.0.0.1不通
linux·运维·服务器
kikikidult2 小时前
(2025.07)解决——ubuntu20.04系统开机黑屏,左上角光标闪烁
笔记·ubuntu
小哥山水之间2 小时前
基于dropbear实现嵌入式系统ssh服务端与客户端完整交互
linux
ldj20202 小时前
2025 Centos 安装PostgreSQL
linux·postgresql·centos
翻滚吧键盘3 小时前
opensuse tumbleweed上安装显卡驱动
linux
cui_win3 小时前
【内存】Linux 内核优化实战 - net.ipv4.tcp_tw_reuse
linux·网络·tcp/ip