RustupRust 的工具鏈管理器
Rustup
Rustup 是一個命令行應(yīng)用,能夠下載并在不同版本的 Rust 工具鏈中進(jìn)行切換 —— 如編譯器 rustc 和標(biāo)準(zhǔn)庫,該應(yīng)用所支持的平臺數(shù)量不少。事實上,rustc 本身就支持大約 56 個平臺,而 rustup 實際上能夠為其中14個平臺管理編譯器,為30個平臺管理標(biāo)準(zhǔn)庫。
Rust 1.8 中引入的 Rustup,是一個針對 Rust 語言的工具鏈管理器(toolchain manager),其目標(biāo)是讓交叉編譯 Rust 代碼更加簡單。Mozilla 工程師 Brian Anderson 近期與我們分享了關(guān)于此的更多細(xì)節(jié)。
此外,rustup 能夠追蹤工具鏈的具體版本,包括 Rust 的 nightly 版本、beta 版本和發(fā)行版本。舉個例子,你可以用 rustup 檢查程序在下一個 Rust 發(fā)行版下的行為。但是之前,你需要安裝當(dāng)前平臺下的 Rust beta 版本的工具鏈,然后利用該工具鏈運行單元測試。使用 rustup 之后,可以通過執(zhí)行類似下面的代碼完成:
$ rustup install beta $ rustup run beta cargo test
再舉一個例子,Anderson 介紹了如何使用 rustup 為使用 musl 標(biāo)準(zhǔn)庫(而非大家常用的glibc標(biāo)準(zhǔn)庫)的 Linux 版本創(chuàng)建靜態(tài)二進(jìn)制文件:
$ rustup target add x86_64-unknown-linux-musl $ cargo run --target=x86_64-unknown-linux-musl
rustup 還是一個正在開發(fā)中的產(chǎn)品,將致力于擴充支持平臺的數(shù)量。特別要注意,rustup 目前還無法針對 Android 平臺進(jìn)行無縫交叉編譯。這要求開發(fā)者手動下載 Android NDK,并針對性地創(chuàng)建一個“獨立的工具鏈”。Anderson 表示,rustup 將在未來的版本中解決這個問題,增加獲取并配置所要求的連接器和C語言工具鏈的能。另外,rustup 還計劃通過 Emscripten 支持Web開發(fā)。
rustup 是 Anderson 開發(fā)的 multirust 的后繼者,并取代了其位置。rustup 仍被看作處于 beta 階段,但是目前已經(jīng)可以安裝并試用。
