簡明快速配置 Rust 工具鏈

来源:https://www.cnblogs.com/englyf/archive/2023/09/20/17716249.html
-Advertisement-
Play Games

你可能會為不同版本的工具鏈而煩惱,就算是 ruster 也一樣。介紹一個非常好用的管理工具給大伙,就是使用 Rustup 安裝和更新 Rust 工具鏈。安裝 Rustup 之後,可以在 stable, beta,和 nightly 等版本的 Rust 編譯器工具之間無縫切換。 ...


以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接 微信公眾號「ENG八戒」https://mp.weixin.qq.com/s/dBzL9WZ8P1L1X9j_XkmNQg

你可能會為不同版本的工具鏈而煩惱,就算是 ruster 也一樣。介紹一個非常好用的管理工具給大伙,就是使用 Rustup 安裝和更新 Rust 工具鏈。安裝 Rustup 之後,可以在 stable, beta,和 nightly 等版本的 Rust 編譯器工具之間無縫切換。

寫本文的時候,Rust 編程語言的使用已經越來越流行,受到大量編程人員和企業的嘗試和偏好。Rust 受歡迎的原因之一是 Rust 提供的工具非常好用,對於開發人員來說,使用這些工具已經是一種享受。

Rustup 作為管理 Rust 工具的官方版本,它不僅可以用於安裝 Rust 並保持更新,還可以讓你在不同版本 Rust 編譯器和工具之間無縫切換。

Rustup 到底有那麼神奇嗎?下麵就讓我來帶你走一遍 rustup 以及一些常用的操作指令。

預設安裝方法

如果你想在 Linux 上安裝 Rust,可以使用包管理器。在 Ubuntu 上的包管理器 apt

$ sudo apt-get install rustc cargo

這樣子安裝的是 Rust 工具鏈的穩定版本,非常適合 Rust 初學者和想要嘗試編譯和運行簡單的程式。其中,rustc 是 rust 的編譯器,cargo 是 rust 的包管理器。

但是,Rust 是一種較新的編程語言,它變化很快,並且經常更新升級,會發佈許多新功能和特新。這些功能和特性會被放在 Rust 工具鏈的 nightly 和更新版本中。

在不影響系統已安裝的穩定版本情況下,如果又想嘗試新功能,必然需要安裝較新版本的工具鏈。不幸的是,大部分系統發行版的包管理器無法幫到做到這些。

那麼怎麼辦?且往下看!

使用 rustup

為了安裝 rustup,需要從官網下載腳本文件,使用常見的 curl 指令

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > sh.rustup.rs

在運行安裝下載腳本 sh.rustup.rs 之前,可以選擇把安裝源改到國內其中一個鏡像,方便加快速度。

export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static

接著啟動下載安裝 rust 的腳本 sh.rustup.rs,開始下載安裝

$ ./sh.rustup.rs
info: downloading installer
...

腳本 sh.rustup.rs 會先下載必要的文件,所以稍等片刻,然後出現提示時選擇選項 1:

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
> 1

安裝後,直接輸入查看工具鏈版本的命令,你會發現終端提示還是無法找到對應命令

$ rustc -V
-bash: /usr/bin/rustc: No such file or directory
$ cargo -V
-bash: /usr/bin/rustc: No such file or directory

這時,你需要重啟命令終端,目的是重新載入環境變數和包含 cargo 的 bin 目錄。

但是我比較懶,所以直接手動配置環境變數以包含 cargo 的 bin 目錄

$ source $HOME/.cargo/env

這樣就可以開始使用 rust 工具鏈了

$ rustc -V
rustc 1.72.0 (5680fa18f 2023-08-23)
$ cargo -V
cargo 1.72.0 (103a7ff2e 2023-08-15)

查看已安裝和生效的版本

使用 rustup 據說可以管理多個版本的 rust 工具鏈,那麼,當前哪一版的工具鏈是處於生效狀態呢?

使用以下命令查看

$ rustup show
Default host: x86_64-unknown-linux-gnu
rustup home:  /home/user/.rustup

stable-x86_64-unknown-linux-gnu (default)
rustc 1.72.0 (5680fa18f 2023-08-23)

切換不同版本

