官方文档有安装说明:
https://www.rust-lang.org/zh-CN/learn/get-started
终端运行
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
显示如下,按1回车
default host triple: x86_64-unknown-linux-gnu
default toolchain: stable (default)
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1
安装完成
Rust is installed now. Great!
To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.
To configure your current shell run source $HOME/.cargo/env
运行以下命令,当前更新当前终端环境变量
source $HOME/.cargo/env
以上是安装rustup,rustup是Rust安装器和版本管理工具,包括编译器、标准库、cargo等。
国内提高访问速度,建议设置环境变量
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
更新rustup本身
rustup self update
卸载rust所有程序
rustup self uninstall
更新工具链
rustup update
安装nightly版本的编译工具链
rustup install nightly
设置默认工具链是nightly
rustup default nightly
官方的管理仓库在https://crates.io/
为了解决网络文帝,可以利用USTC提供的代理服务,在$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"
RLS是官方提供的一个标准化的编辑器增强工具。项目地址在https://github.com/rust-lang-nursery/rls。
安装RLS
rustup component add rls --toolchain nightly
rustup component add rust-analysis --toolchain nightly
rustup component add rust-src --toolchain nightly
创建项目
cargo new hello-rust
生成一个名为 hello-rust 的新目录,其中包含以下文件:
hello-rust
|- Cargo.toml
|- src
|- main.rs
// Cargo.toml 为 Rust 的清单文件。其中包含了项目的元数据和依赖库
// src/main.rs 为编写应用代码的地方。
在生成的目录下运行:
hello-rust$ cargo run
Compiling hello-rust v0.1.0 (/home/bowei/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 0.45s
Running `target/debug/hello-rust`
Hello, world!
添加依赖。Cargo.toml 文件中添加以下信息
[dependencies]
ferris-says = "0.1"
安装依赖
cargo build
生成的新文件 Cargo.lock记录了本地所用依赖库的精确版本。
修改main.rs
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};
fn main() {
let stdout = stdout();
let message = String::from("Hello fellow Rustaceans!");
let width = message.chars().count();
let mut writer = BufWriter::new(stdout.lock());
say(message.as_bytes(), width, &mut writer).unwrap();
}
运行cargo run
$ cargo run
Compiling hello-rust v0.1.0 (/home/bowei/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 0.55s
Running `/home/bowei/hello-rust/target/debug/hello-rust`
----------------------------
| Hello fellow Rustaceans! |
----------------------------
\
\
_~^~^~_
\) / o o \ (/
'_ - _'
/ '-----' \
检查是否安装了 Rust 和 Cargo
cargo --version
查看rustc的版本
rustc -V
查看rustc的基本用法
rustc -h
查看cargo的基本用法
cargo -h