0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用rustup來(lái)管理所有和Rust相關(guān)的工具鏈

jf_wN0SrCdH ? 來(lái)源:浮之靜 ? 作者:lencx ? 2022-11-23 09:45 ? 次閱讀

安裝 Rust

在前端開(kāi)發(fā)中,經(jīng)常會(huì)使用 nvm[2](或 nvm-windows[3])來(lái)管理系統(tǒng)上的 Node.js 版本。而在 Rust 中則是使用 rustup[4] 來(lái)管理所有和 Rust 相關(guān)的工具鏈,而且它們具有很多相似性:

cargo[5] - rust 版的 npm[6],Rust 的包管理器。

clippy[7] - rust 版的 eslint[8],檢查包以捕獲常見(jiàn)錯(cuò)誤并改進(jìn)你的 Rust 代碼。

rustfmt[9] - rust 版的 prettier[10],格式化當(dāng)前 crate 的所有 bin 和 lib 文件。

crates.io[11] - rust 版 npm 包管理網(wǎng)站[12]。

macOS、Linux、以及類 Unix 系統(tǒng)安裝(如果是 Windows,請(qǐng)參考其他平臺(tái)安裝[13]):

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 升級(jí)
$ rustup update

# 卸載
$ rustup self uninstall

版本檢查

使用 --version 會(huì)看到已發(fā)布的最新穩(wěn)定版本的版本號(hào)、提交哈希和提交日期,格式如下:

$ rustc --version
rustc 1.65.0 (897e37553 2022-11-02)

$ cargo --version
cargo 1.65.0 (4bc8f24d3 2022-10-20)

版本選擇

# 安裝 nightly (stable | beta | nightly |  | )
$ rustup toolchain install nightly
# 查看 Rust 工具鏈(toolchains, Rust 和其相關(guān)組件)
$ rustup toolchain list
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin (default)
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin
# 設(shè)置默認(rèn)為 nightly(全局)
$ rustup default nightly
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin (default)
# 覆蓋為 nightly(當(dāng)前項(xiàng)目)
$ cd ~/projects/needs-nightly
$ rustup override set nightly
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin (default)
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin (override)

# 移除覆蓋(當(dāng)前項(xiàng)目)
$ rustup override unset
stable-aarch64-apple-darwin
stable-x86_64-apple-darwin (default)
nightly-aarch64-apple-darwin
nightly-x86_64-apple-darwin

作為一種編程語(yǔ)言,Rust 既關(guān)心代碼的穩(wěn)定性(構(gòu)建堅(jiān)如磐石應(yīng)用的基礎(chǔ)),也希望擁抱變化(試驗(yàn)新的功能)。所以 Rust 遵循軟件發(fā)布序列模型,該模型已被 Cisco IOS 和其他軟件項(xiàng)目使用。Rust 有三個(gè)發(fā)布渠道(以 Rust 1.5 為例):

Nightly - 每天發(fā)布

Beta - 每周六發(fā)布

Stable - 穩(wěn)定版,每六周發(fā)布一次

nightly: * - - * - - * - - * - - * - - * - * - *
                     |                         |
beta:                * - - - - - - - - *       *
                                       |
stable:                                *

Rust 2-3 年會(huì)發(fā)布一次大版本:每個(gè)版本會(huì)結(jié)合已經(jīng)落地的功能,提供一個(gè)清晰的帶有完整更新文檔和工具的功能包。新版本會(huì)作為常規(guī)的六周發(fā)布過(guò)程的一部分發(fā)布。目前 Rust 已經(jīng)發(fā)布了三個(gè)大版本(Rust 2015、2018、2021),了解更多:

What are Editions?[14]

How Rust is Made and “Nightly Rust”[15]

安裝擴(kuò)展

Cargo 插件

cargo edit[16] - 該工具擴(kuò)展了 Cargo 以允許你通過(guò)從命令行修改 Cargo.toml 文件來(lái)添加、刪除和升級(jí)依賴項(xiàng)。

cargo-watch[17] - 是一種用于監(jiān)視基于 Cargo 的項(xiàng)目并在文件更改時(shí)運(yùn)行命令的工具。它專注于 Rust 開(kāi)發(fā)體驗(yàn),旨在足夠靈活以適應(yīng)大多數(shù)情況,而不會(huì)變得復(fù)雜。

cargo-deny[18] - 用于整理你的依賴項(xiàng)。

cargo-expand[19] - 顯示宏擴(kuò)展結(jié)果的子命令。

cargo-fuzz[20] - 用于模糊測(cè)試的命令行助手。

cargo-generate[21] - 是一個(gè)開(kāi)發(fā)人員工具,通過(guò)利用預(yù)先存在的 git 存儲(chǔ)庫(kù)作為模板,幫助你快速啟動(dòng)和運(yùn)行新的 Rust 項(xiàng)目。

cargo-chef[22] - 使用 Docker 層緩存加速 Rust Docker 構(gòu)建的 cargo 子命令。

