当前位置: 首页 > article >正文

【Rust自学】14.6. 安装二进制crate

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
请添加图片描述

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设计的一个非常方便的好处。


http://www.kler.cn/a/517538.html

相关文章:

  • 《Chart.js 饼图:深度解析与最佳实践指南》
  • vscode如何安装vue语法支持
  • C语言程序设计十大排序—冒泡排序
  • AR智慧点巡检系统探究和技术方案设计
  • Redis(5,jedis和spring)
  • 计算机网络之物理层
  • 「 机器人 」利用数据驱动模型替代仿真器:加速策略训练并降低硬件依赖
  • CDSN 2024博客之星总评选-主题文章创作,我的AI之路-起手篇
  • 青少年CTF练习平台 PHP的XXE
  • 【深度学习|迁移学习】渐进式学习策略 (Progressive Learning Strategy)详述(一)
  • vulnhub 靶场 —— MrRobot
  • 星火大模型接入及文本生成HTTP流式、非流式接口(JAVA)
  • 【深度学习基础】多层感知机 | 数值稳定性和模型初始化
  • 软件开发学习路线——roadmap
  • java.io包中StringWriter类和PrintWriter类作用
  • 上海亚商投顾:沪指冲高回落 大金融板块全天强势 上海亚商投
  • rust学习-rust中的保留字
  • python编写Socket程序
  • vue3表格数据分2个表格序号连续展示
  • 基于亿坊PHP框架构建物联网解决方案的优势分析!
  • 【QT】- QThread类介绍和线程的创建
  • 「 机器人 」扑翼飞行器的数据驱动建模核心方法
  • Django基础之ORM
  • arm-linux平台、rk3288 SDL移植
  • (算法竞赛)使用广度优先搜索(BFS)解决迷宫最短路径问题
  • 14.杂谈:领域知识库与知识图谱:概念、关系与重要性