使用 cargo install 安装二进制代码箱

Installing Binaries with cargo install

cargo install 命令允许咱们在本地安装和使用二进制的代码箱。这并不是要取代系统包,system packages;它的目的是为 Rust 开发者提供一种方便的方式来安装别人在 crates.io 上分享的工具。请注意咱们只能安装有二进制目标的包,packages that have binary targets。所谓 二进制目标,binary target,即与本身为非可运行,而适合于在其他程序中包含的库目标,a libary target,相反,因为代码箱有着一个 src/main.rs 文件,或有着被指定为二进制的另一文件时,而创建出的可以运行的程序。通常,代码箱会在 README 文件中,有着关于其是否为库代码箱,还是有着二进制目标,或二者皆具方面的信息。

使用 cargo install 安装的全部二进制程序文件,都被存储在安装根的 bin 文件中,in the installation root's bin folder。在使用 rustup.rs 安装 Rust,且没做任何定制配置时,这个目录将是 $HOME/.cargo/bin。为能运行咱们使用 cargo install 安装的程序,就要确保那个目录在 $PATH 中。

注:可在任意位置运行 cargo install 命令,来安装 Crates.io 上的 Rust 二进制程序,这些程序都将被安装在 $HOME/.cargo/bin 下。若已安装了某个 Rust 程序后再安装他,那么就会有如下输出:

$ cargo install ripgrep                                                                                              1m 4s lennyp@vm-manjaro
    Updating crates.io index
     Ignored package `ripgrep v13.0.0` is already installed, use --force to override

比如,咱们曾在第 12 章中提到,有个用于搜索文件,grep 工具的 Rust 实现 ripgrep。要安装 ripgrep,咱们可运行如下命令:

$ cargo install ripgrep
    Updating crates.io index
  Installing ripgrep v13.0.0
   Compiling memchr v2.5.0
   Compiling cfg-if v1.0.0
   Compiling libc v0.2.137
   Compiling log v0.4.17
   Compiling proc-macro2 v1.0.47
   Compiling lazy_static v1.4.0
   Compiling regex-automata v0.1.10
   Compiling quote v1.0.21
   Compiling unicode-ident v1.0.5
   Compiling bstr v0.2.17
   Compiling syn v1.0.103
   Compiling aho-corasick v0.7.20
   Compiling regex-syntax v0.6.28
   Compiling serde_derive v1.0.147
   Compiling encoding_rs v0.8.31
   Compiling serde v1.0.147
   Compiling regex v1.7.0
   Compiling grep-matcher v0.1.5
   Compiling serde_json v1.0.89
   Compiling unicode-width v0.1.10
   Compiling fnv v1.0.7
   Compiling same-file v1.0.6
   Compiling once_cell v1.16.0
   Compiling thread_local v1.1.4
   Compiling globset v0.4.9
   Compiling textwrap v0.11.0
   Compiling encoding_rs_io v0.1.7
   Compiling memmap2 v0.5.8
   Compiling bitflags v1.3.2
   Compiling crossbeam-utils v0.8.14
   Compiling bytecount v0.6.3
   Compiling itoa v1.0.4
   Compiling ryu v1.0.11
   Compiling strsim v0.8.0
   Compiling termcolor v1.1.3
   Compiling clap v2.34.0
   Compiling grep-searcher v0.1.10
   Compiling atty v0.2.14
   Compiling base64 v0.13.1
   Compiling grep-printer v0.1.6
   Compiling grep-cli v0.1.6
   Compiling grep-regex v0.1.10
   Compiling ripgrep v13.0.0
   Compiling walkdir v2.3.2
   Compiling ignore v0.4.18
   Compiling grep v0.2.10
   Compiling num_cpus v1.14.0
    Finished release [optimized + debuginfo] target(s) in 1m 09s
  Installing /home/lennyp/.cargo/bin/rg
   Installed package `ripgrep v13.0.0` (executable `rg`)

输出的倒数第二行显示出已安装二进制程序的位置与名字,在这个示例中名字便是 rg。正如前面提到的,只要安装目录是在 $PATH 中,随后咱们就可以运行 rg --help,并启动一个用于检索文件的更快、更具 Rust 风格的工具了!

Last change: 2023-12-01, commit: 6fc28b5