当前博客需要在有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”表示取消安装。

centos编译java centos编译环境_rust

centos编译java centos编译环境_sed_02


使用rustc -V查看环境变量是否生效了。可以看到下边的图片,发现刚刚安装成功的时候,环境没有生效,使用source $HOME/.cargo/env使环境生效。

centos编译java centos编译环境_依赖包_03


我在当前目录下写一个helloworld.rs文件,然后进行编译,看一下运行结果。

helloworld.rs内容如下:

fn main(){
        let test = "Hello, I love the world!";
        println!("{}",test);
}

然后使用rustc helloworld.rs进行编译,然后使用./helloworld运行。

centos编译java centos编译环境_git_04


使用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创建二进制程序。

centos编译java centos编译环境_rust_05


使用cd rustrandom进入到相应目录下,然后yum install tree安装tree工具,使用tree -F .查看当前目录下的文件结构。

centos编译java centos编译环境_sed_06


centos编译java centos编译环境_rust_07

centos编译java centos编译环境_centos编译java_08


在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);
}

centos编译java centos编译环境_centos编译java_09


然后在当前rustrandom目录下,使用cargo run进行编译运行,这次运行的结果是77。

centos编译java centos编译环境_git_10


这样正确设置了国内的依赖包下载地址。

我故意将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)

centos编译java centos编译环境_git_11


到这里Rust编译环境搭建成功,而且也用正确事例和错误事例测试了。