是什么 ? | : | Rust toolchains |
开发语言 | : | C |
官方主页 | : | https://www.rust-lang.org |
源码仓库 | : | https://github.com/rust-lang/rust |
export CARGO_HOME=$HOME/.cargo
export RUSTUP_HOME=$HOME/.rustup
export PATH="$CARGO_HOME/bin:$PATH"
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
step2、安装依赖
安装时 | bash、CoreUtils、cURL |
运行时 |
curl -sSf https://sh.rustup.rs | bash
说明:
这个安装脚本的作用是去下载一个rustup-init
的可执行文件, 你可以把它当成是RustToolchains
的安装程序。它又去下载RustToolchains
, 并且,他把这两个东西分别安装在$HOME/.rustup
和$HOME/.cargo
目录中。这两个目录你可以随意移动到其他位置, 不过,移动到其他地方之后,一定要修改对应的环境变量RUSTUP_HOME
和CARGO_HOME
。
RUSTUP_UPDATE_ROOT
是rustup-init
的下载地址的前面部分。
RUSTUP_DIST_SERVER
是RustToolchains
的下载地址的前面部分。
step4、设置rust-crates
的服务器地址为国内镜像
cat > $CARGO_HOME/config <<EOF
[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"
EOF
step1、安装依赖
所有时 | Terminal + Shell + GNU CoreUtils |
下载时 | cURL |
解压时 | tar + gzip |
编译时 | cmake、 ( gcc + g++ ) / GCC | Clang / LLVM、CPython |
运行时 |
step2、使用curl命令下载RustToolchains
源码包 ()
curl -LO https://static.rust-lang.org/dist/rustc-1.40.0-src.tar.gz
step3、使用tar解压RustToolchains
源码包
tar vxf rustc-1.40.0-src.tar.gz
step4、进入rustc-1.40.0-src
目录
cd rustc-1.40.0-src
step5、查看rustc-1.40.0-src
目录的内容
step6、使用./configure
配置编译参数
./configure
是一个可执行的POSIX sh脚本,用它 配置后会产生config.toml
。
./configure
的使用格式如下:
./configure [option]...
option | 说明 | |
---|---|---|
--help | -h | 查看./configure 的使用帮助 | |
--prefix=DIR | 指定安装目录,默认为/usr/local/ | |
--host=HOST | 设置目标程序运行的CPU平台 一般不需要设置,除非你想要 交叉编译 默认与宿主机一样 | |
--enable-debug | 调试选项。 rust.debug | |
--enable-vendor | 使用vendor 目录下的库 | |
--enable-rpath | runtime path 硬编码动态库 的搜索路径 | |
--enable-ninja | 使用ninja构建LLVM | |
--enable-use-libcxx | 使用libc++ 构建LLVM | |
--enable-optimize-llvm | 构建LLVM时候进行优化 | |
--enable-optimize | 构建rust 代码的时候进行优化 |
注意:
与enable-FEATURE
相反的选项disable-FEATURE
。
示例:
./configure --prefix=/usr
step7、编译、安装
./x.py build && ./x.py install
1、创建$HOME/docker_volume/debian/stretch/sources.list.aliyun
:
mkdir -p $HOME/docker_volume/debian/stretch
cat > $HOME/docker_volume/debian/stretch/sources.list.aliyun <<EOF
deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb http://mirrors.aliyun.com/debian-security stretch/updates main
deb-src http://mirrors.aliyun.com/debian-security stretch/updates main
deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
EOF
2、创建$HOME/docker_volume/rust/cargo/config
:
mkdir -p $HOME/docker_volume/rust/cargo
cat > $HOME/docker_volume/rust/cargo/config <<EOF
[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"
3、在环境变量配置文件中加入如下的代码:
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
rust() {
docker run \
-it \
--rm \
-v $HOME/docker_volume/debian/stretch/sources.list.aliyun:/etc/apt/sources.list \
-v $HOME/docker_volume/rust/cargo/config:/usr/local/cargo/config \
-v $PWD:/usr/src \
-e RUST_BACKTRACE=1 \
-e RUSTUP_UPDATE_ROOT=$RUSTUP_UPDATE_ROOT \
-e RUSTUP_DIST_SERVER=$RUSTUP_DIST_SERVER \
-w /usr/src \
rust:1.42.0-slim \
$@
}
4、使用示例
rust cargo build --release