无需rustup为Stable Rust安装wasm32-unknown-unknown目标
为Stable Rust静态安装脚本添加wasm32目标的解决方案
问题说明
此前通过静态脚本安装了Stable+Nightly Rust,移除Nightly配置后,Stable工具链正常运行但缺失wasm32-unknown-unknown目标。由于stable版本的rust-std包命名规则与nightly不同(使用具体版本号而非stable关键字),直接访问rust-std-stable-wasm32-unknown-unknown.tar.gz无效。
解决方案
1. 修改静态配置
将stable版本的wasm目标包路径加入配置,包名需使用对应Stable版本的具体版本号(示例为1.74.0):
static-host = "https://static.rust-lang.org/" stable-installer-path = "dist/rust-1.74.0-x86_64-unknown-linux-gnu.tar.gz" # 新增stable wasm目标包路径 stable-wasm-path = "dist/rust-std-1.74.0-wasm32-unknown-unknown.tar.gz"
2. 更新安装脚本
添加下载并解压stable wasm目标包的步骤,将std包内容合并到Stable主工具链目录中:
# 安装Stable主工具链 curl -ssL "${static-host}/${stable-installer-path}" -o "/etc/rust/$(basename ${stable-installer-path})" tar -xzf "/etc/rust/$(basename ${stable-installer-path})" -C /etc/rust # 下载并安装stable wasm目标包 curl -ssL "${static-host}/${stable-wasm-path}" -o "/etc/rust/$(basename ${stable-wasm-path})" # 将std包解压到Stable主目录,合并rustlib内容 tar -xzf "/etc/rust/$(basename ${stable-wasm-path})" -C /etc/rust/rust-1.74.0-x86_64-unknown-linux-gnu --strip-components=2
3. 验证安装
执行以下命令确认wasm目标已添加:
# 先将Stable工具链的bin目录加入PATH export PATH="/etc/rust/rust-1.74.0-x86_64-unknown-linux-gnu/bin:$PATH" rustc --print target-list | grep wasm32-unknown-unknown
关键说明
- Stable版本的rust-std包命名格式为
rust-std-<具体版本号>-<目标平台>.tar.gz,而非nightly使用的rust-std-nightly-<目标平台>.tar.gz。 - 解压时使用
--strip-components=2是因为std包的目录结构为rust-std-<版本>-<目标>/lib/rustlib/...,去掉前两级目录后可直接合并到主工具链的rustlib目录下,确保rustc能识别到该目标。
内容的提问来源于stack exchange,提问作者Simson
相关产品推荐
相关产品推荐

