RUNBOOK / Rust / Cargo
Cargo crates.io 下载缓慢:稀疏索引与网络配置
cargo build 更新索引或下载 crate 极慢。
故障现象与判断依据
最可能原因
索引协议、Git 代理和 crate CDN 的路径并不相同。
LOGUpdating crates.io index
warning: spurious network error (3 tries remaining)
[28] Timeout was reached安全诊断
以下命令用于读取状态、验证解析或复现请求;先确认目标主机、权限与影响范围。命令中的占位符必须替换为当前环境的实际值。
READ / VERIFY[net]
git-fetch-with-cli = true
[http]
timeout = 60
# cargo fetch -vv推荐修复步骤
- 1检查 cargo config 的 source 替换与 net.git-fetch-with-cli。
- 2优先使用团队验证过的稀疏索引配置。
- 3为 CI 缓存 registry 与 git checkout,避免每次冷启动。
验证、限制与回滚
修复后的验证
cargo fetch 后离线构建可成功,依赖锁文件未被意外改写。
风险提示与回滚
不要以关闭证书校验、删除全部缓存、无限重试、关闭防火墙或放宽到 chmod 777 来替代根因定位。任何配置变更前先保留原文件和校验结果;若验证失败,恢复该备份并重新采集日志。
可信来源与适用边界
参考来源Configuration - The Cargo Book ↗
net.git-fetch-with-cli 此页将环境级案例与本 Runbook 的检查步骤分开呈现,不能把示例日志当作当前服务器的真实事件。