Sumantro Mukherjee 发布的文章

在 Fedora 上用 virt-install 创建云镜像。

 title=

虚拟化是使用最多的技术之一。Fedora Linux 使用 Cloud Base 镜像 来创建通用虚拟机(VM),但设置 Cloud Base 镜像的方法有很多。最近,用于调配虚拟机的 virt-install 命令行工具增加了对 cloud-init 的支持,因此现在可以使用它在本地配置和运行云镜像。

本文介绍了如何在裸机上设置一个基本的 Fedora 云实例。同样的步骤可以用于任何 raw 或Qcow2 Cloud Base 镜像。

什么是 --cloud-init?

virt-install 命令使用 libvirt 创建一个 KVM、Xen 或 LXC 客户机。--cloud-init 选项使用一个本地文件(称为 “nocloud 数据源”),所以你不需要网络连接来创建镜像。在第一次启动时,nocloud 方法会从 iso9660 文件系统(.iso 文件)中获取访客机的用户数据和元数据。当你使用这个选项时,virt-install 会为 root 用户账户生成一个随机的(临时)密码,提供一个串行控制台,以便你可以登录并更改密码,然后在随后的启动中禁用 --cloud-init 选项。

设置 Fedora Cloud Base 镜像

首先,下载一个 Fedora Cloud Base(for OpenStack)镜像

 title=

然后安装 virt-install 命令:

$ sudo dnf install virt-install

一旦 virt-install 安装完毕并下载了 Fedora Cloud Base 镜像,请创建一个名为cloudinit-user-data.yaml 的小型 YAML 文件,其中包含 virt-install 将使用的一些配置行:

#cloud-config
password: 'r00t'
chpasswd: { expire: false }

这个简单的云配置可以设置默认的 fedora 用户的密码。如果你想使用会过期的密码,可以将其设置为登录后过期。

创建并启动虚拟机:

$ virt-install --name local-cloud18012709 \
--memory 2000 --noreboot \
--os-variant detect=on,name=fedora-unknown \
--cloud-init user-data="/home/r3zr/cloudinit-user-data.yaml" \
--disk=size=10,backing_store="/home/r3zr/Downloads/Fedora-Cloud-Base-33-1.2.x86_64.qcow2"

在这个例子中,local-cloud18012709 是虚拟机的名称,内存设置为 2000MiB,磁盘大小(虚拟硬盘)设置为 10GB,--cloud-initbacking_store 分别带有你创建的 YAML 配置文件和你下载的 Qcow2 镜像的绝对路径。

登录

在创建镜像后,你可以用用户名 fedora 和 YAML 文件中设置的密码登录(在我的例子中,密码是 r00t,但你可能用了别的密码)。一旦你第一次登录,请更改你的密码。

要关闭虚拟机的电源,执行 sudo poweroff 命令,或者按键盘上的 Ctrl+]

启动、停止和销毁虚拟机

virsh 命令用于启动、停止和销毁虚拟机。

要启动任何停止的虚拟机:

$ virsh start <vm-name>

要停止任何运行的虚拟机:

$ virsh shutdown <vm-name>

要列出所有处于运行状态的虚拟机:

$ virsh list

要销毁虚拟机:

$ virsh destroy <vm-name>

 title=

快速而简单

virt-install 命令与 --cloud-init 选项相结合,可以快速轻松地创建云就绪镜像,而无需担心是否有云来运行它们。无论你是在为重大部署做准备,还是在学习容器,都可以试试virt-install --cloud-init

在云计算工作中,你有喜欢的工具吗?请在评论中告诉我们。


via: https://opensource.com/article/21/1/cloud-image-virt-install

作者:Sumantro Mukherjee 选题:lujun9972 译者:wxy 校对:wxy

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

Fedora Media Writer 是创建临场版 USB 以尝试 Linux 的方便方法。

Fedora Media Writer 是一个小巧、轻量、全面的工具,它简化了 Linux 的入门体验。它可以下载 Fedora 的 Workstation 或 Server 版本并写入到一个可以在任何系统上引导的 USB 驱动器上,使你无需将其安装到硬盘上就可以试用 Fedora Linux。

Media Writer 工具可以用来创建一个 临场体验的 Live 、可引导的 USB 驱动器。在你的平台上安装 Fedora Media Writer 应用后,你可以下载并烧录最新的 Fedora Workstation 或 Server 稳定版,也可以选择烧录你下载的任何其他镜像。而且它并不局限于英特尔 64 位设备。它还可以用于 ARM 设备,如树莓派,这些设备日益变得更加强大和有用。

 title=

