Skip to content

Rust 操作与命令 · 安装命令工具与发布软件包 ​

返回分篇目录

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

安装命令工具与发布软件包 ​

本机安装/卸载工具与向注册表发布是两种工作流;发布部分按登录、打包、发布和所有者/撤回管理排列。

cargo install · 构建并安装一个 Rust 二进制文件 ​

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

  • 从 https://crates.io 安装一个软件包 (版本是可选的,默认为最新版本):
bash
cargo install {{软件包}}@{{版本号}}
  • 从指定的 Git 仓库安装一个软件包:
bash
cargo install --git {{仓库url}}
  • 从 Git 仓库安装时,根据指定的 branch/tag/commit 构建:
bash
cargo install --git {{仓库url}} --{{branch|tag|rev}} {{branch_name|tag|commit_hash}}
  • 从本地目录安装一个软件包:
bash
cargo install --path {{路径/到/软件包}}
  • 列出所有已安装的软件包及其版本:
bash
cargo install --list

cargo binstall · 从 CI 产物安装 Rust 二进制文件 ​

如果没有可用的二进制文件,则回退到 cargo install(从源代码安装)。 注意:这不是 Cargo 的内置命令,你需要先安装它。 更多信息:https://github.com/cargo-bins/cargo-binstall。

bash
cargo binstall {{软件包}}
  • 安装指定版本的软件包(默认为最新版本):
bash
cargo binstall {{软件包}}@{{版本号}}
  • 安装软件包并禁用确认提示:
bash
cargo binstall {{[-y|--no-confirm]}} {{软件包}}

cargo uninstall · 移除使用 cargo install 安装的 Rust 二进制文件 ​

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

  • 移除一个已安装的二进制文件:
bash
cargo uninstall {{package_spec}}

cargo login · 将来自注册表的 API 令牌保存到本地 ​

该令牌用于对软件包注册表进行身份验证。您可以使用 cargo logout 来删除它。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-login.html。

  • 将 API 令牌添加到本地凭据存储中(位于 $CARGO_HOME/credentials.toml):
bash
cargo login
  • 使用指定的注册表(注册表名称可以在配置中定义,默认为 https://crates.io):
bash
cargo login --registry {{名称}}

cargo package · 将一个本地软件包打包成一个可分发的 tarball(.crate 文件) ​

类似于 cargo publish --dry-run,但具有更多选项。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-package.html。

  • 执行检查并创建一个 .crate 文件(相当于 cargo publish --dry-run):
bash
cargo package
  • 显示将包含在 tarball 中的文件,而不实际创建它:
bash
cargo package {{[-l|--list]}}

cargo publish · 将软件包上传到注册表 ​

注意:在发布软件包之前,您必须使用 cargo login 添加身份验证令牌。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-publish.html。

  • 执行检查,创建一个 .crate 文件并将其上传到注册表:
bash
cargo publish
  • 执行检查,创建一个 .crate 文件,但不上传它(相当于 cargo package):
bash
cargo publish {{[-n|--dry-run]}}
  • 使用指定的注册表(注册表名称可以在配置中定义,默认为 https://crates.io):
bash
cargo publish --registry {{名称}}

cargo owner · 管理包(crate)在注册表上的所有者 ​

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

  • 邀请指定的用户或团队作为所有者:
bash
cargo owner {{[-a|--add]}} {{用户名|github:机构名称:团队名称}} {{包名}}
  • 将指定的用户或团队从所有者中删除:
bash
cargo owner {{[-r|--remove]}} {{用户名|github:机构名称:团队名称}} {{包名}}
  • 列出一个包(crate)的所有者:
bash
cargo owner {{[-l|--list]}} {{包名}}
  • 使用指定的注册表(注册表名称可以在配置中定义,默认为 https://crates.io):
bash
cargo owner --registry {{名称}}

cargo yank · 从新的依赖解析中撤回指定版本 ​

注意:这不会删除包文件或索引记录。新依赖解析通常跳过撤回版本;已有 Cargo.lock 中锁定该版本的项目仍可下载和使用它,不能将撤回当作强制修复既有用户的措施。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-yank.html。

  • 撤回指定版本的包:
bash
cargo yank {{包名}}@{{版本号}}
  • 撤销撤回(重新允许新的依赖解析选择该版本;已有锁文件能否下载并不由此动作首次开启):
bash
cargo yank --undo {{包名}}@{{版本号}}
  • 使用指定的注册表 (注册表名称可以在配置中定义 - 默认为 https://crates.io):
bash
cargo yank --registry {{名称}} {{包名}}@{{版本号}}

cargo logout · 将来自注册表的 API 令牌从本地移除 ​

该令牌用于对软件包注册表进行身份验证。您可以使用 cargo login 将其添加回来。 更多信息:https://doc.rust-lang.org/cargo/commands/cargo-logout.html。

  • 从本地凭据存储中(位于 $CARGO_HOME/credentials.toml)移除 API 令牌:
bash
cargo logout
  • 使用指定的注册表(注册表名称可以在配置中定义,默认为 https://crates.io):
bash
cargo logout --registry {{名称}}

示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。

继续阅读