Skip to content

Rust 操作与命令 · 查看、安装与更新 Rust 工具链至创建和定位 Cargo 项目 ​

返回分篇目录

本轮仅静态审读,未执行工具链或示例命令。成对双花括号中的内容是待替换参数,短选项与长选项并列时表示任选一种写法,不要原样复制。下列命令会按用途安装、改写配置、编译或发布,运行前先确认当前目录、目标工具链与操作影响。

Rust 操作与命令 ​

本轮仅静态审读,未执行工具链或示例命令。成对双花括号中的内容是待替换参数,短选项与长选项并列时表示任选一种写法,不要原样复制。下列命令会按用途安装、改写配置、编译或发布,运行前先确认当前目录、目标工具链与操作影响。

查看、安装与更新 Rust 工具链 ​

先查看已有工具链,再安装、更新或设置默认版本;项目级覆盖和指定工具链运行放在默认配置之后。

rustup · 安装、管理和更新 Rust 工具链 ​

一些子命令,如 toolchain、target、update 等有自己的使用文档。 更多信息:https://rust-lang.github.io/rustup/。

  • 为你的系统安装 nightly 工具链:
bash
rustup install nightly
  • 将默认工具链切换为 nightly 以便 cargo 和 rustc 命令使用它:
bash
rustup default nightly
  • 在当前项目中使用 nightly 工具链,但保持全局设置不变:
bash
rustup override set nightly
  • 更新所有工具链:

参见 rustup update。

  • 列出已安装的工具链:

参见 rustup show。

  • 使用指定工具链运行 cargo build:
bash
rustup run {{工具链}} cargo build
  • 在默认网页浏览器中打开本地 Rust 文档:

参见 rustup doc。

rustup show · 显示已安装的工具链、目标平台以及 rustc 的版本信息 ​

更多信息:https://rust-lang.github.io/rustup/。

  • 显示所有信息:
bash
rustup show
  • 显示当前激活的工具链:
bash
rustup show active-toolchain
  • 显示 rustup 数据目录:
bash
rustup show home

rustup check · 检查 Rust 工具链和 rustup 的更新 ​

更多信息:https://rust-lang.github.io/rustup/。

  • 检查所有更新:
bash
rustup check

rustup toolchain · 管理 Rust 工具链 ​

有关工具链的更多信息,请参见 rustup help toolchain。 更多信息:https://rust-lang.github.io/rustup/。

  • 安装或更新指定工具链:
bash
rustup toolchain install {{工具链}}
  • 卸载工具链:
bash
rustup toolchain uninstall {{工具链}}
  • 列出已安装的工具链:
bash
rustup toolchain list
  • 通过创建符号链接来创建自定义工具链:
bash
rustup toolchain link {{自定义工具链名称}} {{path/to/directory}}

rustup update · 更新 Rust 工具链以及 rustup 本身(如果不是通过包管理器安装的) ​

更多信息:https://rust-lang.github.io/rustup/。

  • 更新所有已安装的工具链和 rustup:
bash
rustup update
  • 安装或更新指定工具链(有关工具链的更多信息,请参见 rustup help toolchain):
bash
rustup update {{工具链}}

rustup default · 设置默认 Rust 工具链 ​

更多信息:https://rust-lang.github.io/rustup/。

  • 切换默认 Rust 工具链(详见 rustup help toolchain):
bash
rustup default {{工具链}}

rustup override · 修改目录的工具链覆盖设置 ​

有关工具链的更多信息,请参见 rustup help toolchain。 更多信息:https://rust-lang.github.io/rustup/。

  • 列出目录的工具链覆盖设置:
bash
rustup override list
  • 为当前目录设置覆盖工具链(即在该目录中运行 cargo、rustc 等命令时使用指定工具链):
bash
rustup override set {{工具链}}
  • 移除当前目录的工具链覆盖设置:
bash
rustup override unset
  • 移除所有指向已不存在目录的工具链覆盖设置:
bash
rustup override unset --nonexistent

rustup run · 在指定 Rust 工具链环境下运行命令 ​

注意:所有由 rustup 管理的命令都有简写形式,例如,cargo +nightly build 等价于 rustup run nightly cargo build。 更多信息:https://rust-lang.github.io/rustup/。

  • 使用指定的 Rust 工具链运行命令(有关工具链的更多信息,请参见 rustup help toolchain):
bash
rustup run {{工具链}} {{命令}}

rustup which · 显示 rustup 管理的命令将运行哪个二进制文件 ​

类似 which 命令,但搜索的是 Rust 工具链而不是 $PATH。 更多信息:https://rust-lang.github.io/rustup/。

  • 显示默认工具链中命令的二进制文件路径:
bash
rustup which {{命令}}
  • 显示指定工具链中命令的二进制文件路径(有关工具链的更多信息,请参见 rustup help toolchain):
bash
rustup which --toolchain {{工具链}} {{命令}}

rustup self · 管理 rustup 本身的安装 ​

更多信息:https://rust-lang.github.io/rustup/。

  • 更新 rustup:
bash
rustup self update
  • 卸载 rustup:
bash
rustup self uninstall

rustup set · 修改 rustup 的配置 ​

更多信息:https://rust-lang.github.io/rustup/。

  • 设置默认目标平台:
bash
rustup set default-host {{目标平台}}
  • 设置默认安装配置(minimal 只包含 rustc、rust-std 和 cargo,而 default 还会安装 rust-docs、rustfmt 和 clippy):
