conan remote add 命令必须指定名称和url;名称为本地标识,url须为完整可访问地址且末尾不带斜杠,artifactory格式为https://host/artifactory/api/conan/repo-key,重复名称需先remove再add,添加后须login认证方可下载上传。

conan remote add 命令必须指定名称和 URL
私有仓库的 remote 地址不是自动发现的,必须用 conan remote add 显式添加。名称(remote_name)只是本地标识,不依赖服务器配置;URL 必须是完整可访问的 HTTP/HTTPS 地址,末尾不能带斜杠(https://conan.example.com/artifactory/api/conan/myrepo ✅,https://conan.example.com/ ❌)。
常见错误现象:ERROR: Unable to connect to remote 或 Connection refused,多数是因为 URL 拼错、端口未开放、或路径中漏掉 /api/conan/xxx 这类 Artifactory/Nexus 特定路由。
- Artifactory 用户注意:URL 格式固定为
https://<host>/artifactory/api/conan/<repo-key></repo-key></host>,其中<repo-key></repo-key>是你在 Artifactory 后台创建 Conan 仓库时填的 Repository Key - Nexus 用户注意:Nexus 3 的 Conan 支持需启用
conan类型仓库,URL 为https://<host>/repository/<repo-name></repo-name></host> - 本地 conan-server(已弃用但仍有使用):URL 是
http://<host>:9300/v1</host>,注意端口和/v1路径
远程名重复会导致覆盖,建议先清空再添加
如果执行 conan remote add myrepo https://... 报错 Remote 'myrepo' already exists,说明同名 remote 已存在——Conan 不会报错覆盖,而是直接拒绝。此时不能靠重试,得先删后加:
- 查现有列表:
conan remote list - 删旧 remote:
conan remote remove myrepo - 再添加:
conan remote add myrepo https://...
容易踩的坑:有人误以为 conan remote add --force 存在,实际 Conan 2.x 不支持该参数;也有人把 conan remote update 当作修改 URL 的方式,但它只更新远程启用状态(--enable/--disable),不改 URL。
添加后必须 login 才能上传/下载私有包
添加 remote 只是注册地址,不等于完成认证。conan remote add 后立即运行 conan search xxx --remote=myrepo 会提示 Forbidden 或 Authentication required。
正确流程是添加后立刻登录:
- 交互式输入密码:
conan remote login myrepo username(执行后会提示输入密码) - 非交互式(CI/脚本常用):
conan remote login myrepo username -p "your_password",注意密码含特殊字符或空格时必须用双引号包裹 - Artifactory 用户可用 API Key 替代密码:
conan remote login myrepo username -p "AKCp8xxxxxxxx"
登录凭证默认保存在 ~/.conan/remotes.json,明文存储密码字段——生产环境建议配合 conan config set general.password_encrypt=True(需提前设置加密密钥)。
多个私有仓库共存时,remote 顺序影响搜索优先级
Conan 默认按 conan remote list 输出的顺序搜索包,排第一的 remote 优先命中。例如你同时配置了内部镜像 internal-mirror 和 Artifactory prod-repo,但没调整顺序,可能导致本该从 prod-repo 下载的私有包被 internal-mirror 拦截并返回 404。
调整顺序用:conan remote update <name> --index <number></number></name>,比如把 prod-repo 提到第一位:conan remote update prod-repo --index 0。
这个细节常被忽略:很多人只关注“能不能连上”,却没验证“连上之后找不找得到包”——尤其当私有包名与 Conan Center 同名(如 zlib/1.3@mycompany/stable)时,remote 顺序错误会导致静默拉取错误版本。











