14.6 安装二进制 crate14.6.1 从 crates.io 安装二进制 crate通过cargo install命令可以从 crates.io 安装二进制 crate。这并不是为了替换系统包它应该是 Rust 开发人员安装其他人共享工具的便捷方式。它的限制是只能安装具有二进制目标binary target的 crate。binary target 是一个可执行程序由拥有src/main.rs或其它被配置为二进制 crate 的包生成。既然有 binary target 这个概念那就会有 library target 这个概念。library target库目标无法单独运行。通常README.md文件里会有关于 crate 的描述会告诉你这个 crate 是否有 library target、是否有 binary target或者两者都有。14.6.2cargo installcargo install安装的二进制文件存放在主目录下的bin文件夹中。如果你使用默认的rustup配置安装 Rust那么二进制存放目录是$HOME/.cargo/bin。为了让cargo install所安装的程序能够直接执行需要确保该目录在环境变量$PATH中。例如在第 12 章中我们提到了grep工具的 Rust 实现称为ripgrep用于搜索文件。要安装ripgrep我们可以运行$ cargo install ripgrep Updating crates.io index Downloaded ripgrep v13.0.0 Downloaded 1 crate (243.3 KB) in 0.88s Installing ripgrep v13.0.0 ...... Compiling ripgrep v13.0.0 Finished release [optimized debuginfo] target(s) in 3m 10s Installing ~/.cargo/bin/rg Installed package ripgrep v13.0.0 (executable rg)中间省略了一部分但大致就是这样。倒数第二行写到了程序被安装在~/.cargo/bin/rg。在终端使用echo $PATH就可以查看该目录是否在环境变量中。14.6.3 使用自定义命令扩展 CargoCargo 被设计为可以使用子命令来扩展。举个例子如果$PATH中的某个二进制文件名为cargo-something你可以通过运行cargo something来运行它就像它是一个 Cargo 子命令一样。当你运行cargo --list时也会列出像这样的自定义命令。能够使用cargo install来安装扩展然后像内置的 Cargo 工具一样运行它们这是 Cargo 设计的一个非常方便的好处。