分类 技术 下的文章

在 Rust 系列的第四篇中,学习复合数据类型、数组和元组。

在上一篇文章中,你学习到了 Rust 中的 标量数据类型。它们是整型、浮点数、字符和布尔值。

在本文中,我们将会看看 Rust 编程语言中的复合数据类型。

Rust 中的复合数据类型是什么?

复合数据类型可以在一个变量中存储多个值。这些值可以是相同的标量数据类型,也可以是不同的标量数据类型。

Rust 编程语言中有两种这样的数据类型:

  • 数组 Array :存储相同类型的多个值。
  • 元组 Tuple :存储多个值,可以是相同的类型,也可以是不同的类型。

让我们了解一下它们吧!

Rust 中的数组

Rust 编程语言中的数组具有以下特性:

  • 每一个元素都必须是相同的类型
  • 数组有一个固定的长度
  • 数组存储在堆栈中,即其中存储的数据可以被 迅速 访问

创建数组的语法如下:

// 无类型声明
let variable_name = [element1, element2, ..., elementn];

// 有类型声明
let variable_name: [data_type; array_length] = [element1, element2, ..., elementn];

数组中的元素是在方括号中声明的。要访问数组的元素,需要在方括号中指定要访问的索引。

来让我们看一个例子来更好地理解这个。

fn main() {
    // 无类型声明
    let greeting = ['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!'];

    // 有类型声明
    let pi: [i32; 10] = [1, 4, 1, 5, 9, 2, 6, 5, 3, 5];

    for character in greeting {
        print!("{}", character);
    }

    println!("\nPi: 3.1{}{}{}{}", pi[0], pi[1], pi[2], pi[3]);
}

这里,我定义了一个字符数组和另一个存储 i32 类型的值的数组。greeting 数组以单独字符的形式存储了字符串 "Hello world!" 的字符。pi 数组以单独数字的形式存储了圆周率小数点后的前 10 位数字。

然后,我使用 for 循环打印了 greeting 数组的每个字符。(我很快就会讲到循环。)然后,我打印了 pi 数组的前 4 个值。

Hello world!
Pi: 3.11415

如果你想创建一个数组,其中每个元素都是 y,并且出现 x 次,你可以使用以下快捷方式在 Rust 中实现:

let variable_name = [y; x];

来看一个演示……

fn main() {
    let a = [10; 5];

    for i in a {
        print!("{i} ");
    }
    println!("");
}

我创建了一个变量 a,它的长度为 5。数组中的每个元素都是 '10'。我通过使用 for 循环打印数组的每个元素来验证这一点。

它的输出如下:

10 10 10 10 10
? 作为练习,尝试创建一个长度为 x 的数组,然后尝试访问数组的第 x+1 个元素。看看会发生什么。

Rust 中的元组

Rust 中的元组具有以下特性:

  • 就像数组一样,元组的长度是固定的
  • 元素可以是相同的/不同的标量数据类型
  • 元组存储在堆栈中,所以访问速度更快

创建元组的语法如下:

// 无类型声明
let variable_name = (element1, element2, ..., element3);

// 有类型声明
let variable_name: (data_type, ..., data_type) = (element1, element2, ..., element3);

元组的元素写在圆括号中。要访问元素,使用点运算符,后跟该元素的索引。

fn main() {
    let a = (38, 923.329, true);
    let b: (char, i32, f64, bool) = ('r', 43, 3.14, false);

    println!("a.0: {}, a.1: {}, a.2: {}", a.0, a.1, a.2);
    println!("b.0: {}, b.1: {}, b.2: {}, b.3: {}", b.0, b.1, b.2, b.3);

    // 元组解构
    let pixel = (50, 0, 200);
    let (red, green, blue) = pixel;
    println!("red: {}, green: {}, blue: {}", red, green, blue);
}

在上面的代码中,我在第 2 行和第 3 行声明了两个元组。它们只包含我当时想到的随机值。但是仔细看,两个元组中每个元素的数据类型都不同。然后,在第 5 行和第 6 行,我打印了两个元组的每个元素。

在第 9 行,我声明了一个名为 pixel 的元组,它有 3 个元素。每个元素都是组成像素的颜色红色、绿色和蓝色的亮度值。这个范围是从 0 到 255。所以,理想情况下,我会声明类型为 (u8, u8, u8),但是在学习代码时不需要这样优化 ; )

然后,在第 10 行,我“解构”了 pixel 元组的每个值,并将其存储在单独的变量 redgreenblue 中。然后,我打印了 redgreenblue 变量的值,而不是 pixel 元组的值。

