检查清单
是网页端还是客户端
客户端
当前系统环境
Arch Linux (kernel 7.0.3-zen1-2-zen)
当前 Node.js 及 npm 版本
v22.22.2 / npm v10.9.7
当前版本
3.0.0.nightly (Commit: ed080dd) — AUR splayer-git PKGBUILD
具体信息
问题描述
在 Arch Linux 上通过 AUR 安装 splayer-git 时,build() 阶段失败,提示找不到 Rust 工具链。
复现步骤
- 在 Arch Linux 上执行
yay -S splayer-git
- 等待依赖安装完成,进入 build 阶段
pnpm run build 调用 pnpm build:native → tsx scripts/build-native.ts
- 构建失败
错误输出
> splayer@3.0.0 build:native /home/user/.cache/yay/splayer-git/src/splayer.git
> tsx scripts/build-native.ts
[BuildNative] 错误:检测不到 Rust 工具链
[BuildNative] 未设置 SKIP_NATIVE_BUILD,因此必须包含 Rust 环境才能继续
[BuildNative] 安装 Rust (https://rust-lang.org/tools/install/) 或者设置环境变量 SKIP_NATIVE_BUILD=true
ELIFECYCLE Command failed with exit code 1.
根因分析
PKGBUILD 的 prepare() 中设置了 export CARGO_HOME="${srcdir}/.cargo" 并执行了 rustup default stable,工具链安装到了 ${srcdir}/.cargo/bin/。
但 build() 函数只调用了 _ensure_local_nvm(设置 node 环境),没有把 ${srcdir}/.cargo/bin 加入 PATH,导致 build-native.ts 找不到 cargo/rustc。
修复建议
在 build() 开头添加:
export CARGO_HOME="${srcdir}/.cargo"
export PATH="${CARGO_HOME}/bin:${PATH}"
或新增一个 _ensure_local_cargo() 辅助函数(与现有 _ensure_local_nvm 风格一致),在 build() 中调用。
已验证:添加上述两行后构建成功,包可正常安装运行。
检查清单
是网页端还是客户端
客户端
当前系统环境
Arch Linux (kernel 7.0.3-zen1-2-zen)
当前 Node.js 及 npm 版本
v22.22.2 / npm v10.9.7
当前版本
3.0.0.nightly (Commit: ed080dd) — AUR splayer-git PKGBUILD
具体信息
问题描述
在 Arch Linux 上通过 AUR 安装
splayer-git时,build()阶段失败,提示找不到 Rust 工具链。复现步骤
yay -S splayer-gitpnpm run build调用pnpm build:native→tsx scripts/build-native.ts错误输出
根因分析
PKGBUILD 的
prepare()中设置了export CARGO_HOME="${srcdir}/.cargo"并执行了rustup default stable,工具链安装到了${srcdir}/.cargo/bin/。但
build()函数只调用了_ensure_local_nvm(设置 node 环境),没有把${srcdir}/.cargo/bin加入PATH,导致build-native.ts找不到cargo/rustc。修复建议
在
build()开头添加:或新增一个
_ensure_local_cargo()辅助函数(与现有_ensure_local_nvm风格一致),在build()中调用。已验证:添加上述两行后构建成功,包可正常安装运行。