当前博客需要在有gcc的CentOS上安装,要是没有的话,可以连上互联网之后执行yum install -y gcc
免确认安装gcc。
因为服务器在国外,网速比较慢,可能无法安装成功。可以使用vim /etc/profile
打开环境配置,然后在最后添加下边的两条命令进行国内下载安装文件地址配置:
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
然后在使用source /etc/profile
让环境配置立马生效。
使用curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
通过网络进行安装之后,在中间需要输入1、2、3中的一个数字。输入“1”表示默认安装,输入“2”表示自定制服务,输入“3”表示取消安装。
使用rustc -V
查看环境变量是否生效了。可以看到下边的图片,发现刚刚安装成功的时候,环境没有生效,使用source $HOME/.cargo/env
使环境生效。
我在当前目录下写一个helloworld.rs文件,然后进行编译,看一下运行结果。
helloworld.rs内容如下:
fn main(){
let test = "Hello, I love the world!";
println!("{}",test);
}
然后使用rustc helloworld.rs
进行编译,然后使用./helloworld
运行。
使用vim ${HOME}/.cargo/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"
下边新建一个引用外部依赖包产生一个0(包括)到100(包括)之间的数项目进行测试是否设置正确。
cargo new rustrandom
创建二进制程序。
使用cd rustrandom
进入到相应目录下,然后yum install tree
安装tree工具,使用tree -F .
查看当前目录下的文件结构。
在Cargo.toml的最后填的内容:
rand = "0.6.5"
在src/main.rs中填上下边的内容:
extern crate rand;
use rand::Rng;
fn main() {
let num = rand::thread_rng().gen_range(0, 100);
println!("生成在0(包括)到100(包括)之间的数:{}", num);
}
然后在当前rustrandom目录下,使用cargo run
进行编译运行,这次运行的结果是77。
这样正确设置了国内的依赖包下载地址。
我故意将registry = "git://mirrors.ustc.edu.cn/crates.io-index"写成了registry = “git://mirrors.ustc.edu.cn/crates.o-index”,然后设置报错如下:
Updating `ustc` index
warning: spurious network error (2 tries remaining): remote error: access denied or repository not exported: /crates.o-index; class=Net (12)
warning: spurious network error (1 tries remaining): remote error: access denied or repository not exported: /crates.o-index; class=Net (12)
error: failed to get `rand` as a dependency of package `rustrand v0.1.0 (/root/rustrand)`
Caused by:
failed to load source for dependency `rand`
Caused by:
Unable to update registry `crates-io`
Caused by:
failed to update replaced source registry `crates-io`
Caused by:
failed to fetch `git://mirrors.ustc.edu.cn/crates.o-index`
Caused by:
network failure seems to have happened
if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
Caused by:
remote error: access denied or repository not exported: /crates.o-index; class=Net (12)
到这里Rust编译环境搭建成功,而且也用正确事例和错误事例测试了。