外观
本地搭建 Rust 开发环境
这篇文章记录一下我在 Ubuntu 24.04 上搭建 Rust 开发环境的完整过程。 在 Ubuntu 上装 Rust,有两条常见路:
- 用
apt install rustc cargo安装系统仓库版本; - 用
rustup安装 Rust 官方工具链。
如果你的目标是认真学 Rust,或者后面要跟官方文档、社区教程、第三方库保持一致,更推荐直接用 rustup。
原因很简单:
- 官方工具链通常更新更及时;
- 可以方便地切换 stable、beta、nightly;
rustfmt、clippy、rust-analyzer这些组件管理更统一;- 以后升级工具链只需要一条命令。
所以,下面的流程默认采用 rustup。
先检查系统编译依赖
Rust 本身会通过 rustup 安装,但很多项目在编译时还会依赖系统编译器和常见开发库。
先把这些基础依赖装上:
sudo apt update
sudo apt install \
build-essential \
pkg-config \
libssl-dev这几个包的作用分别是:
build-essential:提供gcc、g++、make等基础编译工具;pkg-config:很多原生依赖库会用它查找头文件和链接参数;libssl-dev:后面如果用到reqwest、openssl等库,通常会需要它。
安装 Rust 官方工具链
先执行官方安装脚本:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y这里的 -y 表示直接接受默认配置。对大多数本地学习环境来说,默认配置就够用了。
安装完成后,Rust 的可执行文件通常会放在:
~/.cargo/bin例如:
~/.cargo/bin/rustc
~/.cargo/bin/cargo
~/.cargo/bin/rustup让当前 shell 识别 cargo
安装脚本通常会自动把下面这一行加到 shell 启动文件里:
. "$HOME/.cargo/env"检查版本:
rustc --version
cargo --version
rustup --version我这次安装后拿到的是:
rustc 1.96.0
cargo 1.96.0
rustup 1.29.0如果你之后重新打开终端,cargo 仍然提示找不到命令,就去检查 ~/.bashrc 或 ~/.profile 里是否已经包含了那行 source。
安装常用开发组件
只装 rustc 和 cargo 还不够。实际开发里,建议至少把下面几个组件一起装上:
rustup component add rustfmt clippy rust-analyzer它们分别负责:
rustfmt:代码格式化;clippy:静态检查和代码风格建议;rust-analyzer:编辑器语义分析、跳转、补全、报错提示。
如果以后要看标准库源码,也可以再装:
rustup component add rust-src创建第一个 Rust 项目
工具链就绪后,可以直接创建一个最小项目:
cargo new hello-rust
cd hello-rust这条命令会自动生成一个标准目录结构:
hello-rust/
├── Cargo.toml
└── src/
└── main.rs其中:
Cargo.toml是项目配置和依赖清单;src/main.rs是默认的可执行程序入口。
默认内容通常就是:
fn main() {
println!("Hello, world!");
}运行:
cargo run第一次运行时,Cargo 会先编译项目,然后执行生成的程序。
日常最常用的几条命令
学 Rust 的前期,最常用的命令其实就这几条:
cargo check
cargo build
cargo run
cargo test
cargo fmt
cargo clippy可以这样理解:
cargo check:只做类型检查和编译检查,不生成最终可执行文件,速度快;cargo build:正式编译;cargo run:编译并运行;cargo test:运行测试;cargo fmt:格式化代码;cargo clippy:跑一遍更严格的 lint。
刚开始写代码时,cargo check 和 cargo clippy 会比一遍遍直接 cargo run 更高效。
编辑器怎么接上 Rust:Vim
如果你也已经在用 vim-plug 和 YouCompleteMe,可以继续沿用 YCM,把 Rust 的语言服务接到 rust-analyzer。
先确认本机已经有:
cargorustcrust-analyzer
其中 rust-analyzer 可以通过 rustup 安装:
rustup component add rust-analyzer接着在 ~/.vimrc 里补一个 Rust 插件:
Plug 'rust-lang/rust.vim'然后在 YCM 配置里加入 rust-analyzer:
let g:ycm_language_server = [
\ {
\ 'name': 'rust-analyzer',
\ 'cmdline': [expand('~/.cargo/bin/rust-analyzer')],
\ 'filetypes': ['rust'],
\ 'project_root_files': ['Cargo.toml'],
\ 'workspace_root_files': ['Cargo.toml'],
\ },
\ ]如果希望保存时自动格式化,还可以加上:
let g:rustfmt_autosave = 1我自己还加了几个 Rust 文件专用快捷键:
autocmd FileType rust nnoremap <buffer> <leader>rr :!cargo run<CR>
autocmd FileType rust nnoremap <buffer> <leader>rt :!cargo test<CR>
autocmd FileType rust nnoremap <buffer> <leader>rc :!cargo check<CR>这样一来,Vim 里的常用体验就基本齐了:
- YCM 提供补全、类型信息和跳转;
rust-analyzer提供 Rust 语义分析;rust.vim负责文件类型、格式化等 Rust 相关细节;cargo check/run/test可以直接在编辑器里触发。
改完 ~/.vimrc 以后,打开 Vim 执行:
:PlugInstall然后重新打开一个 Rust 项目目录,例如包含 Cargo.toml 的工程,再打开 src/main.rs。如果配置正常,YCM 就会开始通过 rust-analyzer 提供 Rust 的补全和跳转。
升级工具链
以后如果要更新 Rust,直接运行:
rustup update如果想看当前有哪些工具链:
rustup show如果未来确实需要 nightly:
rustup toolchain install nightly
rustup default nightly不过对于学习和日常开发来说,默认的 stable 通常已经足够。
总结
在 Ubuntu 上搭建 Rust 本地开发环境,最推荐的路线就是:
- 安装基础编译依赖;
- 用
rustup安装官方工具链; - 确认
cargo已进入 PATH; - 安装
rustfmt、clippy、rust-analyzer; - 用
cargo new创建一个最小项目做验证。
这样配完以后,就已经有一套比较完整的 Rust 学习和开发环境了。后面再学所有权、借用、trait、错误处理时,就可以把注意力放回语言本身,而不需要和环境问题纠缠。
版权所有
版权归属:Guisong Wu