安装 Fedora Media Writer

安装 Fedora Media Writer 有几种方式。你可以通过 GitHub 从源码编译、下载 MacOS 或 Windows 版本、使用 dnfyum 安装 RPM 包,或者以 Flatpak 的形式获得。

在 Fedora 上:

$ sudo dnf install mediawriter

最新版本请参见 GitHub 仓库的发布部分。

准备好你的媒体介质

首先,你需要一个 USB 驱动器来安装你的 Linux 操作系统。这就是 Fedora Media Writer 要烧录的设备。这个驱动器必须是空白或可擦除的,因为 该 USB 驱动器上的所有数据都会被删除。如果有任何数据,哪怕只是一个文件,如果你不想丢失,那么你必须在继续之前备份它!

确认你的 USB 驱动器是可擦除的之后,将它插入你的电脑并启动 Fedora Media Writer。

使用 Fedora Media Writer

当你启动 Fedora Media Writer 时,你会看到一个页面,提示你从互联网上获取一个可引导的镜像,或者从你的硬盘上加载一个自定义镜像。第一个选择是 Fedora 的最新版本。Workstation 版本适用于台式机和笔记本电脑,Server 版本适用于虚拟化、机架服务器或任何你想作为服务器运行的情况。

如果你选择了 Fedora 镜像,Media Writer 会下载一个光盘镜像(通常称为 “iso”,文件扩展名为 .iso),并将其保存到你的下载文件夹中,这样你就可以重复使用它来烧录另一个驱动器。

Select your image

另外还有 Fedora Spins,这是来自 Fedora 社区的镜像,它旨在满足小众的兴趣。例如,如果你是 MATE 桌面的粉丝,那么你会很高兴地发现 Media Writer 提供了 MATE spin。它有很多,所以请滚动查看所有的选择。如果你是 Linux 的新手,不要被吓到或感到困惑:这些额外的选项是为老用户准备的,这些用户除了默认的选项外,还发展出了自己的偏好,所以对你来说,只使用 Workstation 或 Server 选项就行,这取决于你是想把 Fedora 作为一个桌面还是作为一个服务器操作系统来运行。

如果你需要一个与你当前使用的 CPU 不同架构的镜像,从窗口右上角的下拉菜单中选择 CPU 架构。

如果你已经将镜像保存在硬盘上,请选择“Custom Image”选项,并选择你要烧录到 USB 的发行版的 .iso 文件。

写入 USB 驱动器

当你下载或选择了一个镜像,你必须确认你要将该镜像写入驱动器。

驱动器选择下拉菜单只显示了外部驱动器,所以你不会意外地覆盖自己的硬盘驱动器。这是 Fedora Media Writer 的一个重要功能,它比你在网上看到的许多手动说明要安全得多。然而,如果你的计算机上连接了多个外部驱动器,除了你想覆盖的那个,你应该将它们全部移除,以增加安全性。

选择你要安装镜像的驱动器,然后单击“Write to Disk”按钮。

 title=

稍等一会儿,镜像就会被写入到你的驱动器,然后可以看看 Don Watkins 对如何从 USB 驱动器启动到 Linux的出色介绍。

开始使用 Linux

Fedora Media Writer 是一种将 Fedora Workstation 或 Server,或任何 Linux 发行版烧录到 USB 驱动器的方法,因此你可以在安装它到设备上之前试用它。试试吧,并在评论中分享你的经验和问题。


via: https://opensource.com/article/20/10/fedora-media-writer

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:wxy

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

这些应用和主题可以你真正拥有你的终端。

每个人都喜欢以特定的方式设置他们的工作区:它可以帮助你提高效率,并使生活更容易以一种感觉有机的方式组织事物,并拥有一个对你来说感觉良好的环境。这也绝对适用于终端。这可能就是为什么有这么多可用终端的原因。

在使用新的计算机时,我做的第一件事就是设置我的终端,让它成为我自己的终端。

我最喜欢的终端应用是 Terminator,因为它的设计简约,并且内置了窗口选项。但从这里开始变得更加复杂。我将自己喜欢的终端风格描述为“功能丰富却又保持简约”。这种平衡是我经常在微调的。

我使用 zsh 作为默认 shell,并使用 Ohmyzsh 来提供额外的功能。可以下载它的安装脚本来安装 Ohmyzsh:

$ curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh --output install-zsh.sh

