在gentoo上更好地使用rust

4 篇文章 1 订阅

更多分享内容可访问我的个人博客

https://www.niuiic.top/

本文介绍在 gentoo 上避开 portage 使用 rust 的方法以及 rust 编译缓存的设置。

使用官方 rust

rust 官方提供的 rust 安装方式为curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh。你可以使用该命令安装官方 rust 工具链。但是 gentoo 系统并不会自动识别你安装的 rust。因此在安装一些由 rust 编译的软件时,包管理系统依旧会先编译 rust。之所以不推荐使用系统编译的 rust,主要还是编译耗时太长,对于需要多个版本编译链的用户并不友好。接下来,说明如何使包管理系统识别到用户自己安装的 rust。

首先,执行以下命令。

sudo mkdir -p /etc/portage/profile/package.provided

该目录用于向包管理系统标记已经安装的程序。

编辑/etc/portage/profile/package.provided/rust,写入已经存在的程序。

dev-lang/rust-1.50.0
virtual/rust-1.50.0
dev-util/cargo-1.50.0
dev-util/rustup-1.23.0

注意,必须指明版本,查看当前软件的版本写入即可,之后如果有升级也不必修改,除非软件依赖要求更高版本。

编辑/etc/portage/profile/profile.bashrc,写入已安装的这些软件的路径。

export PATH="/home/yourname/.cargo/bin:$PATH"

STABLE=/home/yourname/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
rustup toolchain link build-stable $STABLE &> /dev/null
rustup default build-stable &> /dev/null

建议使用 stable 版本的工具链。另外使用自己的用户名。

至此,包管理系统已经可以自动识别并使用用户自行安装的 rust,如果不放心,你也可以进一步 mask 掉这些包。

rust 编译缓存

C、C++的编译可以使用 ccache 作为缓存器,这样下次编译时会调用本次的成果,可以大大节省编译时间。对于 rust 而言,这个工具是 sccache。

执行以下命令。

emerge --ask dev-util/sccache
mkdir -p /var/cache/sccache
chown root:portage /var/cache/sccache
chmod 2775 /var/cache/sccache

编辑/etc/sandbox.d/20sccache,写入

SANDBOX_WRITE="/var/cache/sccache/"

编辑/etc/portage/make.conf,写入

RUSTC_WRAPPER=/usr/bin/sccache
SCCACHE_DIR=/var/cache/sccache
SCCACHE_MAX_FRAME_LENGTH=104857600
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值