旋武发行版
旋武发行版项目,支撑旋武发行版的集成发布,并实现发行版一站式安装管理工具。安装管理工具支持图形化用户接口 (GUI) 以及命令行接口 (CLI)。
安装及使用请见旋武官网发行版下载页面。
工作原理
基本原理
本程序读取一个名为 toolset-manifest 的配置文件,从中加载工具列表,然后借助 rustup 安装 Rust 工具链,并通过多种方法安装不同的工具(*支持 vscode、MSVC buildtools、MinGW 等,存在相应的条件与限制,详情请参见支持范围部分)。
安装完成后,用户将获得一个 toolkit(工具包),它是 Rust 工具链与(可能包含的)用户选择安装的其他工具集合的组合。toolkit 同样支持升级/降级操作。这需要另一个名为 distribution-manifest 的配置文件,该文件通常存储在服务器上,用于告知程序当前有哪些可用的 toolkit 版本可供安装。
安装器与管理器
本程序的功能分为两个部分:installer(安装器)和 manager(管理器),类似于 rustup 的 rustup-init 和 rustup。
- installer负责初始设置工作,对本地环境进行初始化,包括:
- 创建安装根目录
- 自动设置
CARGO_HOME、RUSTUP_HOME、RUSTUP_DIST_SERVER、RUSTUP_UPDATE_ROOT等环境变量。(注意:如果您已手动配置过这些变量,它们可能会被覆盖)。 环境变量设置完成后,程序将引导您完成 Rusttoolkit的安装。
与
rustup不同,本程序除了管理 Rust 工具链外,还可用于管理其他附加工具集。 此外,本程序默认会安装rustup,因此您可以继续正常使用rustup。
构建
前提条件
安装 Rust
若仅需 CLI 二进制文件,除
Rust外无需其他依赖,可直接跳至下一步。 若需 GUI 二进制文件,则需额外安装NodeJS等软件包。安装
NodeJs安装
pnpm,安装NodeJS后,可使用npm通过以下命令安装:bashnpm install -g pnpm@latest(仅 Linux)使用以下命令安装额外的开发软件包:
bashbash ./ci/scripts/install-tauri-deps.sh
调试
调试
installer模式:- 命令行界面
bashcargo dev run --cli --installer- 图形界面
bashpnpm dev run --installer调试
manager模式:运行
manager不像运行Installer模式那样简单。 因为manager二进制文件需要与一些配置文件等一同存放,否则会发生 panic。幸运的是,有一个辅助命令可以帮助您创建模拟环境,以便更轻松地测试manager的功能。bashcargo dev run --manager
发布
创建发布版本前,您需要了解要构建哪个版本。发布版本可在
toolkit配置文件 中找到,默认版本为Basic(用于测试)。如需发布其他版本(如community),可通过EDITION环境变量指定,例如:bashexport EDITION='community'若需离线包发布,还需将用于离线安装的软件包进行本地化,可通过以下命令完成:
bashcargo dev vendor --download-only最后,您可以使用下表中的特定命令创建发布包,结果将存储在
dist/目录下。Net Installer Net Installer & Offline Package CLI cargo dev dist -b --clicargo dev dist --cliGUI cargo dev dist -b --guicargo dev dist --guiBoth cargo dev dist -bcargo dev dist
使用方法
此处仅列出
CLI模式,有关GUI的使用方法,请查看此页面了解详情。目前,GUI 模式仅支持中文,英文支持及其使用文档即将上线。
安装程序模式(CLI)
console
Usage: rim-cli [OPTIONS]
Options:
-l, --lang <LANG> Specify another language to display [possible values: cn, en]
--prefix <PATH> Set another path to install Rust
--manifest <PATH or URL> Specify a path or url of manifest file that contains package source and various configurations
-h, --help Print help
-V, --version Print version示例
设置默认安装目录:
bash./rim-cli --prefix path/to/dir通过加载自定义清单进行安装(模板:
toolset_manifest.toml):bash./rim-cli --manifest path/to/your/toolset-manifest.toml
管理模式(CLI)
检测到安装记录后,管理模式将运行。此外,也可在运行程序前将
MODE环境变量设置为manager来强制启用管理模式,例如在 Unix 系统中运行export MODE='manager'。
console
Usage: MODE='manager' rim-cli.exe [OPTIONS] [COMMAND]
Commands:
update Update toolkit and/or this installation manager
uninstall Uninstall individual components or everything
try-it A subcommand to create a new Rust project template and let you start coding with it
help Print this message or the help of the given subcommand(s)
Options:
-l, --lang <LANG> Specify another language to display [possible values: cn, en]
-h, --help Print help
-V, --version Print version示例
- 卸载全部:
bash
./manager uninstall- 更新自身及工具包:
bash
./manager update- 仅更新工具包:
bash
./manager update --toolkit-only- 导出预配置的示例项目:
bash
./manager try-it -p /path/to/create/project支持
本程序支持安装多种格式的软件包,您可以将这些软件包信息写入toolset-manifest,并在执行 CLI 应用时通过 --manifest path/to/your/ 参数指定该文件,即可选择安装这些软件包。
目前支持以下软件包格式:
- 二进制文件 - (Windows 系统扩展名为
.exe,Linux 系统无扩展名) - VS Code 插件 - (
.vsix文件) - *压缩文件 - (扩展名为
.gz、.xz、.7z、.zip)
对于压缩文件,程序会先尝试将其解压到临时路径,然后识别其中的结构,主要有以下两种类型:
- 包含
bin/文件夹的目录 - 普通目录
这两种类型的目录都会被放置在 <InstallationRoot>/tools 文件夹下,但如果目录中包含 bin/ 文件夹,其路径会额外添加到用户的 PATH 环境变量中。
已知问题
在部分 Linux 发行版上存在与 WebKitGTK 相关的 bug,导致 GUI 程序启动后显示空白。 可通过将环境变量
WEBKIT_DISABLE_COMPOSITING_MODE设置为1来绕过此问题:bashexport WEBKIT_DISABLE_COMPOSITING_MODE=1
