ITADN
rust-lang/cargo
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Cargo

Cargo 下载你的 Rust 项目的依赖项并编译你的项目。

若要开始使用 Cargo,请参阅 The Cargo Book 了解更多。

若要开始开发 Cargo 本身,请阅读 Cargo Contributor Guide

通过 Rust 分发的 Cargo 二进制文件由 Cargo 团队维护,供更广泛的生态系统使用。 对于此 crate 的所有其他用途(作为二进制文件或库),均由 Cargo 团队维护,主要供 Cargo 使用,不打算供外部 使用(作为传递依赖项除外)。此 crate 可能会对其 API 进行重大更改。

Code Status

CI

代码文档:https://doc.rust-lang.org/nightly/nightly-rustc/cargo/

从源码编译

要求

Cargo 构建需要以下工具和软件包:

  • cargorustc
  • 适用于您平台的 C 编译器 for your platform
  • git(用于克隆此仓库)

其他要求:

以下内容根据您的平台和需求为可选项。

  • pkg-config — 用于帮助定位系统软件包,例如 libssl 头文件/库。在某些情况下可能不需要,例如使用 vendored OpenSSL 或在 Windows 上。

  • OpenSSL — 仅在类 Unix 系统上需要,且仅在未使用 vendored-openssl Cargo 特性时需要。

    这需要开发头文件,可以从 Ubuntu 的 libssl-dev 软件包、使用 apk 或 yum 的 openssl-devel 或 macOS 上 Homebrew 的 openssl 软件包获取。

    如果使用 vendored-openssl Cargo 特性,则将从源码构建 OpenSSL 的静态副本,而不是使用系统 OpenSSL。 这可能需要额外的工具,例如 perlmake

    在 macOS 上,将检查来自 Homebrew、MacPorts 或 pkgsrc 的常见安装目录。否则将回退到 pkg-config

    在 Windows 上,将使用系统提供的 Schannel 代替。

    也支持 LibreSSL。

可选系统库:

构建将自动使用以下库的 vendored 版本。但是,如果系统提供了这些库并且可以通过 pkg-config 找到,则将使用系统库:

  • libcurl — 用于网络传输。
  • libgit2 — 用于获取 git 依赖项。
  • libssh2 — 用于通过 SSH 访问 git 仓库。
  • libz (又称 zlib) — 由上述 C 库用于数据压缩。(Rust 代码使用 zlib-rs 代替。)

建议使用 vendored 版本,因为它们是经过测试可与 Cargo 配合使用的版本。

编译

首先,你需要检出此仓库

git clone https://github.com/rust-lang/cargo.git
cd cargo

cargo 已安装的情况下,您可以直接运行:

cargo build --release

为 Cargo 添加新的子命令

Cargo 被设计为无需修改 Cargo 本身即可通过新的子命令进行扩展。 有关更多详细信息以及已知社区开发的子命令列表,请参阅 Wiki 页面

发布

Cargo 的发布与 Rust 的发布同步进行。 高层级的发布说明包含在 Rust 的发布说明 中。 详细的发布说明可在 changelog 中查看。

报告问题

发现了一个 bug?我们非常乐意了解!

请在 GitHub issue tracker 上报告所有问题。

贡献

请参阅 Cargo Contributor Guide 以获取关于如何为 Cargo 做贡献的完整介绍。

许可证

Cargo 主要根据 MIT 许可证 和 Apache License (Version 2.0) 的条款分发。

有关详细信息,请参阅 LICENSE-APACHELICENSE-MIT

第三方软件

本产品包含由 OpenSSL Project 开发并用于 OpenSSL Toolkit (https://www.openssl.org/) 的软件。

在二进制形式中,本产品包含根据 GNU 通用公共许可证第 2 版(含链接例外) 条款授权的软件,可从上游仓库获取。

详见 LICENSE-THIRD-PARTY