Rust学习—解决crates.io 仓库代码下载慢的问题

Rust学习—解决crates.io 仓库代码下载慢的问题

今天在下载r a n d randrand依赖的时候,显示

update crates.io index

然后就华丽的卡住了。查了一下,这是网络的问题,先尝试了借助proxychains工具来使用国外代理的办法,但是没有成功,而且国外不安全的代理有可能泄露信息,只好另寻他法。

最终决定使用国内镜像的方法,虽然还是有一些慢,但是比之前要好多了。

首先进入电脑的cargo目录,MAC OS 默认安装在 ~/.cargo下:

cd ~/.cargo

创建一个config文件,这里使用vim编辑器:

vim config

进到编辑界面后,键入i,切换到插入模式

将下面的代码贴进去:

[source.crates-io]

registry = "https://github.com/rust-lang/crates.io-index"

replace-with = 'ustc'

[source.ustc]

registry = "git://mirrors.ustc.edu.cn/crates.io-index"

此步骤相当于修改了crates的下载源,切换到国内镜像。

按esc退出编辑模式,键入:wq,表示保存并退出即可。

再次尝试,就可以愉快的下载安装依赖啦~!

Blocking waiting for file lock on package cache的问题

几个月之前学习 rust 的一些入门代码,今天打开发现都无法继续

(直接删除$ rm .package-cache)

$ cargo run

Blocking waiting for file lock on package cache

$ cargo build

Blocking waiting for file lock on package cache

解决过程

既然是 cache , 就去找到这个 cache

$ cd ~/.cargo

$ ls -ah

. .crates.toml .package-cache config git

… .crates2.json bin env registry

$ rm .package-cache

按照别人的建议,换个 cargo 源

之前我使用的是 清华的源

$ cat config

[source.crates-io]

replace-with = ‘tuna’

[source.tuna]

registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

*** 不管3721,换了再说

$ cat config

source.crates-io]

registry = "https://github.com/rust-lang/crates.io-index"

replace-with = 'ustc'

[source.ustc]

registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 如果所处的环境中不允许使用 git 协议,可以把上面的地址改为

# registry = "https://mirrors.ustc.edu.cn/crates.io-index"

再运行,出现权限问题

$ cargo build

error: failed to remove file /Users/XXXX/rustStudy/minigrep6/target/debug/minigrep.dSYM

加上 sudo ,也是一样错误

干脆 rm target ,重新 build

cargo clean 是不是一样的效果啊?

$ rm -rf target/

$ cargo build

Compiling minigrep v0.1.0

(/XXXXXX/rustStudy/minigrep6)

Finished dev [unoptimized + debuginfo] target(s) in 1.05s

$ cargo run

————————————————

posted @ 2022-10-12 10:28  土著古  阅读(1616)  评论(0)    收藏  举报