bash
rustup set profile {{minimal|default}}
  • 设置在执行 rustup update 时是否自动更新 rustup 本身:
bash
rustup set auto-self-update {{enable|disable|check-only}}

补充交叉编译目标、组件与 Shell 补全 ​

标准工具链以外的目标平台、组件和补全脚本分别查阅 target、component、completions。

rustup target · 修改工具链支持的目标平台 ​

如果不使用 --toolchain 选项,rustup 会使用默认工具链。更多信息请参见 rustup help toolchain。 更多信息:https://rust-lang.github.io/rustup/。

  • 为工具链添加目标平台:
bash
rustup target add --toolchain {{工具链}} {{目标}}
  • 从工具链移除目标平台:
bash
rustup target remove --toolchain {{工具链}} {{目标}}
  • 列出工具链的可用目标平台和已安装目标平台:
bash
rustup target list --toolchain {{工具链}}
  • 列出工具链已安装的目标平台:
bash
rustup target list --toolchain {{工具链}} --installed

rustup component · 修改已安装工具链的组件 ​

如果不使用 --toolchain 选项,rustup 将使用默认工具链。有关工具链的更多信息请参见 rustup help toolchain。 更多信息:https://rust-lang.github.io/rustup/。

  • 向工具链添加组件:
bash
rustup component add --toolchain {{工具链}} {{组件}}
  • 从工具链中移除组件:
bash
rustup component remove --toolchain {{工具链}} {{组件}}
  • 列出工具链已安装和可用的组件:
bash
rustup component list --toolchain {{工具链}}
  • 列出工具链已安装的组件:
bash
rustup component list --toolchain {{工具链}} --installed

rustup completions · 为 rustup 和 cargo 生成命令补全脚本 ​

更多信息:https://rust-lang.github.io/rustup/。

  • 将补全脚本输出到 stdout:
bash
rustup completions {{bash|elvish|fish|powershell|zsh}} {{rustup|cargo}}

创建和定位 Cargo 项目 ​

已有目录从 init 开始,新目录从 new 开始;定位和检查清单放在创建之后。

cargo · 管理 Rust 项目及其模块依赖项(crates) ​

此命令也有关于其子命令的文件,例如:build。 更多信息:https://doc.rust-lang.org/stable/cargo/。

  • 搜索包(crate):
bash
cargo search {{搜索关键词}}
  • 安装二进制包(crate):
bash
cargo install {{包名}}
  • 列出已安装的二进制包(crate):

参见 cargo install。

  • 在指定目录(或默认情况下在当前工作目录)中创建一个新的二进制或库 Rust 项目:
bash
cargo init --{{bin|lib}} {{路径/到/目录}}
  • 向当前目录的 Cargo.toml 添加一个依赖项:

参见 cargo add。

  • 使用 release 模式在当前目录中构建 Rust 项目:

参见 cargo build。

  • 使用已安装的 nightly 工具链构建当前项目(需要 rustup,此命令不会更新工具链):
bash
cargo +nightly {{[b|build]}}
  • 使用特定数量的线程构建(默认为逻辑 CPU 的数量):
bash
cargo {{[b|build]}} {{[-j|--jobs]}} {{线程数}}

cargo new · 创建一个新的 Cargo 软件包 ​

相当于 cargo init,但是必须指定一个目录。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-new.html。

  • 使用二进制目标创建一个新的 Rust 项目:
bash
cargo new {{路径/到/目录}}

cargo init · 创建一个新的 Cargo 软件包 ​

相当于 cargo new,但是指定目录是可选的。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-init.html。

  • 在当前目录中初始化一个带有二进制目标的 Rust 项目:
bash
cargo init
  • 在指定目录中初始化一个带有二进制目标的 Rust 项目:
bash
cargo init {{路径/到/目录}}
  • 在当前目录中初始化一个带有库目标的 Rust 项目:
bash
cargo init --lib
  • 在项目目录中初始化版本控制系统仓库(默认为 git):
bash
cargo init --vcs {{git|hg|pijul|fossil|none}}
  • 设置软件包名称(默认为目录名称):
bash
cargo init --name {{名称}}

cargo locate-project · 打印项目的 Cargo.toml 清单的完整路径 ​

如果项目是工作区的一部分,则显示项目的清单,而不是工作区的。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-locate-project.html。

  • 显示包含完整路径到 Cargo.toml 清单的 JSON 对象:
bash
cargo locate-project
  • 以指定格式显示项目路径:
bash
cargo locate-project --message-format {{plain|json}}
  • 显示位于工作区根目录而不是当前工作区成员的 Cargo.toml 清单:
bash
cargo locate-project --workspace
  • 显示特定目录中的 Cargo.toml 清单:
bash
cargo locate-project --manifest-path {{path/to/Cargo.toml}}

cargo verify-project · 检查 Cargo.toml 文件清单的正确性,并将结果以 JSON 对象的形式打印出来 ​

这是历史命令,从 Rust 1.84 起已弃用,下列旧调用保留用于识别历史笔记。新流程可用 cargo metadata --no-deps --format-version 1 读取当前项目元数据,必要时加 --manifest-path;元数据读取成功不等于源码或链接已通过,也不保证完全离线。弃用状态见下方官方列表。

更多信息:https://doc.rust-lang.org/cargo/commands/deprecated-and-removed.html。

  • 检查当前项目清单的正确性:
bash
cargo verify-project
  • 检查指定清单文件的正确性:
bash
cargo verify-project --manifest-path {{path/to/Cargo.toml}}

继续阅读