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

简介

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.rhkb.cn/news/490193.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ECharts实现数据可视化入门详解

文章目录 ECharts实现数据可视化入门详解一、引言二、基础配置1.1、代码示例 三、动态数据与交互2.1、代码示例 四、高级用法1、多图表组合1.1、在同一容器中绘制多个图表1.2、创建多个容器并分别初始化 ECharts 实例1.3、实现多图联动 五、总结 ECharts实现数据可视化入门详解…

Jmeter的性能测试

性能测试的概念 定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。 由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试…

鸿蒙开发:一个轻盈的上拉下拉刷新组件

前言 老早之前开源了一个刷新组件,提供了很多常见的功能,也封装了List,Grid,WaterFlow,虽然功能多,但也冗余比较多,随着时间的前去,暴露的问题就慢慢增多,虽然我也提供了…

zookeeper基础命令详解

zookeeper基础命令详解目录 文章目录 zookeeper基础命令详解目录一、列出所有基础命令 一、列出所有基础命令 先启动一个zookeeper客户端连接zookeeper,如果还没有启动zookeeper集群的参考本文启动之后再做后续操作。 https://blog.csdn.net/weixin_42924400/artic…

LLM大语言模型私有化部署-OpenEuler22.03SP3上容器化部署Dify与Qwen2.5

背景 Dify 是一款开源的大语言模型(LLM) 应用开发平台。其直观的界面结合了 AI 工作流、 RAG 管道、 Agent 、模型管理、可观测性功能等,让您可以快速从原型到生产。相比 LangChain 这类有着锤子、钉子的工具箱开发库, Dify 提供了更接近生产需要的完整…

C++重点和练习

作业题目&#xff1a; #include <iostream> using namespace std; class Rec {const int length;int width; public:void set_length(int l);void set_width(int w);int get_length();int get_width();void show(); };#include <iostream> using namespace std; c…

优化你的 3D Tiles:性能与质量的平衡

优化你的 3D Tiles&#xff1a;性能与质量的平衡 在现代的三维场景渲染中&#xff0c;3D Tiles 是一种强大的技术&#xff0c;它能以高效、分级加载的方式呈现海量的三维数据。然而&#xff0c;优化 3D Tiles 以实现性能与质量的平衡&#xff0c;却是一个复杂且关键的任务。本…

无限弹窗?无限重启?

Windows开机自启目录&#xff1a; "%USERPROFILE%\AppData\Roaming\Microsoft\windows\StartMenu\Programs\Startup" 基于这个和 start 命令&#xff0c; shutdown 命令&#xff0c; 编写 bat 病毒程序。 无限弹窗 echo start cmd > hack.txt echo %0 >>…

pdb调试器详解

文章目录 1. 启动 pdb 调试器1.1 在代码中插入断点1.2 使用命令行直接调试脚本 2. 常用调试命令2.1 基本命令2.2 高级命令2.3 断点操作 3. 调试过程示例4. 调试技巧4.1 条件断点4.2 自动启用调试4.2.1 运行程序时指定 -m pdb4.2.2在代码中启用 pdb.post_mortem4.2.3 使用 sys.e…

51c深度学习~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12750420 #傅里叶特征 (Fourier Feature&#xff09;与核回归 位置编码背后的理论解释 本文探讨了位置编码背后的理论基础&#xff0c;特别是傅里叶特征&#xff08;Fourier Feature&#xff09;与核回归&#xff08;Kern…

elasticsearch 使用Painless脚本

文章目录 1. 创建索引2. 插入模拟数据Painless 脚本的基本特点&#xff1a;Painless 脚本的常见用途1. 脚本查询和过滤示例&#xff1a;基于脚本的查询 2. 脚本字段示例&#xff1a;脚本字段 3. 聚合中的脚本示例&#xff1a;脚本聚合 4. 文档更新中的脚本示例&#xff1a;文档…

jmeter CLI Mode 传参实现动态设置用户数

一.需求 CLI 运行模式下每次运行想要传入不同的用户数&#xff0c;比如寻找瓶颈值的场景&#xff0c;需要运行多次设置不同的用户数。 二.解决思路 查看官方API Apache JMeter - Users Manual: Getting Started api CLI Mode 一节中提到可以使用如下参数做属性的替换&#…

【Java Nio Netty】基于TCP的简单Netty自定义协议实现(万字,全篇例子)

基于TCP的简单Netty自定义协议实现&#xff08;万字&#xff0c;全篇例子&#xff09; 前言 有一阵子没写博客了&#xff0c;最近在学习Netty写一个实时聊天软件&#xff0c;一个高性能异步事件驱动的网络应用框架&#xff0c;我们常用的SpringBoot一般基于Http协议&#xff0…

小程序播放设备没有声音

使用在使用小程序播放设备时没有声音请按照以下步骤排查 1、确认设备是否开启麦克风 设备的本地配置页面可以查看麦克风的开启状态&#xff0c;也可以通过其他方式播放检查是否有声音&#xff0c;比如萤石app或者ezuikit&#xff0c;若其他端播放有声音说明设备的麦克风已开启 …

【考前预习】3.计算机网络—数据链路层

往期推荐 【考前预习】2.计算机网络—物理层-CSDN博客 【考前预习】1.计算机网络概述-CSDN博客 浅谈云原生--微服务、CICD、Serverless、服务网格_云原生cicd-CSDN博客 子网掩码、网络地址、广播地址、子网划分及计算_子网广播地址-CSDN博客 浅学React和JSX-CSDN博客 目录 1.数…

bean创建源码

去字节面试&#xff0c;直接让人出门左拐&#xff1a;Bean 生命周期都不知道&#xff01; spring启动创建bean流程 下面就接上了 bean生命周期 doGetBean Object sharedInstance this.getSingleton(beanName); sharedInstance this.getSingleton(beanName, new ObjectF…

iOS swift开发系列 -- tabbar问题总结

1.单视图如何改为tabbar&#xff0c;以便显示2个标签页 右上角➕&#xff0c;输入tabbar 找到控件&#xff0c;然后选中&#xff0c;把entrypoint移动到tabbar控件 2.改成tabbar&#xff0c;生成两个item&#xff0c;配置各自视图后&#xff0c;启动发现报错 Thread 1: “-[p…

【常考前端面试题总结】---2025

React fiber架构 1.为什么会出现 React fiber 架构? React 15 Stack Reconciler 是通过递归更新子组件 。由于递归执行&#xff0c;所以更新一旦开始&#xff0c;中途就无法中断。当层级很深时&#xff0c;递归更新时间超过了 16ms&#xff0c;用户交互就会卡顿。对于特别庞…

直流开关电源技术及应用

文章目录 1. 开关电源概论1.1 开关电源稳压原理1.1.1 开关电源稳压原理核心组成部分及其作用工作过程稳压原理 1. 开关电源概论 1.1 开关电源稳压原理 为了提高效率&#xff0c;必须使功率调整器件处于开关工作状态。 作为开关而言&#xff0c;导通时压降很小&#xff0c;几乎…

汽车嵌入式软件构建高效技术团队的全面思考

在汽车嵌入式软件开发领域&#xff0c;构建一支高效的通用技术团队至关重要。这类团队负责为各种项目提供可复用、标准化的技术基石&#xff0c;从而提高开发效率、降低成本并确保产品质量。构建这样的团队需要从技术能力、角色分工、标准化与复用、流程管理与质量保证、工具和…