使用 `cargo install` 安装 Rust 二进制工具

一、什么是 cargo install

cargo install 命令专门用于安装那些包含可执行目标的包,也就是说,这些包中必须有一个或多个二进制目标(binary target)。与传统的系统软件包管理器不同,cargo install 并不是用来替换系统包,而是为 Rust 开发者提供了一种简洁的方式来安装和管理命令行工具。

需要注意的是,只有当包中包含类似 src/main.rs(或者在 Cargo.toml 中指定了其他二进制文件)的二进制目标时,才能使用 cargo install 进行安装。如果一个包仅提供库代码,那么它不能被直接安装为可执行程序。

二、安装后的文件存放位置

所有使用 cargo install 安装的二进制文件都会存储在安装根目录的 bin 文件夹中。如果你是通过 rustup.rs 安装的 Rust,并且没有做过其他配置,那么这个目录通常是 $HOME/.cargo/bin

为了能够在命令行中直接运行这些工具,确保 $HOME/.cargo/bin 已经添加到你的 $PATH 环境变量中。可以在终端中执行如下命令检查:

bash 复制代码
echo $PATH

如果没有看到 $HOME/.cargo/bin,你需要在 shell 的配置文件中(例如 .bashrc.zshrc)添加如下行:

bash 复制代码
export PATH="$HOME/.cargo/bin:$PATH"

三、示例:安装 ripgrep

ripgrep 是一个用 Rust 实现的文本搜索工具,功能类似于传统的 grep,但性能更强、使用更简单。下面的命令展示了如何通过 cargo install 安装 ripgrep

bash 复制代码
$ 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
--snip--
   Compiling ripgrep v13.0.0
    Finished `release` profile [optimized + debuginfo] target(s) in 10.64s
  Installing ~/.cargo/bin/rg
   Installed package `ripgrep v13.0.0` (executable `rg`)

安装过程中,Cargo 会自动从 crates.io 下载 ripgrep 及其依赖,并编译生成可执行文件。注意输出中倒数第二行显示了安装位置和生成的二进制名称(在此例中为 rg)。只要你的 $PATH 包含了安装目录,你就可以在终端中直接运行:

bash 复制代码
$ rg --help

这时,你会看到 ripgrep 的使用帮助信息,从而开始体验这个高效的搜索工具。

四、总结

  • cargo install 的作用:它允许你从 crates.io 安装带有二进制目标的包,而不是库包,从而在本地使用命令行工具。
  • 安装位置 :所有二进制工具都安装在 $HOME/.cargo/bin 中,请确保该目录已添加到 $PATH 环境变量中。
  • 使用示例 :本文以 ripgrep 为例,演示了如何使用 cargo install 下载、编译和安装 Rust 工具。

通过 cargo install,你可以轻松获取社区中各种优秀的 Rust 工具,体验 Rust 生态带来的便捷与高效。如果你有更多关于 Rust 工具安装的经验或问题,欢迎在评论区分享讨论!


希望这篇博客能帮助你更好地理解和使用 cargo install。Happy coding!

相关推荐
Narcissiffo9 小时前
【C语言】str系列函数
c语言·开发语言
workflower9 小时前
软件工程与计算机科学的关系
开发语言·软件工程·团队开发·需求分析·个人开发·结对编程
ajsbxi9 小时前
【Java 基础】核心知识点梳理
java·开发语言·笔记
阿珊和她的猫10 小时前
深入理解与手写发布订阅模式
开发语言·前端·javascript·vue.js·ecmascript·状态模式
懷淰メ10 小时前
python3GUI--模仿百度网盘的本地文件管理器 By:PyQt5(详细分享)
开发语言·python·pyqt·文件管理·百度云·百度网盘·ui设计
AntBlack10 小时前
虽迟但到 :盘一盘 SpringAI 现在发展得怎么样了?
后端·spring·openai
新子y10 小时前
【小白笔记】普通二叉树(General Binary Tree)和二叉搜索树的最近公共祖先(LCA)
开发语言·笔记·python
重整旗鼓~10 小时前
28.redisson源码分析分布式锁
java·开发语言
哼?~10 小时前
C++11标准 上 (万字解析)
开发语言·c++
VB.Net10 小时前
C#循序渐进
开发语言·c#