#4967·rustup

添加共享工具链目录

作者: Rx1513创建于 2026年7月20日更新于 2026年9月3日
标签enhancement

你想要解决的问题 Hello! 作为一个包维护者,我想要打包不同的 Rust 工具链分发版,例如稳定版、夜间版、特定的稳定版,或者自定义分支(例如 ESP 工具链)。为了使之实用,需要某种工具链多路复用器。虽然我可以自己编写一个最小的多路复用器,但它缺少许多有用的功能。 另一方面,我可以使用 rustup,它被广泛采用并得到很好的支持。然而,其主要缺点是与操作系统包管理器的集成不佳。没有自动的方式来通过 rustup 使用系统提供的 Rust 工具链。虽然可以手动链接系统工具链,但没有机制来使其与包管理器的更新保持同步。 作为用户,我想能够同时使用系统提供的工具链和官方 Rust 工具链。例如,我可能会使用一个工具链进行日常开发,另一个用于功能测试或验证,或者在某些情况下,我可能会使用本地分发基础设施。这都是可能的,但需要额外的工作。 ### 你想要的解决方案 为了解决这些问题,可以添加由外部工具管理的单独共享目录。 rustup 应自动从共享目录中发现工具链。RUSTUP_HOME中的工具链应优先于来自共享目录的工具链。如果本地工具链与共享目录中的同名工具链相冲突,则应明确指出。例如: "rustup default alt" 信息: 共享工具链被 RUSTUP_HOME 工具链覆盖 信息: 设置默认工具链为 alt 此功能应为自选。应可通过用户或系统配置,或通过环境变量来启用它。 "rustup toolchain list" 应明确指出哪些工具链属于哪种机制。例如: " $ rustup toolchain list 共享工具链: alt-1.90 (默认) alt-1.92 alt-nightly-1.95 (被影射) esp (被影射) 本地: stable alt-nightly-1.95 esp (活动) nightly " " $ rustup toolchain list -v 共享工具链 (/usr/lib64/Rust-toolchains/): alt-1.90 (默认) /usr/lib64/Rust-toolchains/alt-1.90/ alt-1.92 /usr/lib64/Rust-toolchains/alt-1.92/ alt-nightly-1.95 (被影射) /usr/lib64/Rust-toolchains/alt-nightly-1.95/ esp (被影射) /usr/lib64/Rust-toolchains/esp 本地 (/home/user/.rustup/): stable /home/user/.rustup/toolchains/stable alt-nightly-1.95 /home/user/.rustup/toolchains/alt-nightly-1.95 esp (活动) /home/user/RPM/BUILD/Rust-esp/build/host/stage1 nightly /home/user/.rustup/toolchains/nightly " ### 说明 相关于 https://GitHub.com/Rust-lang/rustup/issues/313, https://GitHub.com/Rust-lang/rustup/issues/1085, 和 https://GitHub.com/Rust-lang/rustup/issues/2383。 尚未解决的问题: 该功能是否提供了指定多个共享目录的机制,还是只支持一个共享目录? 我已经做了一些初步工作,请参阅 https://github.com/rust-lang/rustup/pull/1085。

内容来源: rust-lang/rustup