cargo-release[23] - 關(guān)于釋放 rust crate 的所有內(nèi)容。

cargo-audit[24] - 審核你項(xiàng)目的依賴關(guān)系,以查找具有報(bào)告給 RustSec Advisory Database[25] 的安全漏洞的板條箱。

rustfix[26] - 自動(dòng)應(yīng)用 rustc 提出的建議。

nextest[27] - Rust 的下一代測(cè)試運(yùn)行器。

tarpaulin[28] - Rust 項(xiàng)目的代碼覆蓋工具。

瀏覽器插件

Rust Search Extension[29] - 直接在瀏覽器地址欄搜索文檔、crates、內(nèi)置屬性、官方文檔、錯(cuò)誤代碼等。輸入關(guān)鍵字 rs 然后按空格鍵開(kāi)始,就這么簡(jiǎn)單!

VS Code 插件

rust-analyzer[30] - 插件提供了對(duì) Rust 編程語(yǔ)言的支持。包含代碼提示,類型定義,代碼跳轉(zhuǎn)等等(注意:關(guān)于 rust 語(yǔ)法提示的插件只需要這一個(gè)就夠了)。

crates[31] - 是 crates.io 依賴項(xiàng)的插件。旨在幫助開(kāi)發(fā)人員在使用 Cargo.toml 時(shí)管理依賴項(xiàng),鼠標(biāo)懸停 crate 名稱可以顯示可用版本列表。

CodeLLDB[32] - 由 LLDB 提供支持的本機(jī)調(diào)試器。調(diào)試 C++、Rust 和其他編譯語(yǔ)言。

Even Better TOML[33] - 功能齊全的 TOML 支持,如句法高亮,驗(yàn)證,數(shù)組,對(duì)象折疊,JSON Schema[34] 等。

國(guó)內(nèi)鏡像

國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境常常會(huì)導(dǎo)致依賴下載過(guò)慢或失敗。所以和 npm 國(guó)內(nèi)鏡像類似,Rust 也支持鏡像地址配置,常用的鏡像源有:

清華大學(xué)開(kāi)源軟件鏡像站[35] - 清華大學(xué)開(kāi)源軟件鏡像站,致力于為國(guó)內(nèi)和校內(nèi)用戶提供高質(zhì)量的開(kāi)源軟件鏡像、Linux 鏡像源服務(wù),幫助用戶更方便地獲取開(kāi)源軟件。本鏡像站由清華大學(xué) TUNA 團(tuán)隊(duì)負(fù)責(zé)維護(hù)。

中國(guó)科學(xué)技術(shù)大學(xué)開(kāi)源軟件鏡像[36] - 是 Debian, Ubuntu, Fedora, Archlinux, CentOS 等多個(gè)發(fā)行版的官方源。目前是中國(guó)大陸高校訪問(wèn)量最大,收錄最全的開(kāi)源軟件鏡像。

上海交通大學(xué) Linux 用戶組 軟件源鏡像服務(wù)[37]

RsProxy & Bytedance[38]

配置文件

$HOME/.cargo/config

# 官方
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替換成你偏好的鏡像源
replace-with = "sjtu"

# 清華大學(xué)
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中國(guó)科學(xué)技術(shù)大學(xué)
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 如果所處環(huán)境不支持 git 協(xié)議,可以修改為:
# registry = "https://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大學(xué)
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1949

    瀏覽量

    34849
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    305

    瀏覽量

    23782
  • BIN文件
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8359
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    229

    瀏覽量

    6626

原文標(biāo)題:Rust 在前端 - 環(huán)境配置

