游乐游手机版
首页/编程语言/文章详情

Ubuntu Rust开发环境怎么搭建

时间:2026-05-04 22:04
Ubuntu Rust 开发环境搭建指南 一 安装方式与选择 搭建Rust环境,第一步得选对安装方式。目前主流有两种路径,各有侧重。 首选是 rustup。这是官方推荐的安装管理器,优势很明显:它能让你无缝获取最新的稳定版、测试版甚至夜间版工具链,并且在不同项目间灵活切换版本。安装时,Cargo、r

Ubuntu Rust 开发环境搭建指南

Ubuntu Rust开发环境怎么搭建

一 安装方式与选择

搭建Rust环境,第一步得选对安装方式。目前主流有两种路径,各有侧重。

首选是 rustup。这是官方推荐的安装管理器,优势很明显:它能让你无缝获取最新的稳定版、测试版甚至夜间版工具链,并且在不同项目间灵活切换版本。安装时,Cargo、rustc、Clippy、rustfmt这些核心组件会一并集成到位,非常省心。

另一种是通过系统的 APT 包管理器安装。这种方式适合那些只需要在系统层面简单使用、且对版本要求不高的场景。但有个现实问题:APT仓库里的Rust版本通常比较滞后。比如在Ubuntu 22.04上,你可能只能安装到1.61这样的旧版本,而官方稳定版可能已经迭代了好几轮。

无论选择哪种方式,准备工作都建议做一下:提前安装好curlbuild-essentialgccmake这些编译依赖。这能有效避免后续可能出现的链接器缺失等令人头疼的问题。

二 使用 rustup 安装与初始化

如果你决定采用rustup,那么跟着下面这套流程走,基本能搞定所有问题。整个过程在非root用户下执行即可,安装内容会放在你的用户目录下。

首先,更新包列表并安装基础依赖:

sudo apt update && sudo apt install -y curl build-essential gcc make

接着,拉取并执行官方安装脚本:

curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh

脚本运行后,通常会提示你选择安装类型。对于大多数开发者,直接选择默认选项(安装稳定版及默认组件)是最稳妥的。

安装完成后,关键一步是加载环境变量,让终端能识别到新安装的命令:

source “$HOME/.cargo/env”

然后,就可以验证一下安装是否成功了:

rustc -V
cargo -V
which rustc && which cargo

看到版本号输出,并且which命令能定位到可执行文件,就说明安装妥了。

rustup本身也提供了一系列便捷的管理命令,这里列举几个最常用的:

  • rustup update:更新所有已安装的工具链。
  • rustup toolchain list:查看当前安装了哪些版本的工具链。
  • rustup default nightly:将默认工具链切换到“夜间版”(根据你的开发需求选择)。
  • rustup show:查看当前的rustup配置详情。

最后,万一哪天想彻底卸载,操作也很简单,直接删除两个目录即可:

rm -rf ~/.cargo ~/.rustup

三 中国大陆加速与镜像配置

对于国内开发者来说,网络速度是个绕不开的话题。好在有国内镜像源可以大幅提升体验。

配置主要分两块:

第一块是 rustup 自身的安装和更新镜像。 这需要在运行安装脚本之前设置环境变量:

export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

第二块是 Cargo 的包索引和注册表镜像。 这需要修改Cargo的配置文件。创建或编辑~/.cargo/config.toml文件,加入以下内容:

[registries.crates-io]
index = “https://mirrors.tuna.tsinghua.edu.cn/crates.io-index”

配置镜像后,无论是安装工具链还是后续下载项目依赖,速度都会有质的飞跃。如果某个镜像出现不稳定,切换其他可用的镜像源(如阿里云等)即可。

四 第一个项目与常用工作流

环境配好了,不写个“Hello, World!”怎么行?Rust的官方构建工具Cargo让这一切变得极其简单。

你可以用一行命令创建并进入一个新项目:

cargo new hello-world && cd hello-world

进入项目目录后,Cargo的核心命令就派上用场了:

  • cargo build:编译项目。
  • cargo test:运行项目中所有的单元测试。
  • cargo run:编译并直接运行项目。
  • cargo build --release:进行发布构建(会进行更多优化,适合最终部署)。

当然,如果你想体验最原始的编译过程,也可以直接使用rustc编译器:

