作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
郵箱 :291148484@163.com
本文地址:https://blog.csdn.net/qq_28550263/article/details/130758057
1. 概述
Rust 官方默認的 Cargo 源服務(wù)器為 crates.io,其同時也是 Rust 官方的 crate 管理倉庫,但是由于官方服務(wù)器部署在北美洲,中國大陸用戶下載速度較慢,甚至反復中斷下載——你是否正在經(jīng)歷 cargo 安裝模塊太慢?甚至進度卡停?
cargo add xxxx
Updating crates.io xxxx
warning: spurious network error (2 tries remaining): failed to receive response: 操作超時
; class=Os (2)
Fetch [======> ] 30.16%, 415.60KiB/s
… enmm,不用擔心。當你主動來查找時,那么就如你所猜想的,作為 rust
語言的包管理器的 cargo
,當然也有國內(nèi)源。
2. Window 下配置國內(nèi)源
2.1 新建配置文件
如果你安裝好了 rust,在你的 用戶主目錄 中有一個.cargo
目錄。其中用戶主目錄一般是 C:\Users\
+當前用戶名 為路徑的目錄。
2.2 編輯配置文件
如果安裝完成了 rust 當前用戶目錄下有一個 .cargo
目錄。新建 config
文件,編輯內(nèi)容:
[source.crates-io]
replace-with='rsproxy'
[source.rsproxy]
registry="https://rsproxy.cn/crates.io-index"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true
2.3 也可以直接打開編輯器編輯
使用 Windows 的系統(tǒng)環(huán)境變量 $HOME
可以直接指向主目錄。如果你安裝了 VSCode,可以打開一個終端,輸入以下命令:
code $HOME/.cargo/config
其中,code
所使用的是 VScode 的可執(zhí)行文件:code.exe。運行上面命令后,VSCode 自動打開一個指向 config 文件的空文件:
然后編輯之前的內(nèi)容,并保存即可。
2.4 powershell 命令添加環(huán)境變量
如果盡在本窗口有效,則可以使用以下命令:
$env:RUSTUP_DIST_SERVER="https://mirrors.sjtug.sjtu.edu.cn/rust-static"
$env:RUSTUP_UPDATE_ROOT="https://mirrors.sjtug.sjtu.edu.cn/rust-static/rustup"
你可以使用以下方式查看是否設(shè)置成功:
Write-Host $env:RUSTUP_DIST_SERVER
Write-Host $env:RUSTUP_UPDATE_ROOT
如需要寫入為長期的環(huán)境變量則需要使用以下命令(其中User
表示環(huán)境變量級別為當前用戶,你也可以設(shè)置為系統(tǒng)級變量):
[System.Environment]::SetEnvironmentVariable('RUSTUP_DIST_SERVER','https://mirrors.sjtug.sjtu.edu.cn/rust-static','User')
[System.Environment]::SetEnvironmentVariable('RUSTUP_UPDATE_ROOT','https://mirrors.sjtug.sjtu.edu.cn/rust-static/rustup','User')
3. Linux 下配置 cargo 國內(nèi)源
3.1 安裝 vim
如果已經(jīng)安裝有 vim / vi 或之類編輯工具則可以忽略。
# linux 的 debin 版本如 ubuntu 使用 apt 包管理器。如使用 centOS 的改用 yum 包管理器安裝
sudo apt update
sudo apt install vim
(如果你在 docker 容器中,不需要 sudo)
3.2 編寫配置文件
使用 vim 新建(或編輯已有)一個config
文件:
sudo vim ~/.cargo/config
(如果你在 docker 容器中,不需要 sudo)
這時 vim 建立一個新的為保存config文件,英文輸入模式下,輸入 i
進入編輯模式,添加以下內(nèi)容(和在Windows 時編輯的配置文件一樣):
[source.crates-io]
replace-with='rsproxy'
[source.rsproxy]
registry="https://rsproxy.cn/crates.io-index"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true
依次 exit
、:wq!
保存退出。
4. 關(guān)于 cargo 國內(nèi)源
除了上面給出的配置,你可可以參考本節(jié)挑選一個自己喜歡的國內(nèi)源進行配置。
字節(jié)跳動源
文檔地址:https://rsproxy.cn/
crates.io 鏡像
~/.cargo/config
:
[source.crates-io]
# To use sparse index, change 'rsproxy' to 'rsproxy-sparse'
replace-with = 'rsproxy'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true
Rustup 鏡像:
~/.zshrc or ~/.bashrc:
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
上海交大源
地址:https://mirrors.sjtug.sjtu.edu.cn/docs/rust-static
使用方法:安裝rustup,將以下環(huán)境變量加入~/.bashrc或類似文件中:
export RUSTUP_DIST_SERVER=https://mirror.sjtu.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirror.sjtu.edu.cn/rust-static/rustup
清華源
Rust crates.io 索引鏡像
文檔地址:https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-index.git/
編輯 ~/.cargo/config 文件,添加以下內(nèi)容:
[source.crates-io]
replace-with = 'mirror'
[source.mirror]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
Rust crates.io 稀疏索引鏡像
文檔地址:https://mirrors.tuna.tsinghua.edu.cn/help/crates.io-index/
編輯 ~/.cargo/config 文件,添加以下內(nèi)容:
[source.crates-io]
replace-with = 'mirror'
[source.mirror]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"
注:sparse+ 表示在使用稀疏索引,鏈接末尾的 / 不能缺少。
截至目前,可以通過 cargo +nightly -Z sparse-registry update 使用稀疏索引。
cargo 1.68 版本開始支持稀疏索引:不再需要完整克隆 crates.io-index 倉庫,可以加快獲取包的速度。如果您的 cargo 版本大于等于 1.68,可以直接使用而不需要開啟 nightly。
中科大源
文檔地址:http://mirrors.ustc.edu.cn/help/crates.io-index.html
Windows 用戶在使用 crates 源時可能會出現(xiàn) next InitializeSecurityContext failed: Unknown error 錯誤(見 https://github.com/ustclug/discussions/issues/339 和 https://github.com/rust-lang/cargo/issues/7096)。一個 workaround 是在運行 cargo 的時候加入環(huán)境變量 CARGO_HTTP_CHECK_REVOKE=false,或者在配置中增加:
[http] check-revoke = false
cargo 1.68 版本開始支持稀疏索引:不再需要完整克隆 crates.io-index 倉庫,可以加快獲取包的速度。如果您的 cargo 版本大于等于 1.68,可以在
$HOME/.cargo/config
中添加如下內(nèi)容:[source.crates-io] replace-with = 'ustc' [source.ustc] registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
在 $HOME/.cargo/config
中添加如下內(nèi)容:文章來源:http://www.zghlxwxcb.cn/news/detail-743126.html
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
如果所處的環(huán)境中不允許使用 git 協(xié)議,可以把上述地址改為:文章來源地址http://www.zghlxwxcb.cn/news/detail-743126.html
registry = "https://mirrors.ustc.edu.cn/crates.io-index"
到了這里,關(guān)于rust crate.io 配置國內(nèi)源(cargo 國內(nèi)源) warning: spurious network error (2 tries remainin...的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!