查看一遍脚本了解它做什么,并确保你有信心在计算机上运行该脚本。完成后,运行脚本:

$ sh ./install-zsh.sh

我最喜欢的主题/提示符是 Powerlevel 10k,它是一个非常详细的环境视图。它包含了从命令的颜色高亮到运行时间的时间戳等所有内容。所有细节都集成到一个优雅的、具有上下文感知的提示符中。

要安装 Powerlevel10k,请先在 .oh-my-zsh/ 自定义主题目录中下载源码。

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

但是,为了让 Powerlevel10k 看起来如其存储库中所示,我们需要添加一些默认不包括的字体。它们是:

这将产生一个美观且具有上下文感知的终端(如 screenfetch 所示):

 title=

我已经习惯了这个特殊的设置,但是,把工作环境变成自己的环境固然重要,但这也并不是一个固执地尝试新事物的理由。新终端的出现,是为了满足新一代用户的需求和要求。这意味着,即使一开始不熟悉,但最近开发的一种终端可能比你的老旧备用机更适合当今的环境和职责。

我最近一直在考虑其他选择。我开始关注 Starship 的开发情况,它将自己描述为简约的、快速的、可无限定制的提示符,适用于任何 shell。它仍然有很多在视觉上可以身临其境的细节,而不会像 Powerlevel10k 那样使人分心。

你最喜欢的终端是什么?为什么?请在评论栏分享!


via: https://opensource.com/article/20/7/minimal-linux-terminal

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:wxy

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

Rust 是什么?

Rust 是一种系统编程语言,它运行速度惊人,并且可以避免几乎所有的崩溃、内存区块错误 以及数据竞争。你也许会质疑为什么我们还需要又一种这样的语言,因为已经有很多同类的语言了。这篇文章将会告诉你为什么。

安全性 vs. 控制权

你也许见过上面的图谱。一边是 C/C++,对运行的硬件拥有更多的控制权,因此它可以让开发者通过对所生成的机器代码进行更精细的控制来优化性能。然而这不是很安全,这很容易造成内存区块错误以及像 心血漏洞 这样的安全漏洞。

另一边是像 Python、Ruby 和 JavaScript 这种没有给予开发者多少控制权但是可以创建出更安全的代码的语言。虽然这些代码可以生成相当安全并且可控的异常,但是它们不会造成内存区块错误。

在图谱中间的区域是 Java 和一些其它混合了这些特性的语言。它们提供对运行的硬件部分控制权,并且尝试尽量减少漏洞的出现。

Rust 有点不太一样,它并没有出现在这个图谱上。它同时提供给开发者安全性和控制权。

Rust 的特性

Rust 是一种像 C/C++ 一样的系统编程语言,除此之外它还给予开发者对内存分配细粒度的控制。它不需要垃圾回收器。它的 运行环境 runtime 很小,运行速度接近于在裸机上的运行。它为开发者提供了代码性能更大的保证。此外,任何了解 C/C++ 的人都能读懂以及编写 Rust 的代码。

Rust 的运行速度非常快,因为它是一种编译语言。它使用 LLVM 作为编译器的后端,并且还可以利用一大堆优化。在许多领域,它的性能都要高于 C/C++。它像 JavaScript、Ruby 和 Python 一样,与生俱来就是安全的,这意味着它们不会造成内存区块错误、 野指针 dangling pointers 或者 空指针 null pointers

另外一个很重要的特性就是消除数据竞争。如今,大多数计算机都具有多个核心,许多线程并发运行。然而,开发者很难编写好的并行代码,因此这个特性除去了他们的后顾之忧。Rust 使用两个关键概念来消除数据竞争:

  • 所有权 Ownership 。每一个变量都被移动到一个新的位置,并防止通过先前的位置来引用它。每一个数据块只有一个所有者。
  • 借用 Borrowing 。被拥有的值可以借用,以允许在一段时间内使用。

在 Fedora 24 和 25 上使用 Rust

若要开始使用,只需安装软件包:

sudo dnf install rust

示例代码 helloworld.rs

fn main() {
    println!("Hello, Rust is running on Fedora 25 Alpha!");
}

编译并执行:

rustc helloworld.rs
./helloworld

在 Fedora 上可以执行以下命令来安装最新的测试版本:

sudo dnf --enablerepo=updates-testing --refresh --best install rust

via: https://fedoramagazine.org/rust-meets-fedora/

作者:Sumantro Mukherjee 译者:OneNewLife 校对:wxy

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