Rust Installation with Configuration on Linux
References:
Rust简介
典故:怒爬21层楼后决定开发新语言
万事起源只在于2006年的某天,一位名叫格雷顿老哥(Graydon Hoare)住的那栋公寓,电梯又坏了。
第n次,他一边骂骂咧咧一边努力爬向自己位于21楼的家。他想不通,电梯系统咋就这么容易崩溃呢?不应该呀!
作为一名大厂码农,格雷顿老哥觉得,这事儿不是不能解决。
当时他29岁,正在开源网页浏览器Mozilla公司(火狐背后的公司)打工。作为业内人士,他深知大多数的电梯故障,都是编写程序的语言很容易意外引入内存错误,从而引发软件崩溃。
而当时电梯软件往往是用C或C++语言编写。
它们的优点是紧凑、快速,但问题是非常容易引发内存错误,导致系统崩溃,甚至是安全问题。
所以一不做二不休,格雷顿老哥为了不再爬楼,干脆决定搞个新编程语言出来。
目标就是不容易内存错误的语言,最好更短、更快。
于是,Rust语言诞生了。
为什么选择 Rust ?
-
高性能
高性能是所有语言的最高追求,Rust 也不例外。为了追求极致的性能,Rust 抛弃了 C/C++ 之外的语言都有的 垃圾回收器( Garbage Collector (GC))。也就是消除了垃圾回收机制带来的性能损耗。 -
高并发
Rust 的 拥有者(ownership) 概念和 内存安全 规则使得它天生支持高并发,而且是支持没有数据竞争的高并发。 -
高安全
Rust 虽然也有指针的概念,但这个概念被大大的弱化,因此它没有 C/C++ 那种悬空指针,缓冲区溢出和内存泄漏等等问题。 -
Web Assembly
Rust 的目标是成为高并发且高安全的系统级语言,但这并不代表它就不能开发 Web 应用。Rust 支持通过把代码编译成WASM从而能够在浏览器端以实现快速,可靠的运行。
WASM是被设计用来在浏览器端/嵌入式设别上运行的,用于执行 CPU 计算密集型的语言。也就是说WASM的目标是和Javascript一样能够在浏览器里运行,但因为是编译型,所以更高效。 -
嵌入式
嵌入式程序常常遇到的是内存问题,而Rust拥有快速和高度优化的内存模型且可以保证编写的程序只要通过编译器检查即是内存安全的。在嵌入式开发中使用Rust可以享受Rust的所有特性带来的优势,而无需牺牲灵活性或稳定性
Rust安装
- 安装依赖
# Debian系
sudo apt install curl wget vim build-essential -y
# RHEL系
sudo yum install curl wget vim make automake gcc gcc-c++ kernel-devel -y
# Arch系
sudo pacman -S curl wget vim base-devel
- 配置代理提高下载速度
# 用于更新 toolchain
export RUSTUP_DIST_SERVER="https://mirrors.ustc.edu.cn/rust-static"
# 用于更新 rustup
export RUSTUP_UPDATE_ROOT="https://mirrors.ustc.edu.cn/rust-static/rustup"
- 自定义rustup、cargo安装地址
# rustup home dir
export RUSTUP_HOME="$HOME/rust/.rustup"
# rust cargo home dir
export CARGO_HOME="$HOME/rust/.cargo"
- 下载并执行安装脚本(官方推荐)
# 脚本运行,选项默认即可
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
# 执行命令立即生效Rust环境变量或通过重启终端生效,因为此文件已被加入~/.bashrc文件中执行
source $CARGO_HOME/env
- 验证Rust版本
rustc --version
# rustc 1.76.0 (07dca489a 2024-02-04)
rustup --version
# rustup 1.27.0 (bbb9276d2 2024-03-08)
# info: This is the version for the rustup toolchain manager, not the rustc compiler.
# info: The currently active `rustc` version is `rustc 1.76.0 (07dca489a 2024-02-04)`
cargo --version
# cargo 1.76.0 (c84b36747 2024-01-18)
- 配置Crates国内镜像源
创建config配置文件
touch $CARGO_HOME/config
然后在 config 文件内写入下述配置内容。
# 注:cargo版本必须大于或等于1.68才可如此配置
# 因为cargo1.68版本开始支持稀疏索引:不再需要完整克隆crates.io-index仓库
[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
至此,Rust安装以及配置完毕。
Rust更新版本
通过rustup安装Rust,更新到最新版本只需要在命令行中运行如下更新脚本(通过其他方式安装Rust则不一定有效):
rustup update
Rust卸载
若要卸载 Rust 和 rustup,在命令行中运行如下卸载脚本:
rustup self uninstall