Rust 開發環境安裝與 crates.io 國內源配置(Windows / macOS / Linux 全流程)

Rust 這幾年在系統編程、WebAssembly、區塊鏈、后端服務領域越來越火,很多開發者都在嘗試用它做一些新項目。
但是國內安裝 Rust 開發環境時,經常遇到 安裝慢、依賴拉不下來、crates.io 超時 等問題。本文結合個人踩坑經驗,整理了一份 跨平臺(Windows / macOS / Linux)全流程安裝與鏡像配置指南,希望能幫到后來人。


一、安裝方式對比

Rust 的官方推薦安裝方式是通過 rustup,它不僅能幫你安裝編譯器 rustc,還可以管理多個版本、安裝 cargo 包管理工具。

常見安裝路徑:

  • 官方 rustup-init
    跨平臺支持最好,但國內下載速度比較慢。

  • 國內鏡像站
    比如清華、中科大等高校鏡像源,下載速度更快。

  • 包管理器
    macOS 用戶可以用 brew,Linux 可以用 apt/yum/dnf,Windows 可以用 scoop/choco,但更新往往不如 rustup 及時。

建議新手直接用 rustup,方便切換版本和管理工具鏈。


二、Windows 安裝流程

  1. 下載安裝器

    # 官方方式(可能很慢)
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init.exe
    .\rustup-init.exe# 推薦使用清華鏡像加速
    set RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
    set RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
    

    然后運行 rustup-init.exe,按提示安裝。

  2. 配置環境變量
    安裝后,Rust 工具鏈默認會放在:

    C:\Users\<用戶名>\.cargo\bin
    

    確保這個路徑已經加入到 PATH

  3. 驗證安裝

    rustc --version
    cargo --version
    

三、macOS 安裝流程

  1. 使用 Homebrew 安裝依賴

    brew install rustup-init
    rustup-init
    
  2. 配置國內鏡像(推薦在 .zshrc.bashrc 中寫入):

    export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
    export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
    
  3. 初始化環境

    source $HOME/.cargo/env
    rustc --version
    cargo --version
    

四、Linux 安裝流程

Linux 用戶建議直接用 rustup:

  1. 下載安裝腳本

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  2. 配置國內鏡像(推薦寫入 ~/.bashrc~/.zshrc):

    export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
    export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
    
  3. 加載環境變量并驗證

    source $HOME/.cargo/env
    rustc --version
    cargo --version
    

五、配置 crates.io 國內源

Rust 的依賴管理通過 cargo 完成,默認從 crates.io 下載。但國內訪問經常超時,需要配置鏡像源。

  1. 全局配置
    編輯 $HOME/.cargo/config.toml(沒有就新建):

    [source.crates-io]
    replace-with = 'ustc'[source.ustc]
    registry = "https://mirrors.ustc.edu.cn/crates.io-index"[net]
    git-fetch-with-cli = true  # 避免部分環境下 libgit2 超時
    

    這樣所有項目都會走 USTC 鏡像。

  2. 單項目配置
    如果只想在某個項目用鏡像,可以在項目根目錄新建 .cargo/config.toml 文件,寫入相同內容。


六、常見問題與避坑指南

  1. cargo build 卡死在下載依賴
    → 確認 .cargo/config.toml 已正確配置鏡像,尤其是 [source.crates-io] replace-with

  2. Windows PowerShell 環境變量不生效
    → 需要在系統級環境變量里寫入,重啟 PowerShell。

  3. 不同項目需要不同版本 Rust
    → 用 rustup override set stablerustup override set nightly 來指定項目使用的工具鏈。

  4. 升級慢或失敗
    → 換成中科大或清華鏡像,更新時加 RUSTUP_DIST_SERVER 環境變量。


Rust 的安裝與環境配置本身不復雜,真正的難點在于 國內網絡環境 導致下載緩慢或失敗。
建議:

  • 安裝器 用 rustup,方便版本管理;

  • 鏡像源 配置清華/中科大鏡像,加速 crates 下載;

  • 跨平臺 建議寫好 ~/.cargo/config.toml,不管在哪臺機器都能統一使用。

這樣一套配置下來,基本可以保證在 Windows / macOS / Linux 下都有順暢的開發體驗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98818.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98818.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98818.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nginx SSL/TLS 配置

