You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rust应用中使用Debian仓库安装的crates的官方方法?

Debian系发行版使用apt安装的Rust Crates的正确姿势

你遇到的问题是因为Cargo默认只会从crates.io拉取依赖,不会自动识别apt安装的系统级Rust包。要用上apt装的crates,得按下面的方式操作:

  1. 确认系统包版本匹配
    先用apt show librust-json-dev查看你安装的包版本,比如输出里的Version字段是0.12.0-1,那你Cargo.toml里的版本号就得写0.12.0,必须和系统包的版本完全对应。

  2. 配置Cargo识别系统crates目录
    Debian会把apt安装的Rust crates放在/usr/share/cargo/registry/目录下,你需要告诉Cargo这个位置:

    • 在项目根目录新建.cargo/config.toml文件
    • 写入以下内容:
      [source.debian]
      directory = "/usr/share/cargo/registry/"
      
  3. 选择全局或单个依赖使用系统包

    • 如果你想让所有依赖优先用系统包,就在上面的配置里再加一行:
      [source.crates-io]
      replace-with = "debian"
      
    • 要是只想让json依赖用apt安装的版本,就把配置改成这样:
      [source.debian]
      directory = "/usr/share/cargo/registry/"
      
      [source."registry+https://github.com/rust-lang/crates.io-index"]
      [source."registry+https://github.com/rust-lang/crates.io-index".dependencies.json]
      replace-with = "debian"
      
  4. 保持Cargo.toml的依赖写法
    你原本写的json = "0.12.0"没问题,只要版本和系统包匹配,加上上面的配置后,Cargo就会从系统目录读取依赖,不会再去crates.io拉取了。

注意:apt里的Rust包版本通常更新较慢,如果项目需要的版本系统仓库里没有,还是得用crates.io的包。

内容的提问来源于stack exchange,提问作者vdudouyt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:40:35