最近找到了个非常好用的http server
,用rust写的:链接
一开始我只是想下载试试用一用,却发现release
只有远古的0.6版本,新版本需要自己编译
于是我便尝试搭建Rust
的编译环境——其实蛮简单的
然后遇到了很多坑
编译的时候我首先遇到了rust-toolchain需要nightly的编译器的错误,但是我已经默认是nightly了
报错提示
1 2 3 4 5 6
| error: failed to run `rustc` to learn about target-specific information
Caused by: process didn't exit successfully: `rustc - --crate-name ___ --print=file-names -Ctarget-feature=+crt-static -Zunstable-options --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg` (exit code: 1) --- stderr error: the option `Z` is only accepted on the nightly compiler
|
经过一番排查,发现是项目自定义的文件rust-toolchain
里写错了,安装并更换nightly的编译器,并且删除rust-toolchain
就能搞定。
然后我又遇到了另一令人迷惑的错误:
1 2 3 4 5 6 7
| F:\Git\simple-http-server>cargo build warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������) warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������) warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������) warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������) warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������) warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ���������������������)
|
报错很长,最后是无法访问https://crates-io.proxy.ustclug.org/api/v1/crates/adler/0.2.3/download
我把这玩意复制到浏览器,发现没问题能下载
百思不得其解的我又用curl
再次访问:
1 2
| > curl -I https://crates-io.proxy.ustclug.org/api/v1/crates/adler/0.2.3/download curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - 由于吊销服务器已脱机,吊销功能 无法检查吊销。
|
??????
google一番,发现好像是WinSSL / WinTLS
的问题(垃圾windows)
curl
加上--ssl-no-revoke
参数就可以访问了
解决方法
设置环境变量CARGO_HTTP_CHECK_REVOKE为false:
1
| >set CARGO_HTTP_CHECK_REVOKE=false
|
或者在你的%HOMEDRIVE%%HOMEPATH%\.cargo\config
文件内添加(没有则创建)
1 2
| [http] check-revoke = false
|
即可
《完》