安裝好 rustup 後可以根據需要進行更改 rust 目前生效的工具鏈。如果你當前使用的工具鏈是穩定版,並希望嘗試 nightly 版本中提供的新引入的功能,可以輕鬆切換到 nightly 版本中

$ rustup default
$ rustup default nightly

對應的,切換不同版本之後,如果需要查看 Rust 編譯器和包管理器的確切路徑,可以

$ rustup which rustc
/home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc
$ rustup which cargo
/home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo

檢查和更新

簡單檢查一下發佈源是否又新的 Rust 工具鏈可用:

$ rustup check

當你收到消息有新的 Rust 的版本已發佈,並且有一些不錯的功能或者特性,怎麼獲取最新版本的 Rust?使用 update 子命令

$ rustup update

更多

上面簡單介紹了一些命令足以滿足日常使用,但是難免總有遺漏,rustup 還有很多命令可以挖掘,建議參考幫助部分瞭解更多詳細信息

$ rustup --help

可能你會想知道是不是查找詳細的指導信息都得在網上搜索?

告訴你一個好消息,所有 Rust 文檔都已經被 rustup 安裝在你的本地系統上了,並且是離線可用。你可以訪問本地文檔,其中包括書籍、標準庫等:

$ rustup doc
$ rustup doc --book
$ rustup doc --std
$ rustup doc --cargo

當然,Rustup 在 GitHub 上也有一本完整的書,你可以將其用作參考。


Rust 正在快速發展中,是最近幾年最令人興奮的一門新興編程語言。如果你對編程的發展演化感興趣,歡迎關註我,一起學習交流!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.音頻 2.視頻 3.有序無序列表 有序列表:ol>li ol內必須是li,li內沒限制 無序列表:ul>li ul內必須是li,li內沒限制 4.表格 th 字體加粗並居中 示例: 案例:個人簡歷 5.表單 針對錶單整理的相關問題: <!-- action:行動 提交的地址 伺服器地址 後臺地址 ...
  • html和css的關係: HTML(HyperText Markup Language,超文本標記語言)是用於創建網頁的標準標記語言。它負責定義網頁的結構和內容。HTML使用各種標簽來包含文本、鏈接、圖 片、視頻等元素,並可以與如JavaScript等其他技術結合使用,實現網頁的動態功能。 CSS ...
  • vscode 編譯器下載地址: https://code.visualstudio.com/ 1、下載完vscode後安裝的三個小插件:chinese(中文)、live serve、會了吧(翻譯) 2、每個打開的網路頁面都有html編碼,可以進行編碼查詢和編碼檢查 3、vscode的三種創建編碼文件 ...
  • 今天我就介紹一個可以改變你這種現狀的技術:DAO。但在介紹DAO之前我們需要先瞭解一下所有人都在熱烈討論的web3.0。 ...
  • 設計一個具有創意性的物聯網系統需要充分發揮創新思維,考慮系統的實用性、可靠性、成本效益和可擴展性。以下是一些設計建議: ...
  • 一、定義 將一個類的介面轉換成客戶希望的另一個介面。適配器模式讓那些介面不相容的類可以一起工作。適配器模式是一種結構型模式。 二、描述 包含以下三個角色: 1、Target(目標抽象類):目標抽象類定義了客戶所需要的介面,可以是一個抽象類或介面,也可以是一個具體的類,由於C#不支持多繼承,所以它只能 ...
  • 前言 個人網站使用Vue作為前端,SpringBoot作為後端,MySQL作為資料庫,但前端每次請求都會從MySQL資料庫中讀取數據,而MySQL資料庫的數據是存儲於伺服器磁碟中,所以響應速度有一定影響。之前瞭解過一點Redis資料庫,該資料庫數據存儲於記憶體中(也可以持久化於磁碟中),數據讀取速度就 ...
  • 早上看到一篇關於Spring Boot虛擬線程和Webflux性能對比的文章,覺得還不錯。內容較長,我就不翻譯了,抓重點給大家介紹一下這篇文章的核心內容,方便大家快速閱讀。 測試場景 作者採用了一個儘可能貼近現實操作的場景: 從授權頭信息中提取JWT 驗證JWT並從中提取用戶的Email 使用用戶的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...