首页 > 数据库 >milvus向量数据库源码编译

milvus向量数据库源码编译

时间:2023-11-11 12:35:34浏览次数:33  
标签:cmake 编译 源码 milvus install http 向量

(milvus源码编译)

编译环境

os:ubuntu22.04.6 live-server,x64 gcc:9.4.0 cmake:3.24.0 go:1.18.10 milvus: v2.3.2 操作系统建议使用ubuntu。在centos7上未编译成功。 在root账户下操作。

安装gcc

因为后面需要安装cmake,因此先安装如下依赖:

apt install g++ gcc make libssl-dev

添加i386架构的支持。这个命令通常在需要安装32位软件包时使用。后面安装依赖需要这个。

dpkg --add-architecture i386
apt-get update

安装cmake

下载路径:

https://codeload.github.com/Kitware/CMake/zip/refs/tags/v3.24.0

下载后进行安装:

unzip CMake-3.24.0.zip
cd CMake-3.24.0/
./configure
make -j4  #-j4代表开启4个并发进行编译
make install

//查看版本
cmake --version
cmake version 3.24.0

安装OpenBLAS

BLAS(Basic Linear Algebra Subprograms 基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量或矩阵乘法),OpenBLAS是BLAS标准的一种具体实现。 OpenBLAS被应用于科学计算、数据分析、深度学习算法、人工智能等领域。

下载milvus源码:

https://github.com/milvus-io/milvus/archive/refs/tags/v2.3.2.zip

源码包拷贝至/mnt目录

cd /mnt
unzip milvus-2.3.2.zip

脚本会使用wget去国外站点下载一些软件包,由于国外访问比较慢,解决这个问题,可以配置代理。 设置环境变量:

export http_proxy="http://192.168.230.10:1080"
export https_proxy="http://192.168.230.10:1080"

这2个环境变量针对wget,curl,cmake,yum均适用。 执行脚本的时候还会去github下载源码,因此还需要配置一下git的代理:

git config --global http.proxy http://192.168.230.10:1080
git config --global https.proxy http://192.168.230.10:1080
git config --list

执行脚本install_deps_embd.sh(OpenBLAS): 由于是用root用户执行,无需sudo,去掉脚本里的sudo。 在这里插入图片描述

. scripts/install_deps_embd.sh

这个阶段执行会比较耗时。

安装其它依赖

执行install_deps.sh脚本,执行之前也去掉sudo。 在这里插入图片描述

. scripts/install_deps.sh

这个脚本执行耗时不长。

源码编译

前面的准备工作都已经完成,现在开始进行源码编译。

make milvus

这个阶段会耗时很长。 执行完成后会产生一个二进制文件:

bin/milvus

产生的库文件位置:

internal/core/output/lib

至此milvus的源码编译完成。

标签:cmake,编译,源码,milvus,install,http,向量
From: https://blog.51cto.com/huangzhimao/8316169

相关文章

  • 【Java】智慧工地云平台源码支持多端展示(PC端、手机端、平板端)
    实现工地的数字化、精细化、智慧化生产和管理。一、智慧工地发展趋势1.更加智能未来的智慧工地系统将逐步植入人工智能和虚拟现实等高科技技术以更为智慧的方式,来实现岗位人员与工地现场的交互与配合。智慧工地系统能够在工程全生命周期管理的过程中发挥巨大效用,运用信息化手段......
  • UWB定位技术源码:实现微米级精度的人员定位系统
    UWB定位技术源码 超宽带技术的人员定位系统源码UWB人员定位系统是一种基于超宽带技术的人员定位系统,它通过发送和接收超短脉冲信号,在测距方面可以达到微米级精度。这种系统通常需要具备高精度的定位能力,通常需要达到微米级别,这样可以在室内和室外的复杂环境中精确定位,为人员的个人......
  • #yyds干货盘点#react的useState源码分析
    简单说下为什么React选择函数式组件,主要是class组件比较冗余、生命周期函数写法不友好,骚写法多,functional组件更符合React编程思想等等等。更具体的可以拜读dan大神的blog。其中Functioncomponentscapturetherenderedvalues这句十分精辟的道出函数式组件的优势。但是在16.8之......
  • 医学影像系统源码(MRI、CT三维重建)
    一、MRI概述核磁共振成像(英语:NuclearMagneticResonanceImaging,简称NMRI),又称自旋成像(英语:spinimaging),也称磁共振成像(MagneticResonanceImaging,简称MRI),台湾又称磁振造影,香港又称磁力共振扫描,是利用核磁共振(nuclearmagneticresonance,简称NMR)原理,依据所释放的能量在物质内部不......
  • Qt源码解析——元对象系统热身
    关键词:Qt源码QObjectQMetaObject元对象系统属性事件信号槽概述原系列文章地址官方文档第二章内容就是元对象系统,它在介绍里描述到:Qt的元对象系统提供了信号和槽机制(用于对象间的通信)、运行时类型信息和动态属性系统。元对象系统基于三个要素:QObject类为那些可以利......
  • Linux软件包(源码包和二进制包)
    Linux下的软件包众多,且几乎都是经GPL授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。GPL,全称GeneralPublicLicense,中文名称“通用性公开许可证”,简单理解GPL就是一个保护软件自由的一个协议,经GPL协议授权的软件必须开源......
  • Vue源码学习(十六):diff算法(三)暴力比对
    好家伙,这是diff的最后一节了 0.暴力比对的使用场景 没有可复用的节点:当新旧虚拟DOM的结构完全不同,或者某个节点不能被复用时,需要通过暴力比对来创建新的节点,并在真实DOM上进行相应的插入操作。0.1.例子一://创建vnodeletvm1=newVue({data:{name:'张三'......
  • APISIX源码安装问题解决
    官网手册的安装语句:curlhttps://raw.githubusercontent.com/apache/apisix/master/utils/install-dependencies.sh-sL|bash-执行install-dependencies.sh报如下错误:Transactioncheckerror:file/usr/share/gcc-4.8.2/python/libstdcxx/v6/printers.pyfrominstal......
  • 智慧工地源码:建筑管理的新型方式
    智慧工地是利用物联网、云计算、大数据等技术,实现对建筑工地实时监测、管理和控制的一种新型建筑管理方式,其中,数据分析功能起着至关重要的作用。1、数据采集智慧工地中的数据采集主要通过传感器、监控摄像头等设备进行。这些设备可以实时采集到工地的环境数据、施工人员和设备信息......
  • (四)Spring源码解析:bean的加载流程解析
    一、概述在前几讲中,我们着重的分析了Spring对xml配置文件的解析和注册过程。那么,本节内容,将会试图分析一下bean的加载过程。具体代码,如下图所示:1.1>doGetBean(...)针对bean的创建和加载,我们可以看出来逻辑都是在doGetBean(...)这个方法中的,所以,如下就是针对于这个方法的整体源码注......