Nginx SSL/TLS 配置指南&#xff1a;從入門到安全強化前言一、環境準備&#xff1a;Nginx安裝配置1.1. **EPEL倉庫配置**&#xff1a;1.2. **Nginx安裝**&#xff1a;1.3. **服務啟停管理**&#xff1a;1.4. **服務狀態驗證**&#xff1a;二、SSL/TLS證書獲取方案方案A&#xf…

Java ReentrantLock和synchronized的相同點與區別

1. 核心概念與定位synchronized&#xff1a;Java 內置的關鍵字&#xff0c;屬于 JVM 層面的隱式鎖。通過在方法或代碼塊上聲明&#xff0c;自動實現鎖的獲取與釋放&#xff0c;無需手動操作。設計目標是提供簡單易用的基礎同步能力&#xff0c;適合大多數常規同步場景。Reentra…

【npm】npm 包更新工具 npm-check-updates (ncu)

npm 包太多了&#xff0c;一個項目有那么多依賴包&#xff0c;它們的升級管理需要一個工具&#xff1a;npm-check-updates&#xff1a; 安裝&#xff1a; npm install -g npm-check-updates安裝之后&#xff0c;就可以使用它的命令&#xff1a;ncu 查看哪些包可以升級&#xff…

go資深之路筆記(一) Context

