如何在 Ubuntu 22.04 上安装和使用 Rust 编程语言环境

news2024/12/19 1:38:08

简介

Rust 是一门由 Mozilla 开发的系统编程语言,专注于性能、可靠性和内存安全。它在没有垃圾收集的情况下实现了内存安全,这使其成为构建对性能要求苛刻的应用程序(如操作系统、游戏引擎和嵌入式系统)的理想选择。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

https://img-blog.csdnimg.cn/img_convert/4c16271f125adea69da6ed9e7b2a4226.png

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

https://img-blog.csdnimg.cn/img_convert/414570cd3da48d4cc4bf51489992000b.png

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

https://img-blog.csdnimg.cn/img_convert/c8afbeb764459a37a8451dd2ed8eeff1.png

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

https://img-blog.csdnimg.cn/img_convert/ea5814f1d1068ca9fa2bb94631cfbdf1.png

  • 到此为止,我们的云服务器就远程连接上了。

通过 APT 安装 Rust

默认的 Ubuntu 存储库提供了 Rust 编译器软件包。在撰写本文时,Ubuntu 存储库提供 Rust 编译器 v1.61。如果你只有一个 Rust 应用程序项目,并且不需要复杂的项目环境,那么通过 APT 安装 Rust 是一个不错的选择。

首先,运行以下 apt 命令来更新和刷新你的 Ubuntu 存储库。

sudo apt update

存储库更新后,运行以下 apt 命令在你的系统上安装 Rust。

sudo apt install rustc

出现提示时,输入 y 确认并按 ENTER 继续。

image.png

安装 Rust 后,运行以下命令来查找 Rust 二进制文件并验证系统上安装的当前 Rust 版本。

which rustc
rustc -Vv

你将收到类似于此屏幕截图的输出 - Rust 二进制文件位于 /usr/bin/rustc,并且系统上安装的当前 Rust 版本是 v1.61.0

image.png

安装 Rust 后,你将学习如何使用 Rust 创建第一个“Hello World”程序。

使用你的文本编辑器创建一个新文件 hello-world.rs。对于桌面用户,你可以使用诸如 vscodium 或 sublime-text 之类的代码编辑器。对于 CLI 用户,你可以使用 vim 或 nano。

sudo nano hello-world.rs

将以下代码添加到文件中。

fn main() {
    println!("Hello World, welcome to Rust.");
}

保存文件并在完成后退出编辑器。

接下来,使用以下 rustc 命令编译 rust 文件 hello-world.rs。这将在你当前的工作目录中生成一个可执行文件 hello-world

rustc hello-world.rs

代码编译完成后,执行终端的二进制文件 hello-world

./hello-world

你应该收到诸如 **Hello World, welcome to Rust.** 的输出。这确认 hello-world 应用程序已成功编译和执行。

image.png

现在,如果你想从你的机器上删除 Rust,你可以通过以下 apt 命令删除它。

sudo apt remove rustc
sudo apt autoremove -y

image.png

通过 rustup 安装 Rust

如果你想成为 Rust 开发人员,你必须了解 rustup 工具。这是你的 Rust 开发环境的工具链多路复用器。在功能上,rustup 类似于 Ruby 的 rbenv、Node.js 的 nvm 或 Python 的 Pyenv。

使用 rustup,你可以在你的系统上拥有一个隔离的 Rust 开发环境。你可以安装多个 Rust 版本,根据你的项目安装多个版本的开发工具,这些工具可以是用于多个操作系统的交叉编译器。

在此步骤中,你将在你的系统上安装 Rust 和 rustup。你将使用非 root 用户执行此操作,因此安装只会影响你的用户,而不会影响整个系统。

因此,在开始之前,请通过以下命令登录到你的用户。此示例使用名为 alice 的非 root 用户。

su - alice

现在,运行以下 apt 命令在你的 Ubuntu 系统上安装软件包依赖项。

sudo apt install curl build-essential gcc make

出现提示时,输入 y 并按 ENTER 继续。

https://www.notion.so

安装依赖项后,运行以下命令在当前用户环境中安装 rustup 和 Rust。此命令将下载 rustup 安装程序并在你的系统上执行它。

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

