You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu下解决Milvus编译时make无法下载第三方依赖包的问题

解决Ubuntu 24.04编译Milvus时Conan依赖下载失败的方案

一、配置Conan代理

针对网络访问受限的情况,直接给Conan设置全局代理:

  • 执行以下命令设置HTTP/HTTPS代理(替换成你的代理地址和端口):
    conan config set proxies.http=http://your-proxy-ip:port
    conan config set proxies.https=http://your-proxy-ip:port
    
  • 如果代理需要账号密码认证,用这个格式:
    conan config set proxies.http=http://username:password@your-proxy-ip:port
    conan config set proxies.https=http://username:password@your-proxy-ip:port
    
  • 验证配置是否生效:
    conan config show proxies
    

二、替换Conan源为国内镜像

换成国内镜像源能大幅提升下载速度,以清华源为例:

  1. 先移除默认的官方源:
    conan remote remove conan-center
    
  2. 添加清华Conan镜像源:
    conan remote add conan-center https://mirrors.tuna.tsinghua.edu.cn/conan/
    
  3. 也可以额外添加阿里云源作为备用:
    conan remote add aliyun https://conan.aliyun.com/
    

三、手动导入本地依赖包的正确操作

之前直接放文件到缓存目录没用,是因为Conan需要校验包的完整性,按以下步骤来:

  1. 从官方地址手动下载报错的依赖包(比如你遇到的gcc-9.1.0.tar.gz)
  2. 执行conan info .找到对应依赖的缓存路径,比如libiberty/9.1.0的路径是~/.conan/data/libiberty/9.1.0/_/_/
  3. 在这个路径下创建source/src目录,把下载好的tar.gz文件放到src
  4. source目录下创建conanmanifest.txt文件,写入包的哈希值(用sha256sum gcc-9.1.0.tar.gz计算本地文件的SHA256,格式为SHA256: 哈希值
  5. 重新执行make build-3rdparty,Conan会优先读取本地缓存的包

四、强制使用本地已安装依赖(可选)

如果以上方法都不奏效,可以修改编译配置,跳过自动下载:

  • 打开Milvus根目录的Makefile,找到build-3rdparty对应的Conan命令,添加--build=missing参数,或者指定本地依赖的路径
  • 也可以编辑Conan的默认配置文件~/.conan/profiles/default,添加以下内容强制禁用自动下载:
    [conf]
    tools.build:download=False
    

内容的提问来源于stack exchange,提问作者Veli Kıyak

火山引擎 最新活动