喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
14.6.1. 从cratea.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.2. cargo install
cargo 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%
(Linux/MacOS使用$PATH
)就可以查看此程序是否在环境变量中了。
14.6.3. 使用自定义命令扩展cargo
Cargo被设计为可以使用子命令来扩展。
举个例子,如果$PATH
中的某个二进制文件是cargo-something
,你可以通过运行 cargo something
来运行它,就像它是一个Cargo子命令一样运行它。
当你运行cargo --list
时,也会列出像这样的自定义命令。能够使用cargo install
来安装扩展,然后像内置的Cargo工具一样运行它们,这是Cargo设计的一个非常方便的好处。