在第一个输出中,你应该看到诸如 **Welcome to Rust!** 的欢迎消息,并告知安装脚本将为 Rust 安装 Rust 和 Cargo 包管理器。此外,rustup 将安装在 /home/username/.rustup 目录中。

img

接下来,你将被要求在你的系统上设置 Rust 安装。这包括默认的 Rust 工具链(Stable、Beta 或 Nightly 版本)和安装 profile(包括 minimal、default 或 complete)。

对于初学者,你可以保留默认安装。输入 1 并按 ENTER 确认。然后,rustup、Rust 和 Cargo 的安装将开始。

image.png

安装完成后,你将收到诸如 Rust is installed now. Great! 的输出。此外,你将收到一条指令,要求重新加载当前 shell 以应用 PATH 环境变量的新更改。你也可以从当前会话手动重新加载它。

image.png

以下命令将新的 rustup 环境变量加载到当前会话。

source "$HOME/.cargo/env"

之后,运行以下命令来验证当前环境中安装的 Rust 版本,并验证 Rust 的二进制路径。

rustc -Vv
which rustc

你应该收到类似于此的输出 - 你已通过 rustup 安装了 Rust v1.66,并且 Rust 编译器的二进制文件位于 /home/username/.cargo/bin/rustc

此外,Rust 1.66 仅适用于你当前的用户,而不是整个系统

image.png

接下来,通过以下命令找到 Cargo 包管理器和 rustup 软件的二进制文件。

which cargo
which rustup

你应该看到 cargo 和 rustup 二进制文件都位于 '/home/username/.cargo/bin' 目录中。

最后,通过以下命令验证 Cargo 包管理器版本和 rustup 版本。

cargo --version
rustup --version

你将收到类似于此屏幕截图的输出 - Cargo 包管理器 v1.66 和 rustup 1.25 已安装在你的系统上。

image.png

这样,你现在已经安装了 Rust,其中包括 Rust 开发工具,例如 Cargo 包管理器、rustc、Clippy、rustfmt 和 rust-docs。在下一步中,你将学习如何通过 rustup 命令行管理你的 Rust 安装。

使用 rustup 管理 Rust 环境

rustup 是一个工具链多路复用器,允许你在你的环境中安装 Rust 编程语言,其中包括 Rust 开发工具,例如 Cargo 包管理器、rustc 等。你可以通过 rustup 安装多个版本的 Rust 编程语言和开发工具。这样,你可以使用不同版本的 Rust 编程语言轻松管理多个项目。

在这些步骤中,你将学习如何通过 rustup 命令管理你的 Rust 环境。你将安装多个 Rust 和开发工具版本,设置和切换到不同的 profile,并通过 rustup 更新你的 Rust 环境。

设置 rustup 命令自动补全

在开始之前,你将为 rustup 命令设置命令自动补全。启用自动补全后,你可以运行 rustup 命令,然后按 TAB 键以获取可用参数的列表。你现在将生成 rustup 自动补全脚本,将生成的脚本加载到你的 shell 中,然后验证自动补全。

通过以下 mkdir 命令创建一个新目录 ~/.local/share/bash-completion/completions/

mkdir -p ~/.local/share/bash-completion/completions/

运行以下命令以将 rustup 命令自动补全生成到 ~/.local/share/bash-completion/completions/rustup

rustup completions bash > ~/.local/share/bash-completion/completions/rustup

通过以下命令将自动补全加载到当前会话。

source ~/.local/share/bash-completion/completions/rustup

最后,键入命令 rustup 并按 TAB 键以获取 rustup 命令的自动补全。

rustup TAB

你现在将收到 rustup 命令的可用选项列表,如以下屏幕截图所示。

image.png

安装多个 Rust 版本和开发工具

在 rustup 环境中,有多个版本的工具链,包括 stable、beta 和 nightly。工具链是一组 Rust 编程语言和开发工具的软件包。因此,当你通过 rustup 安装多个版本的工具链时,这意味着你还安装了多个版本的 Rust 编程语言和多个版本的 Rust 开发工具。

在你的环境中安装多个工具链,使你可以使用不同版本的 Rust 编程语言管理多个项目。

首先,运行以下 rustup 命令以验证系统上的工具链或 rust 版本列表。你应该收到一个输出,表明 Rust stable 版本已安装在你的系统上。

rustup toolchain list