echo ‘fn main(){println!(“Hello, Rust!”);}’ > main.rs
rustc main.rs && ./main

对于工程化开发,Rust生态还提供了一系列提升效率的工具,它们可以通过rustup轻松安装或启用:

  • rustfmt:代码格式化工具,让代码风格统一。
  • Clippy:静态分析工具,能捕捉代码中的常见错误和“坏味道”。
  • rust-analyzer:强大的语言服务器,为VS Code等编辑器提供代码补全、跳转定义等智能功能。

五 常见问题与排查

搭建过程中难免会遇到一些小麻烦,这里汇总了几个典型问题及解决方案:

1. 编译时报错 linker ‘cc’ not found
这个问题很常见,根本原因是缺少C语言的链接器。解决方法就是安装基础的编译工具链:sudo apt install build-essential gcc

2. APT 安装的版本过旧
如果你发现通过apt install rustc安装的版本太低,无法满足需求,那么最直接的解决方案就是卸载它,然后按照本文第二部分,改用rustup进行安装。

3. 安装或更新速度极其缓慢
这几乎就是网络问题。请务必参照本文第三部分,正确配置rustup与Cargo的国内镜像源,下载速度会立刻改善。

4. 权限与环境问题
有两点需要特别注意:首先,rustup默认是用户级安装,千万不要使用sudo来运行rustup或cargo命令,这会导致权限混乱。其次,安装后如果终端提示找不到命令,通常是环境变量未加载,执行source “$HOME/.cargo/env”或直接重启终端即可。

来源:https://www.yisu.com/ask/34638988.html
上一篇Ubuntu Rust项目如何构建 下一篇Golang在Ubuntu中如何配置环境
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Java序列化中ObjectStreamField自定义字段控制详解
编程语言 · 2026-05-11

Java序列化中ObjectStreamField自定义字段控制详解

ObjectStreamField是描述序列化字段的元信息载体。通过声明serialPersistentFields数组并确保字段名、类型、顺序与类定义严格一致,可控制序列化字段。字段不匹配会导致静默反序列化失败。配合writeObject readObject方法可实现动态控制。应避免使用isUnshared、getOffset等底层方法。

实时操作系统RTOS线程调度与Java强实时变量处理对比分析
编程语言 · 2026-05-11

实时操作系统RTOS线程调度与Java强实时变量处理对比分析

实时操作系统(RTOS)通过优先级调度和中断机制确保微秒级确定性,而Java因垃圾回收、同步延迟和内存分配不确定性,难以满足强实时场景的严格时间要求,因此这类系统通常将核心逻辑交由RTOS处理。

Java并行流性能优化CollectorsgroupingByConcurrent方法详解
编程语言 · 2026-05-11

Java并行流性能优化CollectorsgroupingByConcurrent方法详解

Collectors groupingByConcurrent专为无需保持插入顺序、高并发写入的场景设计,能显著提升并行流分组性能。其底层通过所有线程直接写入同一个ConcurrentHashMap,避免了普通groupingBy的合并开销。适用于日志聚合、实时统计等高吞吐任务,但不适用于要求分组顺序的场景。使用时必须搭配并行流,且不支持自定义有序Map。在

循环队列数组实现详解头尾指针操作与取模运算实战指南
编程语言 · 2026-05-11

循环队列数组实现详解头尾指针操作与取模运算实战指南

循环队列通过数组实现,核心在于头尾指针的职责与取模运算。front指向队首,rear指向下一个空位,移动时需取模以确保回环。判空条件为front等于rear,判满则需牺牲一个存储单元。入队和出队操作后需立即取模,避免越界。动态内存管理时需注意分配与释放顺序,防止内存泄漏。

ThinkPHP入口文件配置参数修改与环境变量动态加载指南
编程语言 · 2026-05-11

ThinkPHP入口文件配置参数修改与环境变量动态加载指南

在ThinkPHP框架中动态调整数据库连接等配置参数,是许多开发者实现多环境部署的核心需求。然而,你是否曾遇到这样的困境:在入口文件中修改了配置值,刷新页面后却发现更改并未生效?这通常源于对框架配置加载机制的理解偏差。 本文将深入解析ThinkPHP配置生效的唯一正确路径,帮助你彻底规避“本地测试通