1. 概述
- 使用
cargo install
来安装二进制crate - 安装来源来自crates.io
- 只能安装具有二进制目标(binary target)的crate
- 二进制目标binary target是一个可运行的程序,由
src/main.rs
或其他被指定为二进制文件的crate生成
通常在对应的crate仓库中,README文件里里有关于crate的描述。
2. cargo install
cargo install安装的二进制存放在根目录的bin文件夹。
如果使用rustup
安装的rust,没有进行任何配置,那么二进制存放目录是$HOME/.cargo/bin
。
为了确保rust安装的二进制程序能够运行,我们要确保该目录在PATH
环境变量中,我们才能在终端上执行安装的二进制文件。
例子:
- 安装自己发布的包:
cargo install first_crate_yinuo
- 安装后:运行
first_crate_yinuo
- 查看环境变量的路径:
echo $PATH
3. 使用自定义命令扩展cargo
- cargo被设计成可以使用子命令来扩展,类似于npm link。
举例:
- 新建一个项目
cargo new cargo-hello
- 修改
Cargo.toml
ini
[package]
name = "cargo-hello"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
[[bin]]
name = "cargo-hello"
path = "src/main.rs"
- 在项目外部,安装
cargo install --path cargo-hello
- 运行
cargo --list
,可以看到命令hello' - 运行
cargo hello
总结:
如果在PATH中的某个二进制是cargo-something
,那么我们可以像自定义命令一样运行,如下
bash
cargo something
类似这样的自定义命令可以通过cargo --list
命令列出来。
这种设计的优点在于,我们可以使用cargo install
来安装扩展,并像内置工具一样运行。