接下来,运行以下命令以安装另一个版本的 Rust/工具链。在此示例中,你将安装 Rust 的 Nightly 版本。

rustup toolchain install nightly

你现在将收到如下屏幕截图所示的输出 - 安装 Rust nightly 版本,包括 default rustup profile 上可用的 cargo 包管理器等开发工具。

image.png

安装新的 nightly 版本工具链后,运行以下命令以显示系统上已安装的工具链列表。

rustup toolchain list

你应该收到如下输出 - 你的系统上安装了两个版本的工具链,默认的 stable 版本和新安装的 nightly 版本。

image.png

接下来,运行以下命令将默认工具链切换到 nightly 版本。这意味着你还将开发工具切换到新的 nightly 版本。

rustup default nightly

然后,通过以下命令验证 Rust 版本。你应该获得已安装的 Nightly 版本的 Rust v1.6x,并且它已配置为当前环境中的默认 Rust。

rustc -Vv

image.png

此外,你还可以通过 rustup 命令手动运行特定版本的 Rust。运行以下命令以通过 rustup 命令运行特定的 Rust nightly 版本。

rustup run nightly rustc -Vv

你应该收到 Rust nightly 版本 1.68。这意味着你已通过 rustup 命令执行了特定版本的 Rust。你还可以执行其他组件,例如 Cargo 包管理器。

image.png

现在你已经了解了 rustup 中的工具链,接下来你将探索你环境中的 rustup profile。

设置 rustup 中的 Profile

你将学习的 rustup 中的另一个概念是“profile”,它是你的 Rust 环境的组件组。rustup 中有三个不同的 profile,列表如下:

  • minimal - 仅包括少数组件,例如 rustc 编译器、cargo 包管理器和 rust-std。
  • default - 此 profile 包括 minimal profile 中的组件,但也添加了一些其他工具,例如 rust-docs、rustfmt 和 Clippy。这是你通过 rustup 安装 Rust 时的默认 profile。
  • complete - 此 profile 包括通过 rustup 安装的所有 Rust 组件。除非你知道自己在做什么,否则你不应该使用此 profile。你始终可以通过 rustup 命令手动添加组件。

在本节中,你将学习如何通过 rustup 命令切换到不同的 profile。

运行以下命令以检查应用于你当前环境的 profile。你应该看到已启用 profile default

rustup show profile

接下来,运行以下命令以切换到 profile minimal。然后,再次验证你当前的 profile。

rustup set profile minimal
rustup show profile

你应该收到如下输出 - 当前 profile 已更改为 minimal

image.png

最后,你现在可以通过以下命令将更改恢复为 default profile。

rustup set profile default

通过 rustup 更新 Rust

使用 rustup 作为管理 Rust 环境的主要工具的巨大优势在于,你可以轻松地将你的 Rust 编程语言和开发工具的每个组件更新到最新版本。

要更新你的 rust 安装,请运行以下 rustup 命令。这将更新你的 Rust 环境中所有可用的工具链,包括工具链上的开发工具组件,例如 Cargo 包管理器和 rustc 编译器以及 Clippy。

rustup update

你现在应该收到如下输出 - rustup 命令会将当前安装的工具链版本同步到 Rust 官方网站上可用的最新版本。每当有新更新可用时,都会应用该更新。

image.png

使用 Cargo 创建和管理 Rust 项目

现在你已经学习了如何使用 rustup 管理你的 Rust 开发环境。在此步骤中,你将学习如何使用 Cargo 包管理器来创建 Rust 项目、测试、编译和运行你的 Rust 应用程序。

通过以下 cargo new 命令创建一个新项目 hello-world。这将在你当前的工作目录中创建一个新的项目目录 hello-world

cargo new hello-world

更改工作目录 hello-world 并通过以下 tree 命令检查其中的文件列表。你应该看到文件 Cargo.toml,它是 Cargo 包管理器的主要配置,以及用于存储你的 Rust 源代码的目录 src

cd hello-world/
tree .

image.png

使用你的文本编辑器打开文件 src/main.rs

nano src/main.rs

将默认源代码更改为以下行。

fn main() {
    println!("Hello World, Rust with rustup and cargo.");
}

保存文件并在完成后退出编辑器。

接下来,运行以下命令以构建和编译 hello-world 项目。此命令将自动将你的 hello-world 项目编译到新目录 target