一、 Context 的正確使用與底層原理 1.結構體 type Context interface {// Deadline 返回此 Context 被取消的時間點。// 如果未設置截止時間&#xff0c;ok 為 false。Deadline() (deadline time.Time, ok bool)// Done 返回一個 channel。當 Context 被取消或超時后&#xff…

VS2022 + Qt5.9 中文亂碼/項目設置utf-8編碼

&#x1f6e0;? 解決QT5.9 VS2022中文亂碼的全面方案 &#x1f4c1; 1. 檢查文件編碼與編譯器設置 確保源文件是 帶BOM的UTF-8 編碼對MSVC編譯器很重要。VS2022默認可能使用本地編碼&#xff08;如GB2312&#xff09;解析源文件&#xff0c;即使文件以UTF-8保存。 查看和設置…

數據庫--MySQL數據管理

數據庫–MySQL數據管理 文章目錄數據庫--MySQL數據管理1.外鍵管理2.數據庫數據管理3.DML語言3.1添加數據3.2修改數據3.3刪除數據4.練習1.外鍵管理 外鍵概念 如果公共關鍵字在一個關系中是主關鍵字&#xff0c;那么這個公共關鍵字被稱為另一個關系的外鍵。由此可見&#xff0c;…

【C++練習】13.C++輸出九九乘法表的方法詳解

目錄 C++輸出九九乘法表的方法詳解 方法1:雙重for循環(最基礎) 思考: 代碼分析: 特點: 方法2:使用while循環 思考: 代碼分析: 特點: 方法3:使用遞歸實現 思考: 代碼分析: 特點: 方法4:格式化輸出(對齊美觀) 思考: 代碼分析: 特點: 方法5:使用函數封裝 思考…

MVC及其衍生

MVC 把軟件分成模型&#xff08;Model&#xff09;、視圖&#xff08;View&#xff09;、控制器&#xff08;Controller&#xff09;三個基本部分。 事實上對應著 Controller——輸入 用戶交互&#xff0c;將輸入處理成Controller能處理的形式 Model——處理 描述狀態、邏輯規律…

微碩WINSOK MOS管WSF3089,賦能汽車轉向系統安全升級

隨著汽車電子化程度不斷提高&#xff0c;轉向系統對高效功率器件的需求日益增長。微碩WINSOK推出的N溝道Trench MOS管WSF3089&#xff0c;以30 V/72 A大電流、4.5 mΩ超低導通電阻和TO-252-2L緊湊封裝&#xff0c;為EPS&#xff08;電動助力轉向&#xff09;電機驅動、電源管理…

淘寶拍立淘接口的接入與應用||item_search_img-按圖搜索淘寶商品(拍立淘)

淘寶拍立淘接口的接入與應用如下&#xff1a;接入流程注冊與認證&#xff1a;開發者賬號注冊&#xff1a;訪問淘寶開放平臺&#xff0c;進行開發者賬號注冊。創建應用&#xff1a;在控制臺創建新應用&#xff0c;獲取 App Key 和 App Secret&#xff0c;這是接口調用的憑證。申…

Python學習-day8 元組tuple

元組&#xff08;Tuple&#xff09;是Python中一種不可變的序列類型&#xff0c;用于存儲多個有序元素。與列表&#xff08;List&#xff09;類似&#xff0c;但元組一旦創建后不能修改&#xff08;不可添加、刪除或修改元素&#xff09;&#xff0c;這使得它在安全性、性能優化…

大數據畢業設計選題推薦-基于大數據的國家醫用消耗選品采集數據可視化分析系統-Hadoop-Spark-數據可視化-BigData

?作者主頁&#xff1a;IT畢設夢工廠? 個人簡介&#xff1a;曾從事計算機專業培訓教學&#xff0c;擅長Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等項目實戰。接項目定制開發、代碼講解、答辯教學、文檔編寫、降重等。 ?文末獲取源碼? 精彩專欄推薦?…

二次學習C語言補充2

文章目錄表棧、隊列、二叉樹一、二叉樹二、表棧三、隊列鏈表一、單向鏈表二、循環鏈表、雙向鏈表和雙向循環鏈表預處理一、預處理二、宏定義文件文件操作補充本篇文章是對二次學習C語言12——文件操作 二次學習C語言14——預處理及模塊化 二次學習C語言15——鏈表 二次學習C語言…

2.9Vue創建項目(組件)的補充

1.再創建和引入vue的選擇2.VsCode插件 安裝Vue自己搜索最新的3.style自己的作用域在一個組件中引入另一個文件的子組件&#xff0c;給當前組件設置樣式&#xff0c;那么子組件的樣式也會改變的。為了解決這個問題 我們在自己的style中設置一個屬性4.另一種創建vue 的方式(主流…

算法高頻題

刷題&#xff1a;LeetCode&#xff08;Top 100-150題&#xff0c;至少刷兩遍&#xff09;。重點&#xff1a;鏈表、樹、二分查找、動態規劃、回溯、棧/隊列。 每一個題型&#xff0c;前10個高頻題 算法思考框架參考&#xff1a;算法題思維框架-CSDN博客 高頻順序參考網站&…

服務器安裝 LDOPE(MODIS 數據處理工具)

目錄下載方式1-&#xff08;簡單快捷&#xff09;根據WRF-VPRM 需要打補丁下載方式2&#xff1a;&#xff08;手動安裝依賴&#xff09;一、安裝所需依賴庫&#xff08;4 個主庫 2 個基礎庫&#xff09;另- HDF-EOS 手動編譯二、解壓并安裝 LDOPE參考下載方式1-&#xff08;簡…

克隆代幣 + 捆綁開盤:多鏈環境下的低成本發幣玩法

在加密世界&#xff0c;發幣已經不再是“少數開發者的專利”。隨著工具的普及&#xff0c;任何人都可以快速發行一個在加密世界&#xff0c;發幣已經不再是“少數開發者的專利”。隨著工具的普及&#xff0c;任何人都可以快速發行一個代幣。但問題是&#xff1a;如何在保證低成…

數據結構中的 二叉樹

1.前言 在 Java 中&#xff0c;樹&#xff08;Tree&#xff09;是一種非線性數據結構&#xff0c;由節點&#xff08;Node&#xff09;組成&#xff0c;常見的線性表則是我們之前學過的順序表、鏈表、棧、隊列等等。每個節點包含數據和指向子節點的引用。樹的常見實現方式包括二…

IntelliJ IDEA 啟動項目時配置端口指南

&#x1f31f; 一、為什么需要手動設置啟動端口&#xff1f; 默認情況下&#xff0c;Spring Boot 應用會使用 8080 端口啟動。但在以下場景中&#xff0c;我們必須自定義端口&#xff1a; 多個微服務同時運行&#xff0c;需避免端口沖突&#xff1b;團隊協作開發&#xff0c;統…

spark sql之from_json函數

目錄前言函數語法參數說明返回值案例案例1案例2前言 在Spark SQL中&#xff0c;from_json函數用于解析包含JSON字符串的列&#xff0c;并將其轉換為Spark SQL的結構化類型&#xff08;如struct、map或array&#xff09; 函數語法 from_json(jsonStr, schema [, options])參數…