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源为国内镜像
换成国内镜像源能大幅提升下载速度,以清华源为例:
- 先移除默认的官方源:
conan remote remove conan-center - 添加清华Conan镜像源:
conan remote add conan-center https://mirrors.tuna.tsinghua.edu.cn/conan/ - 也可以额外添加阿里云源作为备用:
conan remote add aliyun https://conan.aliyun.com/
三、手动导入本地依赖包的正确操作
之前直接放文件到缓存目录没用,是因为Conan需要校验包的完整性,按以下步骤来:
- 从官方地址手动下载报错的依赖包(比如你遇到的gcc-9.1.0.tar.gz)
- 执行
conan info .找到对应依赖的缓存路径,比如libiberty/9.1.0的路径是~/.conan/data/libiberty/9.1.0/_/_/ - 在这个路径下创建
source/src目录,把下载好的tar.gz文件放到src里 - 在
source目录下创建conanmanifest.txt文件,写入包的哈希值(用sha256sum gcc-9.1.0.tar.gz计算本地文件的SHA256,格式为SHA256: 哈希值) - 重新执行
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