cargo build

image.png

现在运行以下 cargo test 命令以验证你的 Rust 项目。

cargo test

你应该收到如下输出 - 如果测试成功,你应该收到诸如 test result: ok 的消息。

image.png

最后,运行以下命令以执行 hello-world 项目。

cargo run

你应该收到如下输出 - hello-world 项目已成功执行。

image.png

卸载 Rust 和 rustup

rustup 安装只会影响你当前的用户开发环境,而不会影响整个系统。这将使你的系统保持清洁,并且卸载过程更简单。你可以通过删除 rustup 安装目录 /home/username/.rustup 和 Rust 工具链目录 /home/username.cargo 来卸载 rustup 以及所有工具链和开发工具。

运行以下命令以从你当前的开发环境中卸载 Rust 和 rustup。

rm -rf ~/.cargo ~/.rustup

接下来,删除你通过以下命令生成的命令自动补全。

rm -f ~/.local/share/bash-completion/completions/rustup

这样,你现在已经从你的系统中卸载并删除了 Rust 和 rustup。

相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2261867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端项目初始化搭建(二)

一、使用 Vite 创建 Vue 3 TypeScript 项目 PS E:\web\cursor-project\web> npm create vitelatest yf-blog -- --template vue-ts> npx > create-vite yf-blog --template vue-tsScaffolding project in E:\web\cursor-project\web\yf-blog...Done. Now run:cd yf-…

生活小妙招之UE CaptureRT改

需求,四个不同的相机拍摄结果同屏分屏显示 一般的想法是四个Capture拍四张RT,然后最后在面片/UI上组合。这样的开销是创建4张RT,材质中采样4次RT。 以更省的角度,想要对以上流程做优化,4个相机拍摄是必须的&#xff…

【AIGC进阶-ChatGPT提示词副业解析】探索生活的小确幸:在平凡中寻找幸福

引言 在这个快节奏的现代社会中,我们常常被各种压力和焦虑所困扰,忘记了生活中那些细小而珍贵的幸福时刻。本文将探讨如何在日常生活中发现和珍惜那些"小确幸",以及如何通过尝试新事物来丰富我们的生活体验。我们还将讨论保持神秘感和期待感对于维持生活乐趣的重要性…

C#编程报错- “ComboBox”是“...ComboBox”和“...ComboBox”之间的不明确的引用

1、问题描述 在学习使用C#中的Winform平台编写一个串口助手程序时, 在编写一个更新ComboBox列表是遇到了问题,出错的代码是 2、报错信息 CS1503 参数 2: 无法从“System.Windows.Forms.ComboBox”转换为“System.Windows.Forms.ComboBox” CS1503 …

ollama+open-webui,本地部署自己的大模型

目录 一、效果预览 二、部署ollama 1.ollama说明 2.安装流程 2.1 windows系统 2.1.1下载安装包 2.1.2验证安装结果 2.1.3设置模型文件保存地址 2.1.4拉取大模型镜像 2.2linux系统 2.2.1下载并安装ollama 2.2.2设置环境变量 2.2.3拉取模型文件 三、部署open-webui…

leetcode_203. 移除链表元素

203. 移除链表元素 - 力扣(LeetCode) 开始写的时候没有想明白的问题 1. 开始我是想头节点 尾节点 中间节点 分开处理 如果删除的是头节点 然后又要删除头节点的后继节点 那么 这样子的话头节点分开处理就毫无意义了 接着是尾节点 开始我定义的是curr h…

【大模型微调学习5】-大模型微调技术LoRA

【大模型微调学习5】-大模型微调技术LoRA LoRa微调1.现有 PEFT 方法的局限与挑战2.LoRA: 小模型有大智慧 (2021)3.AdaLoRA: 自适应权重矩阵的高效微调 (2023)4.QLoRA: 高效微调量化大模型 (2023) LoRa微调 1.现有 PEFT 方法的局限与挑战 Adapter方法,通过增加模型深…

.NET 技术系列 | 通过CreatePipe函数创建管道

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

DS18B20温度传感器(STM32)

一、介绍 DS18B20是一种常见的数字型温度传感器,具备独特的单总线接口方式。其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器,具有功能强大、硬件简单、易扩展、抗干扰性强等特点。 传感器参数 测温范围为-55℃到1…

