当前位置:首页>Linux>国产电脑(统信UOS/麒麟)也能用!Linux配置Rust环境完整教程,含国内镜像加速

国产电脑(统信UOS/麒麟)也能用!Linux配置Rust环境完整教程,含国内镜像加速

  • 2026-10-11 08:18:48
国产电脑(统信UOS/麒麟)也能用!Linux配置Rust环境完整教程,含国内镜像加速

在 Linux 系统上配置 Rust 编程环境,核心思路是使用官方工具rustup来安装并管理工具链。

安装 Rust 工具链

基于Debian体系,直接使用 Ubuntu/Debian 的软件包管理方式。使用rustup安装 Rust 是较稳妥的选择,因为它会为你安装一个独立的、较新的工具链,而系统自带的rustc版本可能过旧。

首选方案:使用官方rustup安装

这种方法最通用,能确保获得最新版本的 Rust 工具链,并支持多版本共

第一步:安装依赖

sudo apt update# 安装编译工具链(如果还没有)sudo apt install -y build-essential pkg-config# 如果将来需要编译一些依赖系统库的 crate,可能需要sudo apt install -y libssl-dev libudev-dev

第二步:使用 rustup 安装 Rust

#下载并运行安装脚本curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装过程中出现提示,按回车键默认安装即可。

第三步:配置环境变量

安装完成后,运行以下命令让 Rust 命令立即生效:

source $HOME/.cargo/env

第四步:配置国内镜像源

为了避免下载依赖时网络超时,配置 Cargo 使用国内镜像:

#创建 Cargo 配置目录mkdir -p ~/.cargo# 写入配置(使用中科大镜像)cat > ~/.cargo/config << 'EOF'[source.crates-io]replace-with = 'ustc'[source.ustc]registry = "https://mirrors.ustc.edu.cn/crates.io-index"[net]git-fetch-with-cli = trueEOF

第五步:验证安装

#查看 Rust 版本rustc --version# 查看 Cargo 版本cargo --version# 查看工具链安装位置which rustc# 应该显示 /home/gxxc/.cargo/bin/rustc(用户目录下,与系统隔离)

第六步:创建第一个项目测试

#创建一个新项目cargo new hello_linuxcd hello_linux# 编译并运行cargo run
创建的文件夹:

下面分析一个Bevy测试程序

use bevy::prelude::*;use bevy::app::AppExit;fnmain() {    App::new()    // ==配置与插件==    .add_plugins(DefaultPlugins.set(WindowPlugin {            primary_window: Some(Window {                title: "Bevy 0.12 Test".into(),                resolution: (800., 600.).into(),                ..default()            }),            ..default()        }))         .add_systems(Startup, setup)        .add_systems(Update, exit_on_esc)    // ==配置与插件==    .run();}

App::new()创建了一个新的 Bevy 应用实例,然后通过链式调用(.)为其添加各种配置和功能,最后.run()启动游戏主循环。

.add_plugins(DefaultPlugins):这是 Bevy 的“开箱即用”开关。DefaultPlugins是一个插件的集合,它会自动帮你设置好窗口管理、2D/3D 渲染、音频、输入处理、UI 系统等一系列核心功能。没有它,你的程序只是一个空壳,无法显示任何东西。

.set(WindowPlugin {...}):我们修改了默认的WindowPlugin插件,来定制自己的窗口。在这里,我们将窗口的title(标题)设置为 "Bevy 0.12 Test",resolution(分辨率)设置为800x600。..default()是一个语法糖,表示“其余所有设置都保持默认值”。

.add_systems(Startup, setup).add_systems(Update, exit_on_esc)

这是整个程序最核心的逻辑连接,它定义了“在什么时机做什么事”。

.add_systems(Startup, setup):这条命令告诉 Bevy,在程序刚启动时,只运行一次setup这个系统(函数)。这里通常用来初始化相机、加载资源、生成初始的实体。

.add_systems(Update, exit_on_esc):这条命令告诉 Bevy,在每一帧(Update)的更新阶段,都要运行一次exit_on_esc系统。它就像一个永不停歇的监听器,每时每刻都在检查 ESC 键是否被按下。

fnsetup(mut commands: Commands) { commands.spawn(Camera2dBundle::default()); commands.spawn(TextBundle::from_section(  "Bevy 0.12 on ARM64!\nPress ESC Exit",  TextStyle {  font_size: 50.0,  color: Color::GREEN,  ..default() }, ).with_style(Style {  position_type: PositionType::Absolute,  top: Val::Px(50.0),  left: Val::Px(50.0),  ..default() }));}

setup是一个系统,它的参数mut commands: Commands是一个命令缓冲区,可以理解成一个“待办清单”。在 Bevy 的 ECS 架构中,我们不能直接“创建”一个物体,而是要“下达命令”来生成它。

1. 第1个commands.spawn命令生成了一个 2D 相机实体。Camera2dBundle是一个包含了位置、投影矩阵等相机所需组件的“套餐”,::default()表示使用它默认的设置。没有相机,你就看不到游戏世界中的任何东西。

2. 第2个commands.spawn命令生成了一个文本实体。

  • TextBundle::from_section(...):创建了一个包含文本的套餐。

  • TextStyle:定义了文字的样式,字号 50.0,颜色 GREEN。

  • .with_style(Style {...}):定义了这个文本在屏幕上的布局,PositionType::Absolute 表示绝对定位,top: 50.0, left: 50.0 将它固定在距离窗口左上角 50 像素的位置。

//这个系统会在每一帧都被调用,用来检查输入并决定是否退出。fnexit_on_esc( keyboard_input: Res<Input<KeyCode>>,  mut exit: EventWriter<AppExit>,) { if keyboard_input.just_pressed(KeyCode::Escape) { exit.send(AppExit); }}

最新文章

随机文章