簡明快速配置 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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...