shell编程2 永久环境变量和字符串显位

声明 学习视频来自B站UP主 泷羽sec 常见变量 echo $HOME (家目录 root用户) /root cd /root windows的环境变量可以去设置里去新建 为什么输入ls dir的命令的时候就会输出相应的内容呢 因为这些命令都有相应的变量 which ls 通过这个命令查看ls命令脚本…

MaskGCT——开源文本转语音模型,可模仿任何人说话声音

前期介绍过很多语音合成的模型,比如ChatTTS,微软语音合成大模型,字节跳动自家发布的语音合成模型Seed-TTS。其模型随着技术的不断发展,模型说话的声音也越来越像人类,虽然 seed-tts 可以进行语音合成等功能&#xff0c…

java全栈day16--Web后端实战(数据库)

一、数据库介绍 二、Mysql安装(自行在网上找,教程简单) 安装好了进行Mysql连接 连接语法:winr输入cmd,在命令行中再输入mysql -uroot -p密码 方法二:winr输入cmd,在命令行中再输入mysql -uroo…

geoserver 瓦片地图,tomcat和nginx实现负载均衡

在地理信息系统(GIS)领域,GeoServer作为一个强大的开源服务器,能够发布各种地图服务,包括瓦片地图服务。为了提高服务的可用性和扩展性,结合Tomcat和Nginx实现负载均衡成为了一个有效的解决方案。本文将详细…

达梦8-达梦数据的示例用户和表

1、示例库说明: 创建达梦数据的示例用户和表,导入测试数据。 在完成达梦数据库的安装之后,在/opt/dmdbms/samples/instance_script目录下有用于创建示例用户的SQL文件。samples目录前的路径根据实际安装情况进行修改,本文将达梦…

利用notepad++删除特定关键字所在的行

1、按组合键Ctrl H,查找模式选择 ‘正则表达式’,不选 ‘.匹配新行’ 2、查找目标输入 : ^.*关键字.*\r\n (不保留空行) ^.*关键字.*$ (保留空行)3、替换为:(空) 配置界面参考下图: ​​…

Qt学习笔记第61到70讲

第61讲 记事本实现当前行高亮功能 实现策略&#xff1a; 获取当前行的光标位置&#xff0c;使用的信号和获取行列值是一样的&#xff0c;即通过ExtraSelection 来配置相关属性。 关键API&#xff1a; QList<QTextEdit::ExtraSelection> extraSelections; void setExtraSe…

Axure高保真数据可视化大屏图表组件库

推出了一款高保真数据可视化大屏图表组件库&#xff0c;旨在为用户提供丰富的图表类型&#xff0c;使数据呈现更加直观、生动。本文将详细介绍该组件库中的各类图表元件&#xff0c;包括面积图、折线图、柱状图、条形图、圆环图、雷达图、仪表图以及综合类图表&#xff0c;以满…

【机器学习】在向量的流光中,揽数理星河为衣,以线性代数为钥,轻启机器学习黎明的瑰丽诗章

文章目录 线性代数入门&#xff1a;机器学习零基础小白指南前言一、向量&#xff1a;数据的基本单元1.1 什么是向量&#xff1f;1.1.1 举个例子&#xff1a; 1.2 向量的表示与维度1.2.1 向量的维度1.2.2 向量的表示方法 1.3 向量的基本运算1.3.1 向量加法1.3.2 向量的数乘1.3.3…

【鸿睿创智开发板试用】RK3568 NPU的人工智能推理测试

目录 引言 驱动移植 例程编译 修改build.sh 执行编译 运行测试 部署libc的库文件 执行测试程序 结语 引言 鸿睿创智的H01开发板是基于RK3568芯片的&#xff0c;瑞芯微芯片的一大特色就是提供了NPU推理的支持。本文将对其NPU推理进行测试。 驱动移植 H01的开发板已经…

3D相框案例讲解(详细)

前言 通过现阶段的学习&#xff0c;我们已经掌握了HTML&#xff0c;CSS和JS部分的相关知识点&#xff0c;现在让我们通过一篇案例&#xff0c;来巩固我们近期所学的知识点。 详细视频讲解戳这里 任务一 了解目标案例样式 1.1了解案例 3D相框 1.2 分析案例 首先我们看到一个…