cargo(1)
NAME
cargo - The Rust package manager
SYNOPSIS
cargo
[options] command [args]
cargo
[options] --version
cargo
[options] --list
cargo
[options] --help
cargo
[options] --explain
code
DESCRIPTION
This program is a package manager and build tool for the Rust language, available at https://rust-lang.org.
COMMANDS
Build Commands
cargo-bench(1)
Execute benchmarks of a package.
cargo-build(1)
Compile a package.
cargo-check(1)
Check a local package and all of its dependencies for errors.
cargo-clean(1)
Remove artifacts that Cargo has generated in the past.
cargo-doc(1)
Build a package’s documentation.
cargo-fetch(1)
Fetch dependencies of a package from the network.
cargo-fix(1)
Automatically fix lint warnings reported by rustc.
cargo-run(1)
Run a binary or example of the local package.
cargo-rustc(1)
Compile a package, and pass extra options to the compiler.
cargo-rustdoc(1)
Build a package’s documentation, using specified custom flags.
cargo-test(1)
Execute unit and integration tests of a package.
Manifest Commands
cargo-generate-lockfile(1)
Generate Cargo.lock
for a project.
cargo-locate-project(1)
Print a JSON representation of a Cargo.toml
file’s location.
cargo-metadata(1)
Output the resolved dependencies of a package in machine-readable format.
cargo-pkgid(1)
Print a fully qualified package specification.
cargo-tree(1)
Display a tree visualization of a dependency graph.
cargo-update(1)
Update dependencies as recorded in the local lock file.
cargo-vendor(1)
Vendor all dependencies locally.
cargo-verify-project(1)
Check correctness of crate manifest.
Package Commands
cargo-init(1)
Create a new Cargo package in an existing directory.
cargo-install(1)
Build and install a Rust binary.
cargo-new(1)
Create a new Cargo package.
cargo-search(1)
Search packages in crates.io.
cargo-uninstall(1)
Remove a Rust binary.
Publishing Commands
cargo-login(1)
Save an API token from the registry locally.
cargo-owner(1)
Manage the owners of a crate on the registry.
cargo-package(1)
Assemble the local package into a distributable tarball.
cargo-publish(1)
Upload a package to the registry.
cargo-yank(1)
Remove a pushed crate from the index.
General Commands
cargo-help(1)
Display help information about Cargo.
cargo-version(1)
Show version information.
OPTIONS
Special Options
-V
--version
- Print version info and exit. If used with
--verbose
, prints extra information. --list
- List all installed Cargo subcommands. If used with
--verbose
, prints extra information. --explain
code- Run
rustc --explain CODE
which will print out a detailed explanation of an error message (for example,E0004
).
Display Options
-v
--verbose
- 启用更加详细的输出。可两次使用来显示"非常详细"的输出,其中包含了诸如 依赖警告 以及 构建脚本输出 等额外的输出内容。
也可通过
term.verbose
指定。 config value. -q
--quiet
- 不输出Cargo的日志信息。也可通过
term.quiet
指定。 config value. --color
when- 控制输出内容的颜色。有效取值如下:
auto
(默认):自动检测终端是否支持带颜色的输出。always
:总显示带颜色的输出。never
:从不显示带颜色的输出。
也可通过
term.color
指定。 config value.
Manifest Options
--frozen
--locked
- 这两个选项用于保证
Cargo.lock
文件是最新的。如果该锁文件不存在,或者不是最新的,Cargo 会报错退出。其中--frozen
选项会阻止Cargo访问网络以检查锁文件是否是最新的。这些选项,可用于保证
Cargo.lock
文件是最新的(比如持续集成的构建过程), 或用于避免联网。 --offline
- 禁止Cargo访问网络。如果不添加此选项,Cargo在需要访问网络但网络不可用的情况下,会报错
并停止工作。添加此选项后,Cargo会尽可能尝试不使用网络来工作。
注意,在此情况下可能会产生与联网状态下不同的依赖解析(Dependency Resolution)结果。 Cargo只会使用本地已下载的crate,即便本地的索引副本中表明可能有新版本crate。在离线前下载 所需依赖的方法,参见 cargo-fetch(1) 。
也可以通过
net.offline
config value指定。
Common Options
+
toolchain- If Cargo has been installed with rustup, and the first argument to
cargo
begins with+
, it will be interpreted as a rustup toolchain name (such as+stable
or+nightly
). See the rustup documentation for more information about how toolchain overrides work. -h
--help
- Prints help information.
-Z
flag- Unstable (nightly-only) flags to Cargo. Run
cargo -Z help
for details.
环境
关于Cargo所读取的环境变量,可参见the reference
退出状态
0
: Cargo命令执行成功101
: Cargo命令未能完成.
FILES
~/.cargo/
Default location for Cargo’s “home” directory where it
stores various files. The location can be changed with the CARGO_HOME
environment variable.
$CARGO_HOME/bin/
Binaries installed by cargo-install(1) will be located here. If using
rustup, executables distributed with Rust are also located here.
$CARGO_HOME/config.toml
The global configuration file. See the reference
for more information about configuration files.
.cargo/config.toml
Cargo automatically searches for a file named .cargo/config.toml
in the
current directory, and all parent directories. These configuration files
will be merged with the global configuration file.
$CARGO_HOME/credentials.toml
Private authentication information for logging in to a registry.
$CARGO_HOME/registry/
This directory contains cached downloads of the registry index and any
downloaded dependencies.
$CARGO_HOME/git/
This directory contains cached downloads of git dependencies.
Please note that the internal structure of the $CARGO_HOME
directory is not
stable yet and may be subject to change.
EXAMPLES
-
Build a local package and all of its dependencies:
cargo build
-
Build a package with optimizations:
cargo build --release
-
Run tests for a cross-compiled target:
cargo test --target i686-unknown-linux-gnu
-
Create a new package that builds an executable:
cargo new foobar
-
Create a package in the current directory:
mkdir foo && cd foo cargo init .
-
Learn about a command’s options and usage:
cargo help clean
BUGS
See https://github.com/rust-lang/cargo/issues for issues.