让我们看看输出……

a.0: 38, a.1: 923.329, a.2: true
b.0: r, b.1: 43, b.2: 3.14, b.3: false
red: 50, green: 0, blue: 200

看起来不错 : )

额外内容:切片

准确的来说, 切片 Slice 不是 Rust 中的复合数据类型。相反,切片是现有复合数据类型的 “切片”。

一个切片由三个元素组成:

  • 一个初始索引
  • 切片运算符(....=
  • 一个结束索引

接下来是数组切片的一个示例:

fn main() {
    let my_array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    let my_slice = &my_array[0..4];

    for element in my_slice {
        println!("{element}");
    }
}

就像 C 和 C++ 一样,& 用于存储变量的引用(而不是原始指针)。所以 &my_array 意味着对变量 my_array 的引用。

然后,来看看切片。切片由 [0..4] 表示。这里,0 是切片开始的索引。而 4 是切片结束的索引。这里的 4 是一个非包含索引。

这是程序输出,以更好地理解正在发生的事情:

0
1
2
3

如果你想要一个 包含 范围,你可以使用 ..= 作为包含范围的切片运算符。

fn main() {
    let my_array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    let my_slice = &my_array[0..=4];

    for element in my_slice {
        println!("{element}");
    }
}

现在,这个范围是从第 0 个元素到第 4 个元素,下面是输出来证明这一点:

0
1
2
3
4

总结

本文讲到了 Rust 编程语言中的复合数据类型。你学习了如何声明和访问存储在数组和元组类型中的值。此外,你还了解了切片“类型”,以及如何解构元组。

在下一章中,你将学习如何在 Rust 程序中使用函数。敬请关注。

(题图:MJ/22a0d143-2216-439f-8e1d-abd94cdfdbd0)


via: https://itsfoss.com/rust-arrays-tuples/

作者:Pratham Patel 选题:lkxed 译者:Cubik65536 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习如何在 Ubuntu 中正确安装 Qemu,然后在虚拟机中配置 Linux 发行版。

如果你需要运行 Linux 虚拟机,Qemu 是目前最快的管理程序之一,甚至没有“之一”。

除了速度之外,你还可以获得出色的配置选项。即使你不是一个资深用户,它也给你足够的调整空间。

在本教程中,我将引导你完成:

  • 在 Ubuntu 上安装 Qemu 和 KVM
  • 在 Qemu 上安装另一个发行版
  • 在 Qemu 中启用共享文件夹、自动调整大小和复制粘贴(可选,但会使你的虚拟机体验更顺畅)。

那么让我们从安装开始吧。

在 Ubuntu 上安装 Qemu 和 KVM

✋ 在开始安装之前,让我们检查一下你的机器是否支持虚拟化。

要做到这一点,请使用以下命令:

LC_ALL=C lscpu | grep Virtualization

如果你有一个英特尔处理器,它应该带来以下输出:

检查该计算机是否支持基于硬件的虚拟化

如果你有一个 AMD 处理器,它应该得到以下输出:

Virtualization:                  AMD-V

另外,确保你的系统有多个处理器核心,这样你可以分配一些给你的虚拟机,并且仍然有足够的处理能力提供给宿主机。

如果你不确定,使用下面的命令,输出应该大于零

egrep -c '(vmx|svm)' /proc/cpuinfo

检查 Linux 中系统的核心总数和线程数

一旦你都准备好了,你就可以用以下命令在 Ubuntu 上安装 Qemu 和 KVM:

sudo apt install qemu qemu-kvm virt-manager bridge-utils

安装结束后,重新启动你的系统

将用户添加到适当的组中

为了使 Qemu 工作,你必须 将你的用户加入两个组libvirt-kvmlibvirt

要做到这一点,请逐一使用以下命令:

sudo useradd -g $USER libvirt
sudo useradd -g $USER libvirt-kvm

接下来,启用并启动 libvirt 服务:

sudo systemctl enable libvirtd.service && sudo systemctl start libvirtd.service

这就行了!Qemu 的安装已经完成。

用 Qemu 安装另一个 Linux 虚拟机

? 请下载你想在 Qemu 虚拟机中安装的 Linux 发行版的 ISO 文件。

首先,从系统菜单中打开 虚拟机管理器 Virtual Machine Manager

从系统菜单中启动 Qemu

接下来,点击 “ 文件 File ” 菜单,选择 “ 新建虚拟机 New Virtual Machine ” 选项:

在 Qemu 中创建新的虚拟机

从这里,选择第一个选项 “ 本地安装介质 Local install media ”,这将允许你从文件管理器中选择 ISO:

选择本地 ISO 文件以在 Qemu 中创建新的虚拟机

接下来,你将被要求添加 ISO 文件。在这里,点击 “ 浏览 Browse ” 按钮;它将打开一个新的提示窗口,在那里,点击 “ 浏览本地 Browse Local ”。

它将打开文件管理器,从那里选择 ISO 文件:

在 Qemu 中导入 ISO 文件

在大多数情况下,ISO 文件会被检测到,但如果你发现它没有自动检测到,请按照以下步骤操作:

  • 取消勾选 “ 自动从安装介质/源检测 Automatically detect from the installtion media / source ” 选项
  • 选择 “ 常见的 Linux Generic Linux ” 选项

解决 Qemu 中未检测到 ISO 的问题

接下来,你将被要求根据你的需要分配内存和存储。我建议桌面版至少要有 2 个核心、4GB 内存和 25GB 的存储空间:

在 Qemu 中为虚拟机分配内存、内核和存储空间

? 除了磁盘空间,CPU 和内存等系统资源只在 VM 中运行操作系统时使用。

最后,给你的虚拟机起一个合适的名字;完成后,点击 “ 完成 Finish ” 按钮:

在 Qemu 中命名你的虚拟机

它将加载 ISO,所以你可以从这里开始安装。

这就完成了。你可能会觉得这已经很不错了,但如果你启用共享文件夹、剪贴板共享等,你会更喜欢它。下面的几节将介绍如何做到这一点。

在 Qemu 中启用共享文件夹(可选)

在本节中,我将向你展示如何将宿主机的现有目录与虚拟机共享。

要做到这一点,你必须执行以下步骤:

  • 通过 Qemu 中的虚拟机设置添加一个共享文件系统
  • 在虚拟机中挂载文件系统

因此,首先从系统菜单中打开虚拟机管理器,选择虚拟机,并点击 “ 打开 Open ” 按钮来管理控制台:

打开 Qemu 中虚拟机的设置

现在,点击 “ 信息 Info ” 按钮,选择 “ 内存 Memory ” 并启用共享内存:

在 Qemu 中启用共享内存

接下来,点击 “ 添加硬件 Add Hardware ” 按钮,选择 “ 文件系统 Filesystem ” 选项。

在这里,你必须做以下工作:

  • 在 “ 源路径 Source Path ” 部分添加一个你想共享的目录的路径
  • 在 “ 目标路径 Target Path ” 部分添加该目录的名称

在 Qemu 中创建共享文件夹

完成后,点击 “ 完成 Finish ” 按钮,启动虚拟机。

在虚拟机中,打开终端,使用下面的语法来挂载共享目录:

sudo mount -t virtiofs sharename path/to/shared/directory

在我的例子中,它是 Downloads 目录,所以我将使用下面的方式:

sudo mount -t virtiofs Downloads /home/sagar/Downloads

在 Qemu 中挂载共享文件夹

这就行了。

但这是一个临时的解决方案。

要使它成为永久性的,你必须在虚拟机的 /etc/fstab 中创建一个条目。

要这样做,首先,用下面的方法打开 /etc/fstab 配置文件:

sudo nano /etc/fstab

按下Alt + /在 nano 文本编辑器中转到文件的末尾 ,并使用以下语法创建一个条目:

sharename path/to/shared/directory virtiofs defaults 0 0

这是我的配置,看起来像这样:

使 Qemu 中的共享文件夹永久化

一旦完成,保存更改并退出 nano 文本编辑器。

这里我展示了我是如何在主机上的 Downloads 目录下创建一个新文件,并且这些变化反映在我的虚拟机上:

在 Qemu 中使用共享文件夹

因此,现在你可以使用这个共享文件夹在主机和虚拟机之间传输文件,没有任何问题了!

在 Qemu 中启用共享剪贴板(可选)

要启用共享剪贴板,你所要做的就是在虚拟机中安装 spice-vdagent 工具。

因此,如果你的虚拟机是基于 Ubuntu/Debian 的,你可以使用以下方法:

sudo apt install spice-vdagent

对于基于 Arch 的发行版:

sudo pacman -S spice-vdagent

对于基于 Fedora 的发行版:

sudo yum install spice-vdagent

一旦你完成了安装,重启你的虚拟机,剪贴板应该可以如期工作了。

在 Qemu 中启用自动调整大小(可选)

自动调整大小的功能没什么,但当你调整虚拟机窗口的大小时,虚拟机的显示会立即适应大小的变化:

Qemu 中的自动调整大小

要启用 Qemu 中的自动调整大小功能,你必须遵循 2 个简单的步骤:

  • 点击 “ 视图 View ”(从顶部菜单栏)。
  • 选择 “ 缩放显示 Scale Display ” 并选择 “ 总是 Always ” 选项。

这就是我这边看到的情况了。

想要使用 Qemu 的即插即用版本?

在本教程中,我介绍了如何在 Qemu 中手动安装虚拟机,但如果我告诉你,你可以自动完成整个过程,如分配存储空间、内存等步骤呢?

是的,它提供了同样的效率,但当你想尽快创建一个新的虚拟机时,它就会派上用场!这个工具叫 Quickgui,我们有一个专门的安装教程:

用基于 Qemu 的 Quickgui 轻松地创建虚拟机

我希望你会发现这个指南对你有帮助。如果你有任何疑问,欢迎在评论中提问。

(题图:MJ/b3c4d5b2-e727-4b70-9bb8-e864941eef9a)


via: https://itsfoss.com/qemu-ubuntu/

作者:Sagar Sharma 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

各位读者,我们将在本文中介绍如何在 Linux 或 UNIX 系统中入门 Shell 脚本编写。

什么是 Shell 呢?

Shell(交互界面)是类 UNIX/Linux 操作系统中的一个解释器。它将用户输入的命令解释成操作系统的系统调用来执行这些命令。简单来说,Shell 形式上是操作系统的包装。比如,你可能使用 Shell 命令来列出目录中的文件,如 ls 命令,或使用命令复制,如 cp 命令。

$ ls
Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos

在上方的例子中,当你输入 ls 并按下回车键。$ 符号是 Shell 的提示符,意味着 Shell 等着命令的输入。下面的一行就是当前目录下的文件名。

什么是 Shell 提示符?

提示符,即 $,被称作命令提示符,是由 Shell 发出的(LCTT 译注:这个概念,可能有误。请参看:https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt )。当提示符出现后(LCTT 译注:此处提示符并不特指 $ 符号),你就可以输入命令了。Shell 将会在你按下回车键后读取你的输入。它会通过查看你输入的第一个单词来确定你希望执行的命令。“单词”指的是一组连续的字符。空格和制表符作为分割单词的标志。

不同类型的 Shell

由于没有限制只能有一个 Shell,你可以按照自己的意愿来自由选择运行任何一种 Shell。这当然挺好的,但是在不清楚其它替代方案的情况下选择一种 Shell 没有多大益处。下面列出了一些 UNIx/Linux 下常见的 Shell。

Sh(Bourne Shell)

最初的 Unix Shell 通常被称作 Sh,是 Shell(或 Bourne Shell)的简写,以其作者 Steven Bourne 命名。它在几乎所有的类 UNIX 操作系统下都可以找到。基本的 Bourne Shell 仅支持相当有限的命令行编辑。你可以输入字符,使用退格键删除字符,还有就是按下回车键来执行命令。当命令行出现异常了,你可以按下 Ctrl-C 组合键来终止整个命令。

Csh(C Shell)

它是由加利福尼亚大学伯克利分校的 Bill Joy 设计的,由于它的语法和 C 语言相似,所以被命名为 C Shell。这种 Shell 在 Bourne shell 的基础上增加了一些实用功能,尤其是可以重用之前的命令来帮助创建之后要执行的命令。当你去完成一项专门任务的时候,大多数的情况下需要执行不止一条命令,这样 C shell 的能力就相当有用了。

Ksh(Korn Shell)

它是由贝尔实验室的 David Korn 创造的,Korn Shell 提供了和 C Shell 相同的增强,其中有一项重要的不同:Korn Shell 提供了对旧的 Bourne Shell 语法的向后兼容。在 Unix 下,如 AIX & HP-UX 上,Korn Shell 是默认 Shell。

Bash(Bourne Again Shell)

Bash 提供了像 Korn Shell 一样的命令行编辑,像 C Shell 一样的文件名补全和许多其它的高级功能。许多用户认为 Bash 集 Korn Shell 和 C Shell 的优点于一身。在 Linux 和 Mac OS X 系统下,Bash 是默认的 Shell。

Tcsh(T C Shell)

Linux 系统推广了 Tcsh。Tcsh 扩展了传统的 csh,增加了命令行编辑、文件名补全和其它功能。例如,当你按下 Tab 键后,Tcsh 会补全文件和目录名(与 Bash 中的按键相同)。旧的 C Shell 不支持这项功能。

什么是 Shell 脚本呢?

Shell 脚本是包含一条或多条命令的文本文件。在 Shell 脚本中,Shell 程序假定文本文件的每一行是一条不同的命令。这些命令的大部分就和你在 Shell 窗口手动输入的一样。

为什么要使用 Shell 脚本呢?

Shell 脚本被用来自动化管理任务、简化复杂的配置细节,并且充分运用操作系统的性能。有了组合不同命令的能力就可以创造新命令了,从而增加操作系统的价值。此外,结合使用 Shell 与图形化桌面环境,可以兼得二者之长。

从系统管理员的角度看,日复一日的重复工作可以使用 Shell 脚本来实现自动处理,那就可以节约时间从事其它高质量的工作。

创建第一个 Shell 脚本

在当前工作目录下创建一个名为 myscript.sh 的文本文件,所有的 Shell 脚本都有 .sh 的扩展名(LCTT 译注:Linux 下根本没有扩展名一说,没有这个扩展一样是可以执行的)。脚本的第一行是 #!/bin/sh#!/bin/bash,因为 # 符号被称作 “hash” 并且 ! 符号被称作 “bang” 故被称为 shebang(释伴)。至于 /bin/sh/bin/bash 则指出了命令将被 Sh 还是 Bash shell 执行。

以下就是 myscript.sh 的内容:

#!/bin/bash
# Written by LinuxTechi
echo
echo "Current Working Directory: $(pwd)"
echo
echo "Today' Date & Time: $(date)"
DISK=$(df -Th)
echo
echo "Disk Space on System:"
echo "$DISK"

上方的脚本将会展示当前工作目录、今天的日期与时间,还有磁盘空间。我们需要用到 echo 命令 和其它 Linux 命令 来实现这个脚本。

使用如下的 chmod 命令 来给文件增加执行权限:

$ chmod a+x myscript.sh

现在来执行脚本:

$ sh myscript.sh
或
$ ./myscript.sh

注意:在当前目录下执行当前目录下的 Shell 脚本,须使用 ./<脚本名> 方式,如下所示:

在 Shell 脚本中获取用户输入

read 命令用来获取用户的键盘输入,并且将之赋值给一个变量。echo 命令用来展示内容。

让我们更改上方的脚本以使之获取输入:

#!/bin/bash
# Written by LinuxTechi
read -p "Your Name: " NAME
echo
echo "Today' Date & Time: $(date)"
echo
read -p "Enter the file system:" DISK
echo "$(df -Th $DISK)""

现在,再执行脚本试试,这回应该会有输入信息的提醒:

$ ./myscript.sh
Your Name: Pradeep Kumar

Today' Date & Time: Sat 15 Oct 05:32:38 BST 2022

Enter the file system:/mnt/data
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data

完美,上方的输出表明脚本有输入提醒,并加工处理了相应的数据。

本文结束。希望对你是有用的。非常欢迎任何的疑问、反馈。

(题图:MJ/f83b771e-a70d-4c62-a169-ec42e9004a14)


via: https://www.linuxtechi.com/get-started-shell-scripting-linux/

作者:Pradeep Kumar 选题:lkxed 译者:cyberwaddle 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用 GUI 和 CLI 方法从 Fedora 37 工作站版升级到 Fedora 38 的完整步骤。

Fedora 38 已发布,没有任何延误。此版本带来了令人惊叹的 GNOME 44 工作站版桌面、KDE Plasma 5.27(最后一个 Plasma 5 系列)等。你可以在 此页面 上阅读我写的 Fedora 38 功能指南。

如果你尝试从 Fedora 37 升级到 Fedora 38,请遵循以下推荐步骤。

注意:如果你运行的是 Fedora 38 beta 版本,则无需按照以下步骤进行升级。你可以从终端运行 `sudo dnf update && sudo dnf upgrade 以获取正式版本。

如果你运行的是旧版本的 Fedora,例如 36 或 35,你不应该跳版本直接升级到 38。你可以先升级到 37,然后再升级到 38; 或者进行全新安装。根据我的经验,如果你在升级期间跳过版本,一些应用和扩展程序会崩溃,还包括内核相关问题。

升级到 Fedora 38

在你进入更新之前,这里有一些你应该做的事情。以防你遇到问题。我们总是建议这么做。

升级到 Fedora 38 之前要遵循的步骤

首先,打开 GNOME “软件” 应用并检查是否有任何待处理的更新。或者,打开终端并运行以下命令以确保你的系统是最新的。

sudo dnf update

完成上述命令后,重新启动系统以确保应用所有更新。

其次,将你的重要文件(例如图片、文档或视频)从主目录备份到安全的地方(可能是单独的分区或 U 盘)。Fedora 升级过程不会失败,但如果你使用英伟达或任何具有双引导系统的特定硬件,我建议你进行备份。

第三,安装 Extensions Flatpak 应用 并禁用所有 GNOME 扩展(用于 GNOME 桌面)。主要原因是并非所有扩展都已移植到 GNOME 44。因此在升级之前禁用所有扩展是安全的。你可以稍后在完成升级过程后启用它们。

此外,看看官方论坛,看看 Fedora 38 任何可能影响升级过程的 已知的重要问题。不要在这上面花太多时间。

最后,升级过程需要一些时间(以小时为单位),因此请确保你有足够的时间和稳定的互联网连接。

如何升级到 Fedora 38 工作站

图形化方法(GUI)

在 Fedora 38 正式发布后,你应该会在 GNOME “软件” 应用中看到有升级可用的通知。如果你没有看到任何通知,请不要担心。等一两天,你应该就可以了。

Fedora 38 is available in Software

此外,你可以访问 GNOME “软件” 应用中的更新选项卡,看看它是否可用。

单击该通知并单击 下载 Download 以开始升级过程。升级程序将下载所需的软件包并提示你重新启动。点击重新启动以继续升级过程。

Fedora 将在重启期间应用升级。

命令行方法(CLI)

如果你熟悉命令行,则可以使用 dnf upgrade 命令来执行升级过程。

打开终端并运行以下命令:

sudo dnf upgrade --refresh

此命令将刷新为 Fedora 38 准备的新升级软件包。

接下来,通过运行以下命令安装 DNF 升级插件。这是升级过程所必需的。

sudo dnf install dnf-plugin-system-upgrade

通过运行以下命令并安装任何必要的待定更新来确保你的系统是最新的。再做一次(如果你已经通过升级前的步骤完成了)。

sudo dnf --refresh upgrade

通过运行以下命令启动下载过程。此命令将获取所有必需的包并在升级前将它们保存在本地。

sudo dnf system-upgrade download --releasever=38

如果你手动安装了许多软件包和应用,并且不确定 Fedora 38 是否正确支持它们,请使用 --allowerasing 标志运行上述命令。当你提供此选项时,dnf 将删除阻止系统升级的软件包。

上面的命令显示将被替换、更新、升级或降级的内容。如果你想查看列表,请仔细浏览列表。或者,你可以检查红色标记的项目并开始升级过程,如下图所示。

Fedora 38 升级流程 1

Fedora 38 升级流程 2

请记住,下载大小一般以 GB 为单位,因此根据你的网速可能需要一些时间。

上述命令完成后,运行以下命令开始升级。

sudo dnf system-upgrade reboot

系统将自动重启,并等待整个升级过程的完成。正如我前面提到的,这可能需要几个小时的时间,这取决于你的系统硬件。因此要有耐心。

如果一切顺利,迎接你的将是一个全新的 Fedora 38 系统。

祝你好运!

(题图:MJ/1fbeb9e2-ba9c-48ec-912f-78be9cfefcf3)


via: https://www.debugpoint.com/upgrade-fedora-38-from-fedora-37/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你是 Fedora 的粉丝吗?那你可能会喜欢 risiOS 的调整和开箱即用的工具。

risios

我们已经介绍了大量基于 Arch 和 Ubuntu 的发行版。

基于 Fedora 的发行版怎么样?为什么你还需要它呢?

好吧,risiOS 是 最好的基于 Fedora 的发行版 之一,旨在让体验更轻松。虽然 Fedora 不是最复杂的发行版,但在首次设置时,一些细微差别可能会成为麻烦。

risiOS:概述 ⭐

risios homescreen

与 Fedora 相比,你不应该期望有很大的变化。

相反,risiOS 主要 专注于使用某些 GUI 工具和功能来简化用户体验

例如,你会看到一个带有 risiOS 的欢迎屏幕,通知你基本的 安装 Fedora 后应该做的事情。不仅仅是信息,它还有助于在首次安装 Fedora 后自动执行一些重要的第一步。

当然,你会注意区别于原生 Fedora 的不同的品牌、强调色和新的默认墙纸。

risiOS 还有什么不同之处? 让我强调其余的优点:

  • 具有快速操作(使用 risiScripts)的欢迎应用以便可以轻松设置
  • 用于自定义 GNOME 体验的 risiTweaks 应用
  • Chromium 网络浏览器而不是 Firefox
  • OnlyOffice 桌面编辑器
  • 源自 Linux Mint 的 Web 应用功能
? risiOS 是一个相当新的发行版。无论你是想试用它还是将其日常使用都取决于你。

初步印象

请记住,你正在安装 Fedora,它带有一些开箱即用的实用程序,可帮助你快速进行设置。

因此,在你安装 risiOS 之后,你将看到相同的 Fedora 初始步骤来选择用户名和调整隐私设置。

通过后,你会注意到 “risiWelcome” 应用弹出窗口。

risios welcome app

它列出了你只需单击一下即可执行的所有重要操作。

为了实现这一目标,该发行版依赖于其特色之一 “risiScripts”。

risios flathub setup

因此,每当你单击一个操作来设置 Flathub 或 RPMFusion 时,它都会提示你运行脚本。随着你的继续,这个过程变得自动化,你可以毫不费力地实现你的目标。

同样,你可以向下滚动以探索其他选项,例如使用 “risiTweaks” 调整用户体验:

risitweaks

你可以使用此应用控制要自定义的内容,包括动画设置、强调色、主题调整、字体、背景徽标定制等。

正如你所注意到的,risiOS 内置了一些 GNOME 扩展。你可以在此处使用相同的应用禁用或配置它们。

risios

如果你探索 risiScript 菜单,你会找到安装程序来帮助你安装 Brave、Edge、Chrome、Opera 或 Vivaldi 浏览器。

默认情况下,你会通过 risiOS 获得 Chromium。

此外,如果你是一个动手达人,你可以用 Fedora Nobara(游戏发行版)附带的 Fsync 内核替换原装内核。

因此,risiOS 对于所有类型的用户来说似乎都是一个有趣的选择。

最重要的是,risiOS 包含一些可能会增强你的用户体验的额外功能:

  • 预装 ONLYOFFICE 桌面编辑器
  • 来自 Linux Mint 的 Web 应用

当然,如果你喜欢 ONLYOFFICE 作为你的文档编辑器,risiOS 已经为你准备好了。

然而,Linux Mint 中的 “Web 应用”对于用户是个不错选择,可以将网站作为应用运行,并可以在其发行版中默认使用相同应用。

risios web apps

对于坚持使用网络应用,并且主要使用云来完成所有任务的用户来说,这是一个很好的补充。

? 尝试 risiOS

你可以前往其官方网站下载可用的最新 ISO。

我们建议你先 在虚拟机或备用系统上尝试新发行版,然后再将它们安装到主系统上。

目前,它基于 Fedora 37。你可以期待他们接下来发布基于 Fedora 38 的 ISO。

risiOS

?你如何看待 risiOS? 在评论区分享你的观点。

(题图:MJ/d7d43199-e459-4ed7-852e-80d4e256fb07)


via: https://news.itsfoss.com/risi-os/

作者:Ankush Das 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在你的系统中完成安装基本的 Arch Linux 后,有几件事要做。

Arch Linux 为你建立自己的自定义 Linux 发行版打下了坚实的基础。如果你已经用 archinstall 或其他脚本安装了一个非常基本的 Arch Linux,那么就该执行一些安装后的步骤来定制你的系统了。本文假设你的基本 Arch Linux 系统中没有安装 GUI 或桌面环境,所以这些步骤可以适用于大多数用户。

A basic Arch Linux Installation

安装 Arch Linux 后需要做的十件事

更新你的系统

安装 Arch Linux 后,你应该做的第一件事显然是更新你的系统。这可以确保你有最新的滚动发布包。这可以通过 pacman 命令轻松完成。在终端窗口中,运行以下命令:

sudo pacman -Syu

选择最快的 pacman 镜像

Pacman 在下载软件包时有时会有点慢。如果你对它进行适当的配置,选择适当的镜像,你可以达到更快的下载速度。出现这种情况有几个原因,比如过时的镜像,pacman 服务器问题等等。

配置文件存储在文件 /etc/pacman.d/mirrorlist 中。有几个程序可以自动更新这个列表,根据你的位置提供更快的镜像。

其中之一是 reflector ,它是一个 Python 脚本。要安装它,请从终端运行以下程序:

sudo pacman -S reflector

然后在运行它之前对当前列表进行备份:

cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bkp

然后从终端,更改你的国家或地区后运行以下命令。

sudo reflector --country 'India' --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

获取更多细节,请访问我关于 reflector 的详细教程

安装显示管理器和 X.Org

如果你想要一个图形化的桌面环境,那么你需要设置一个显示服务器、显示管理器与桌面环境。显示服务器的最佳选择是 X.Org,你可以用下面的命令来安装:

sudo pacman -S xorg

一旦你安装了显示服务器,你需要一个显示管理器来使你能够登录到你的桌面。有几个轻量级的显示管理器可用,你可以从中选择。

我推荐它们中的任何一个。你可以运行以下命令来安装它们中的任何一个:

sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings

不要忘记在安装完成后启用显示管理器服务:

sudo systemctl enable lightdm

安装桌面环境

一旦你完成了显示服务器和显示管理器的设置,就该安装你喜欢的 Linux 桌面环境了。所有的桌面环境都可以在 Arch Linux 中安装。

例如,如果你想安装 Xfce 桌面环境,你可以运行以下命令:

sudo pacman -S --needed xfce4-goodies file-roller network-manager-applet leafpad epdfview galculator lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings capitaine-cursors arc-gtk-theme xdg-user-dirs-gtk

或者,你可以参考以下指南来安装其他桌面:

选择基本应用程序

由于你正在从头开始设置你的系统,你可以选择你想要的应用程序。应用程序列表可能包括网络浏览器、文本编辑器、图像浏览器、文件管理器等。

这里有一个基本应用程序的列表,你可以使用下面的命令来安装:

sudo pacman -S --needed firefox nemo leafpad evince ksnip lximage-qt
  • Firefox 浏览器
  • Nemo 文件管理器
  • Leafpad 文本编辑器
  • Evince PDF 阅读器
  • Ksnip 截屏工具
  • LXImage 图片查看器

安装 AUR 辅助工具

标准的 Arch 软件库包含了成千上万的软件包。然而,Arch 用户存储库(AUR)包含了数千个用户提交的应用程序和软件包,你可以使用它们。

不过,要从 AUR 安装,最好使用 Yay、paru 或 pikaur 等辅助程序。

我推荐使用 Yay 辅助工具,你可以用以下命令来安装:

sudo git clone https://aur.archlinux.org/yay.git
sudo chown -R <user-name>:users ./yay
cd yay
makepkg -si

一旦安装完毕,你可以在 AUR 存储库中搜索软件包,并使用简单的命令进行安装,例如::

yay -S <app-name>

电源管理

优化电源管理设置,最大限度地提高笔记本电脑的电池寿命或减少台式机的功耗。通过你的桌面环境或窗口管理器的电源管理工具调整设置。

然而,如果你没有通过 GUI 在桌面上进行设置,你可以使用高级 powertop 工具。用以下方法安装它:

sudo pacman -S powertop

一旦安装完毕,使用命令运行它:

sudo powertop --auto-tune

你也可以启用 systemd 服务,使其在你每次打开系统时都能运行。更多细节,请访问 此文档

安装打印机

在 Linux 中配置打印机是非常容易的,这要感谢 CUPS。它可以处理很多麻烦,并为最常见的打印机提供所有必要的软件包。要在 Arch Linux 中设置打印机,你可以使用以下一组命令。第一个命令是安装 CUPS 软件包,然后启用/启动服务。

sudo pacman -S cupssudo systemctl enable cups.servicesudo systemctl start cups.service

安装自定义内核

Arch Linux 提供了一个简单的方法来安装自定义 Linux 内核,带来额外的硬件支持和更新。尽管这可能并不适合所有人,但对于资深用户,可以利用自定义内核的优势。除了默认的主线内核外,重要的有:

  • Linux LTS 内核
  • Linux Hardened 内核
  • Linux Zen 内核

你可以用以下命令来安装它们。在运行这些命令之前,请确保你知道你在做什么。

sudo pacman -S linux-lts linux-lts-headers
sudo pacman -S linux-hardened linux-hardened-headers
sudo pacman -S linux-zen linux-zen-headers

安装 Plymouth

当你安装原装的 Arch Linux 时,初始的动画 Plymouth 默认是不安装的。因此,你可能会在屏幕上看到操作系统的输出。如果你想安装一个漂亮的动画启动画面,你可以阅读我下面的指南。在 Arch Linux 中安装动画启动程序

结语

我希望这篇文章为你提供了一些入门的技巧和指导,让你在 Arch Linux 中获得最佳体验。上面的提示可能并不适用所有的人,但它们可以作为你定制的 Arch 安装的一个好的起点。

拥抱 Arch Linux 提供的自由和无尽的可能性,享受探索和掌握 Arch Linux 系统的旅程。

(题图:MJ/88a0ea39-d673-4efc-b720-9c0fec7599a7)


via: https://www.debugpoint.com/things-to-do-arch-linux/

作者:Arindam 选题:lkxed 译者:chris000132 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出