文章出處:【微信號(hào):Rust語(yǔ)言中文社區(qū),微信公眾號(hào):Rust語(yǔ)言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在Rust中連接和使用MySQL數(shù)據(jù)庫(kù)

    如何在Rust中連接和使用MySQL數(shù)據(jù)庫(kù)。 安裝 mysql 模塊 這里我們假設(shè)你已經(jīng)安裝了Rust編程語(yǔ)言工具,在本教程中,我們將使用 mysql crate
    的頭像 發(fā)表于 09-30 17:05 ?1719次閱讀

    什么是交叉編譯工具

    ,就不得不了解交叉編譯的相關(guān)問(wèn)題。本文章中記錄了一下嵌入式linux所使用的交叉編譯工具相關(guān)基礎(chǔ)說(shuō)明,幫助回顧一些基礎(chǔ)知識(shí)。一、什么是交叉編譯
    發(fā)表于 11-04 07:05

    RUST在嵌入式開(kāi)發(fā)中的應(yīng)用是什么

    的文檔、有用的錯(cuò)誤消息、友好編譯器、一流的工具,只是Rust的幾個(gè)好處。它帶有一個(gè)集成的包管理器和構(gòu)建工具,支持自動(dòng)完成和類型檢查的智能多編輯器,一個(gè)自動(dòng)格式化程序,等等。為什么在嵌入
    發(fā)表于 12-24 08:34

    RISC-V工具簡(jiǎn)介

    的開(kāi)發(fā)工具是架構(gòu)的基礎(chǔ)設(shè)施,所有的軟件操作都依賴于工具。沒(méi)有工具
    發(fā)表于 03-09 06:32

    如何在STM32 (Cortex M3)和GD32(RISC-V)上用Rust開(kāi)發(fā)

    安裝 Rust 的時(shí)候暫且跳過(guò) Visual Studio 也是完全沒(méi)有問(wèn)題的 ;)如果安裝好 Rust 的開(kāi)發(fā)環(huán)境,重啟一下控制臺(tái),應(yīng)當(dāng)能運(yùn)行 rustup工具
    發(fā)表于 06-21 10:38

    【沁恒微CH32V307評(píng)估板試用體驗(yàn)】探索Rust編程語(yǔ)言的嵌入式開(kāi)發(fā)——基于CH32V307【1】

    ,文檔完善、編譯器提示有幫助,能節(jié)省軟件開(kāi)發(fā)所需的時(shí)間。它能應(yīng)用在多個(gè)平臺(tái)和指令集中,這包括裸機(jī)平臺(tái);處理核、操作系統(tǒng)廠家還可以提供自己的編譯目標(biāo),無(wú)需廠家自己重新開(kāi)發(fā)、提供工具。本著學(xué)習(xí)至上的精神
    發(fā)表于 07-18 00:37

    什么是區(qū)塊身份管理

    區(qū)塊身份管理是一個(gè)概念,它使用了基于去中心化的分類賬技術(shù)的數(shù)字驗(yàn)證和身份驗(yàn)證。區(qū)塊身份管理工具利用用戶的設(shè)備來(lái)存儲(chǔ)和加密數(shù)據(jù),而不是放在
    發(fā)表于 09-02 09:44 ?3289次閱讀

    大廠對(duì)Rust的態(tài)度,C++之父回應(yīng)

    不少開(kāi)發(fā)者許多開(kāi)發(fā)者都對(duì) Rust 的過(guò)度宣傳感到反感,并表示不同的工具適合不同的問(wèn)題,不要再過(guò)度宣傳某一種編程語(yǔ)言。Rust 很好,但它不是所有問(wèn)題的解決方案。
    的頭像 發(fā)表于 09-22 11:25 ?1414次閱讀

    以調(diào)試Rust的方式來(lái)學(xué)習(xí)Rust

    在我上一篇 關(guān)于 Rustup 的文章 中,我向你們展示了如何安裝 Rust 工具。但是,如果不能上手操作一下 Rust 的話下載
    的頭像 發(fā)表于 01-03 14:56 ?930次閱讀

    Google在Chromium項(xiàng)目中支持使用Rust

    ]。所有包含 1.66.1 之前的 Cargo 的 Rust 版本都容易受到攻擊。 Rust 1.66.0 的補(bǔ)丁文件也可獲得,用于定制工具
    的頭像 發(fā)表于 01-16 10:52 ?1678次閱讀

    一個(gè)用Rust開(kāi)發(fā)的壓測(cè)工具rsb

    一個(gè)用 Rust 開(kāi)發(fā)的壓測(cè)工具,項(xiàng)目地址:rsb,給個(gè) star 鼓勵(lì)下。
    的頭像 發(fā)表于 03-21 09:32 ?900次閱讀

    Rust 1.68.1發(fā)布修復(fù)了回歸問(wèn)題

    rustup安裝了Rust,可以使用以下命令更新到1.68.1版本: rustup update stable 如何在2023年3月加速 Rust 編譯器 在“如何加速
    的頭像 發(fā)表于 03-27 14:43 ?502次閱讀

    Rustup出發(fā)看Rust編譯生態(tài)

    Rustup出發(fā)看Rust編譯生態(tài) 1. Rust和LLVM的關(guān)系是怎樣的? 2. Rustup中targets是什么,為什么可以安裝多個(gè)? 3.
    的頭像 發(fā)表于 01-02 11:00 ?555次閱讀

    [鴻蒙]OpenHarmony4.0的Rust開(kāi)發(fā)

    背景 Rust 是一門(mén)靜態(tài)強(qiáng)類型語(yǔ)言,具有更安全的內(nèi)存管理、更好的運(yùn)行性能、原生支持多線程開(kāi)發(fā)等優(yōu)勢(shì)。Rust 官方也使用 Cargo 工具來(lái)
    的頭像 發(fā)表于 02-26 17:28 ?933次閱讀
    [鴻蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>開(kāi)發(fā)

    如何用Rust編寫(xiě)一個(gè)ChatGPT桌面應(yīng)用(保姆級(jí)教程)

    用IDEA開(kāi)發(fā)的java仔) 安裝 Rust 語(yǔ)言工具:首先,請(qǐng)確保你已安裝了 Rust 編程語(yǔ)言工具
    的頭像 發(fā)表于 09-25 11:19 ?385次閱讀
    如何用<b class='flag-5'>Rust</b>編寫(xiě)一個(gè)ChatGPT桌面應(yīng)用(保姆級(jí)教程)