Debian 12 “Bookworm” 的新功能和改进

个人觉得通过debootstrap安装sid才是桌面debian的正确使用方式。虽然叫unstable，其实也很稳定，而且软件更多更新。想装什么环境装什么环境，想装什么软件装什么软件，不会像tumbleweed一样装好后一堆要卸载的东西。因为是自己定制，没有特定系统引入的配置，重装系统都不用备份数据格式化home分区。灵活，除了没有AUR，其他不比arch差。stable版的debian还是服务器用比较好。

![](/data/attachment/album/202304/05/112008tjogt4q224g49tj4.jpg)

>
> 让我们给你总结一下即将发布的 Debian 12 “Bookworm” 的新功能和改进。
>
>
>

Debian 12 已经开发了几个月了，并且正在慢慢走向最终的发布版本。截止发稿时, 它当前正处于冻结状态下。这意味着预计不会有重大的软件包更改或改进。

这个发布版本带来一些新功能和改进，使其成为 Debian 爱好者期待的一个版本。在这篇文章中，我们将讨论 Debian 12 “Bookworm” 的最好的新功能，以及它们如何使用户受益。

让我们来看看。

![Debian 12 Bookworm GNOME Desktop](/data/attachment/album/202304/05/112106u00eemg1cm830c13.jpg)

### Debian 12 “Bookworm” 的新功能和改进

#### Linux 内核

这个发布版本采用了发布于 2022 年 12 月的 Linux 主线内核 6.1。从时间线上看，到目前为止，Debian 12 的内核版本号只比最新内核落后一个版本。因此，你将通过使用稳定的 Linux 内核 6.1 来获得最新的和最好的硬件支持。

这个内核的亮点功能包括：初步支持 Rust 框架、更新支持英特尔和 AMD 即将推出的 CPU/GPU 系列硬件、改善 Btrfs 和其它文件系统系统的性能等等。

如果你想要了解更多的话，我们已经有一篇关于 [内核 6.1 特性](https://www.debugpoint.com/linux-kernel-6-1/) 的专题文章。

#### 在安装程序中的非自由软件包

在 Debian 12 中出现了一个与 Debian 的 ISO 文件有关的重大更改。最初，Debian 就分别针对 “自由” 和 “非自由” 软件包提供了不同的 ISO 文件。专有的 “非自由” 软件包是单独的 ISO 文件的一部分。因此，如果你需要针对你的特殊硬件的驱动支持，那么你可以针对你的笔记本/台式机/服务器下载不同的 ISO 文件。

然而，这种体验使终端用户在选择恰当的 Debian 的 ISO 时感到迷惑。为此，Debian 团队去年发起一次社区投票，以选出如何处理 “非自由” 的最好的选项。

根据 [选出的结果](https://lists.debian.org/debian-vote/2022/10/msg00000.html) , 现在，基本的 ISO 文件现在包含 “自由” 和 “非自由” 的软件包。

那么，发生了什么变化？

在我们尝试现在官方的 Debian 的 ISO 文件时，你只需要选择一个包含所有东西的 ISO 文件 （DVD 大小的体积）。此外，也提供小型的网络安装的 ISO 文件，包含 “非自由” 固件。

你可以查看关于 Debian 的 ISO 文件的 [这篇指南](https://www.debugpoint.com/download-debian-iso/) 。

#### GNOME 在默认情况下使用 Pipewire

如果你在 Debian Linux 中使用 GNOME 桌面环境，那么，给你带来一个好消息。

Debian 12 和 GNOME 桌面环境 [在默认情况下，使用 Pipewire 和 Wireplumber 管理器](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1020249) 作为声音服务器，取代了 Pulseaudio 。现代化的 Pipewire 早就已经引入 Ubuntu 、Fedora 、Pop!\_OS 等其它领先的发行版。

![Pipewire in Debian 12](/data/attachment/album/202304/05/112114p2b6p7bj4b276s92.jpg)

#### 新版本的 Apt 软件包管理器（2.6）

Debian 12 引入 Apt 软件包管理器的最新的版本。[Apt 2.6](https://launchpad.net/ubuntu/+source/apt/+changelog) 版本专门处理了这个版本中引入的非自由 ISO 镜像支持。这些更改包含：默认启用非自由固件，Apt 将显示非自由软件包的更新。

#### 桌面环境

在 Debian 12 中，除 GNOME 桌面环境外，所有的主流桌面环境都是最新的。这是因为 [GNOME 44](https://www.debugpoint.com/gnome-44/) 才刚刚发布，由于工作日程计划不一样，因此它没有进入 “Bookworm” 。Debian 12 已经处于硬冻结状态。

因此，在 Debian 12 中，你将得到 [GNOME 43](https://www.debugpoint.com/gnome-43/) 版本，与最新的发布版本相比，它也没有落后多少。此外，如果你从 [Debian 11](https://www.debugpoint.com/debian-11-features/) 转换而来，那么，这将是一次重大的 GNOME 升级。

幸运的是，[KDE Plasma 5.27](https://www.debugpoint.com/kde-plasma-5-27/) 现在可以在这个发布版本中使用了。KDE Plasma 是 Plasma 5 的最终版本，并且在 Plasma 6 版本准备好之前，它可能会成为 LTS 。因此，它是一次重要的升级。KDE Plasma 维护人员成功地实现了这一目标。

另外，在 Debian 12 中的 [Xfce 4.18](https://www.debugpoint.com/xfce-4-18-review/) 通过令人惊艳的 Thunar 的特色功能带来了更好的桌面体验。此外，在 Debian 12 中，LXQt 1.2 、MATE 1.26 和 LXDE 11 都是最新的版本。

这里有一份摘要:

* GNOME 43
* KDE Plasma 5.27
* LXDE 11
* LXQt 1.2
* MATE 1.26
* Xfce 4.18

#### 核心模块和应用程序

大多数主要的应用程序都已经刷新版本。尤其是，Python 3.11 已经包含在 Debian 12 中，这将有助于帮助开发者和很多使用情况。此外，LibreOffice 7.4 和 Firefox 102.9 ESR 也是两个重要的更新。这里有一份关于主要应用程序和软件包升级的小列表:

* LibreOffice 7.4.4
* Firefox 102.9 ESR
* GIMP 2.10.32
* OpenJDK 11.6
* PHP 8.2
* Python 3.11+
* Samba 4.17

#### 杂项更新

* Debian 12 现在在双启动设置时可以检测到 Windows 11
* 在 Debian 和 Cinnamon 桌面环境中，默认启用支持屏幕阅读器
* 在 30 秒超时后，自动启动语音合成
* 更容易地检测多路径设备
* 支持多个 initrd 路径
* 支持新的 ARM 和 RISC-V 设备
* 放弃实验性的 DMRAID 支持

你可以 [在这里](https://lists.debian.org/debian-devel-announce/2022/09/msg00004.html) 了解更多的变化。

#### 默认的主题和墙纸

在每一次发布版本中，Debian 都会从引入一些来自社区的令人惊叹的艺术作品。Debian 12 以 “<ruby> 绿宝石 <rt>  Emerald </rt></ruby>” 作为默认的艺术作品主题。

“*经过抛光和凿刻，或在它们原始和纯天然的状态下，宝石可以有无限的形状。”*

通过 Emerald 主题，创建者希望将光线与矿物质以一种简洁至近乎空灵的设计结合在一起。

默认主题和横幅可以在安装程序、动画 Plymouth 、壁纸等所有的位置都可以看到。

这里是一些选自 [官方画廊](https://wiki.debian.org/DebianArt/Themes/Emerald) 的图片。

![Default wallpaper](/data/attachment/album/202304/05/112123f6ssslkqgs5uhf5k.jpg)

![Debian 12 Plymouth](/data/attachment/album/202304/05/112129nqnygw3qnw7zqfgq.jpg)

### 如何下载 Debian 12

**注意**: Debian 12 尚未发布稳定版本。因此，不要在正式工作中使用它，也不要从 Bullseye 升级到 “Bookworm” 。

如果你正在运行 Debian 11 “Bullseye” ，你可以通过任意的文本编辑器来打开 `/etc/apt/sources.list` ，并添加下面的命令行。务必验证镜像 URL ，并更改下面的命令行。

```
deb http://http.us.debian.org/debian bookworm main non-free contrib
deb http://security.debian.org/ bookworm/updates main contrib non-free
deb http://http.us.debian.org/debian sid main non-free contrib

```

在添加这些命令行后，刷新 `apt` 缓存:

```
sudo apt update

```

接下来，运行下面的命令行来获取更新：

```
sudo apt dist-upgrade

```

下载全新的 ISO 文件，访问任意一个下面的链接。

>
> **[下载 Debian 12 (DVD) ISO – Alpha2](https://cdimage.debian.org/cdimage/bookworm_di_alpha2/amd64/iso-dvd/)**
>
>
>

### 总结

总而言之，Debian 12 “Bookworm” 是一个令人印象深刻的版本，带来了一些新的特色功能和改善。从最新的桌面环境到新内核和更新的软件包，这个发布版本为新用户和有经验的 Debian 用户都提供了很多东西。

因为它专注于稳定性、安全性和开源原则，所以，对于那些寻求替换 Ubuntu 和通用操作系统的人来说，Debian 12 “Bookworm” 可能是最好的选择。

这个版本的最终版本预期在 2023 年第二季度发布。

>
> **[Debian 12 更改日志（有点过时了）](https://www.debian.org/releases/bookworm/amd64/release-notes/ch-whats-new.en.html)**
>
>
>

---

via: <https://www.debugpoint.com/debian-12-features/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #962 德国法院裁定 Youtube-DL 的托管商败诉

Summary:
? 德国法院裁定 Youtube-DL 的托管商败诉
? 斯坦福大学发布人工智能状况报告
? 采用通用密码的车库门设备
»
»

![](/data/attachment/album/202304/05/173434a68vdvwdun1b6edw.jpg)

![](/data/attachment/album/202304/05/173444zz91y59b253jv9v2.jpg)

### 德国法院裁定 Youtube-DL 的托管商败诉

德国法院已经命令托管服务商 Uberspace 将开源的 YouTube-DL 软件的网站下线。该裁决是由索尼、华纳和环球公司去年提起的版权侵权诉讼的结果，他们称，“YouTube-DL 的服务使用户可以在不付费的情况下翻录流媒体和下载受版权保护的音乐。”。Uberspace 将对判决提出上诉，他们认为，“该命令实际上相当于对 YouTube-DL 的全面禁止，没有考虑到该软件的潜在合法用途。”与此同时，Youtube-DL 的代码仍然可以在 GitHub 上找到。需要提及的是，原始版本的 YouTube-DL 在 GitHub 上的最后一个发布版本是 2021 年底发布的。而一些复刻版本还在继续活跃。

>
> **[消息来源：Torrent Freak](https://torrentfreak.com/music-labels-win-legal-battle-against-youtube-dls-hosting-provider-230404/)**
>
>
>

>
> 老王点评：不知道下一步这个压力是否就会转移到 GitHub，比如不允许发布构建版本。
>
>
>

![](/data/attachment/album/202304/05/173455cvwwdjjej0v20ddl.jpg)

### 斯坦福大学发布人工智能状况报告

虽然现在人工智能发展之快，让任何与人工智能有关的报告一发布就面临过期的风险，但是我们仍然能从这份 386 页的 [报告](https://aiindex.stanford.edu/wp-content/uploads/2023/04/HAI_AI-Index_Report_2023.pdf) 中得到一些有用的信息：

* 在过去的十年里，人工智能的发展已经从学术界主导翻转到了工业界主导，而且这没有改变的迹象。
* 在传统基准上测试模型正变得困难，这里可能需要一种新的模式。
* 人工智能训练和使用的能源占用正在变得相当大，但我们还没有看到它如何在其他地方增加效率。
* 与人工智能相关的技能和工作岗位正在增加，但没有你想象的那么快。
* 政策制定者们正在努力编写一个明确的人工智能法案，如果有的话，这是一个愚蠢的差事。
* 投资已经暂时停滞，但这是在过去十年的天文数字般的增长之后。
* 超过 70% 的中国、沙特和印度受访者认为人工智能的好处多于坏处。美国人呢？35%。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/04/04/the-takeaways-from-stanfords-386-page-report-on-the-state-of-ai/)**
>
>
>

>
> 老王点评：你看出来这些结论哪些不正确或不太正确吗？
>
>
>

![](/data/attachment/album/202304/05/173509iuyd53joxyad14yx.jpg)

### 采用通用密码的车库门设备

一个市场领先的车库门控制器充满了严重的安全和隐私漏洞。这些设备都采用了相同的容易找到的通用密码来与服务器进行通信，它也会广播未加密的电子邮件地址、设备 ID 以及开关门等信息。估计有超过 4 万台设备受到影响，这些设备位于住宅和商业地产中。任何有一定技术背景的人都可以在设备厂商的服务器上搜索到指定的电子邮件地址、设备 ID 或名称，然后向相关控制器发出指令。

>
> **[消息来源：Ars Technica](https://arstechnica.com/information-technology/2023/04/open-garage-doors-anywhere-in-the-world-by-exploiting-this-smart-device/)**
>
>
>

>
> 老王点评：虽然我没车库，但是我依然惊讶于现在还有这样对安全毫无意识的厂家。
>
>
>


技术领域小白必不可少的工作技巧和诀窍

![](/data/attachment/album/202304/06/000732j1ipb1whhhlwgpen.jpg)

>
> 开始一份新工作对任何人来说都让人害怕。下面是如何在你的第一份技术工作的早期阶段找到方向。
>
>
>

刚刚入职那几天确实令人害怕。 我现在依然可以清晰举出很多例子，例如在第一天上班前的晚上无法入睡，因为不知道第二天将要发生什么而内心崩溃。对于大多数人来说，开始一份新工作就像踏入未知领域。即使你已是行业的资深人士，不可否认的是，你内心可能还是会对即将发生的事情感到有点害怕。

可以理解的是，刚入职的时候你的事情很多。你要认识新的人，有新的项目和技术要了解，有文档要阅读，有教程要看完，还有没完没了的人事培训和要填的文件。这可能让你感觉压力山大，再加上你还面临着相当大程度的不确定性和未知数，以上种种能引起焦虑。

促使我写这篇文章有两个原因，首先是在我还是学生的时候，大部分讨论都围绕着如何找一份技术工作，却没有人谈论接下来发生的事情。如何在新角色中脱颖而出？现在回过头来看，我想我当时认为最困难的事情是得到一份工作，之后发生什么的一切我都可以自己弄清楚。

同样的，在我开始在这个行业工作之后，我发现大部分我看到的与职业相关的内容都是讨论如何从一个高级职位升到另一个高级职位。没有人真正谈论在此中间我们要做什么。实习生和初级工程师呢？他们在早期职业生涯中如何找到方向？

在拥有了三年全职软件工程师的经验（以及之前的几次实习）之后，我将这段时间的经历进行了复盘，并整理出一份我自己在适应新技术职位时使用过的技巧和诀窍清单。我想不只局限于前面的几个月，而是优先考虑如何让这段经历帮助你实现长期的成功。

### 反思现有的流程和文档

大多数新员工一开始要么拥有一大堆文档，要么根本没有。你可以将这视为一个机会，而不是被这两种可能性中的任何一种所淹没。

从现有文档中找到缺口，并想想你可以怎样为下一位入职的工程师做出这方面的改进。这不仅能显示你工作的主动性，还表明你致力于改进团队中的现有流程。

上述两种极端情况我都遇到过。我在没有任何文档的团队中工作过，也在一些更新文档方面很勤快的团队中工作过。对于前者，你的路径非常简单直接，你可以致力于创建那些缺失的文档。对于后者，你总是可以想办法改进已有的东西。有时，过多的书面文件也会让人感到害怕，尤其是对新员工而言。有些事情可能通过其他媒介进行更好地解释，比如视频教程或截屏。

### 勤问问题

我会建议你在开始一份新工作时研究一下公司是否会为你分配搭档。这在公司中是相当普遍的做法。工作搭档的主要作用是在你入职时为你提供帮助。我发现这非常有用，因为这个人能够针对你所有的问题给出指导，你就不必为了寻找合适的人或部门而四处奔波。

虽然我鼓励提问，但在提问之前也有必要做功课，包括：

* 做好调查。这包括进行网络搜索、查看论坛和阅读现有文档。使用所有可用的工具。然而，给自己设定时间规划是很重要的。你必须平衡好尽职调查与牢记手头项目截止日期和可交付成果。
* 说出来。作为母语不是英语的人，我建议你在提问之前大声把想法说出来。根据我的经验，我经常发现自己会用一种语言（通常是我的母语）思考但不得不用另一种语言来解释，而当我在一些困难的问题中挣扎时这一现象尤为突出。有时这颇有挑战性，因为经过翻译后的想法可能没那么容易理解。
* 组织思绪。当你在为某件事而苦苦挣扎时，可能同时有很多不同的想法在你的脑海中翻来覆去。这些想法可能对你来说都挺有道理的，但对于别人来说却不一定说得通。对此，我建议你坐下来，收集你的想法，写下来，然后大声说出来。这一做法可确保当你在解释自己的思维过程时，你能按照预期进行流畅地表达出来，听众也可以紧跟你的思路。

这种方法称为橡皮鸭调试法，是开发人员在调试时的常见做法。背后的概念是，有时向第三方解释你的问题非常有助于你找到解决方案，同时也证明了你出色的沟通技巧。

尊重别人的时间。即使你在向你的搭档求助时，也要意识到他们也有自己的日常任务要完成。 我尝试过的一些事情包括：

* 写下我的问题，然后留出一些时间与我的导师交流，以便与他们交谈。
* 整理问题而不是反复寻求帮助，这样导师可以在他们有空的时候着手解决。
* 安排 15-20 分钟的快速视频聊天，特别是如果你想共享屏幕，这一方法可以很好地展示你的发现。

我认为这些方法是更好的选择，因为这么做你能得到对方全部的关注，而不是在他们忙着其他事情的时候每隔几分钟打扰他们一下。

### 深入研究你的项目

即使在拥有出色文档的团队中，开始你的技术项目也可能非常艰巨，因为一个项目涉及多个部分。不过，随着时间的推移，你将了解团队是如何做事的。但是，通过记下一张实用清单，这包括基本项目设置、测试要求、审查和部署流程、任务跟踪和文档，你将迅速搞清楚一切，节省了你的时间和潜在的麻烦。

如果你开始的项目没有文档（我就遇到过这种情况），请看看你能不能找到当前或以前的项目所有者并了解基本的项目结构，这包括设置、部署等。

* 确定你的团队在 IDE（集成开发环境）中的偏好。你可以自由使用你喜欢的 IDE，但使用和团队相同的 IDE 会比较好，尤其是在调试的时候，因为 IDE 的选择会影响调试。不同的 IDE 提供不同程度的调试支持。
* 了解如何进行调试。我的意思不仅仅是使用打印语句（不是说这种方法有什么问题）。充分利用团队的经验！
* 了解测试要求。这可能取决于项目的范围和团队的一般惯例，越早弄清楚要求，你在后期推送自己的修改请求时就会越有信心。
* 可视化部署过程。这个过程可能因团队、公司等而异。无论这个过程是非正式或正式，请确保你了解自己提交的新代码是如何被部署至新环境中、部署流水线是什么样的、如何安全地部署代码更改、在构建失败后可以怎么做，如何回滚错误的更改，以及如何在生产环境中测试你的更改。
* 了解工单流程。了解如何记录工单以及要求的详细程度。你会由此发现每个公司各不相同。有的公司希望我们每天提交工单以显示我们的进度。有的公司可能不需要如此详细。

基于我刚才提到的所有内容，我建议你可以在入职头几周内做一个有益的、一体化的练习——跟随模仿另一位工程师并进行结对编码。这么做让你可以端到端地观察整个流程，从派单给工程师到部署到生产中都清清楚楚。

如果刚入职几周时你还没有机会亲身实践，可能你会感到沮丧。为了解决这个问题，你可以让你的经理也给你派一些初级的单子。这些通常是一些小任务，例如代码清理或添加单元测试。不过，它们允许你修补代码库，这有助于提高你的理解并给你带来成就感，这在新工作的初期是非常鼓舞人心的。

### 当你遇到困难时尤其要大声说出来

我想强调一下当你碰到困难时沟通的重要性。遇到困难总是难免的，尤其是在一份新工作的最初几个月，尽管这可能会令人沮丧，但这正是你的沟通技巧大放异彩的地方。

* 让工作中的阻碍和进步透明化。即使是像权限问题一样的小事（新员工常常遇到的障碍之一），也要确保你的经理知道。
* 如果有些工作耽搁了，不要等到最后一天才向团队报告。你的项目延迟会推动许多其他事情的发展。对于一些必要的项目延迟请提前告知，以便你的经理可以与相关人员分享这一信息。
* 不要因为匆忙而忘记全面测试代码的更改或为你的代码的写文档等事情。

### 获得技术大局观

获得技术大局观是我个人一直在努力改进的地方，并且我一直在积极改变自己对此的看法。

当年我开始实习时，我会非常专注于自己想学的东西。我会非常专注于我的项目，但对其他一切完全视而不见。多年后，我意识到对其他或相邻的项目视而不见可能不是最明智的。

首先，技术大局观会影响你对自身工作的理解。我曾经天真地以为，只要我专注于自己的项目就可以成为一名优秀的工程师。但事情并非如此。你应该花时间了解其他可能与你的项目有所交互的服务。你无需深入了解细节，但建立基本的理解也会大有帮助。

新员工的一个普遍经历是与公司其他人脱节，会有这种感觉很正常，尤其是在大公司。我是一个很快就会产生排斥感的人，所以当我刚到 Yelp 时 —— 这是一家比我以前的公司大得多的公司，项目规模也大得多，我优先考虑了解大局。我不仅努力建立对我的项目的理解，还认真了解了其他相邻项目。

在 Yelp 的头几周，我与团队中的其他各位工程师坐下来，请他们给我一个关于我将要做什么和项目的总体目标的概况。这种方法非常有用，因为我不仅根据工程师的资历和他们在项目上的工作时间得到了不同程度的解释，而且还加深了我对我将要从事的工作的理解。我参加这些会议的目的，是希望我对项目掌握的认识让我能够向街上的陌生人解释我所做的事。为此，我还请我的技术主管向我解释，当用户打开 Yelp 应用程序并搜索内容时，我的工作成果会在什么时候出现。

在这种情况下架构图也很有用，尤其是它能帮助你了解不同服务是如何交互的。

### 建立期望

在过去很长一段时间里，我以为自己只需要尽力而为，成为一名优秀的员工就行。只要我有在工作，达成目标，而且没有人投诉，那就足够好了，对吧？错！

你必须对你的职业有战略眼光。你不能只是将它外包给人们的一片好心，并希望自己只要达成了目标就能得到想要的结果。

* 在你开始新工作的那一刻就建立明确的标准。这因公司而异，因为有些组织有非常明确的措施，而其他组织可能几乎没有。如果是后者，我建议你在头几周内找你的经理坐下来谈谈，制定并统一一个标准。
* 确保你彻底了解公司将如何评估你以及采用什么方法进行评估。

我记得在我的第一份全职工作中，我对自己的第一次评估谈话一头雾水。整个谈话非常含糊不清，而且我对自己的长处、短处甚至可以如何改进都一无所知。

起初，我很容易地将一切都归咎于我的经理，因为作为新员工的我认为这是他们的工作，而不是我的职责。但随着时间的推移，我意识到，就我的绩效评估而言，我不能只是袖手旁观。你不能只做好工作并期望它就足够了。你必须积极参与到这些对话中。你必须确保你的努力和贡献被注意到。为了确保你的工作得到认可，你可以做很多事情，从定期参与技术设计对话到设置团建活动。

与建立期望相联系的还有积极寻求反馈的重要性。不要等到每三、四个月进行一次正式的绩效评估时才知道自己的表现如何。积极与你的经理建立反馈循环。虽然这听起来很可怕，但尝试定期进行寻求反馈的谈话。

### 在分布式团队中找到方向

在过去两年中我们的工作场所在不断变化，如今在远程和分布式团队中工作已成为常态，不再罕见。我列出了一些技巧，帮助你在分布式团队中快速找到工作方向：

* 建立核心时间并将其设置在你的日历上。核心时间是你的团队一致同意的几个小时，在这段时间里，大家都明白自己应该在线并能随时响应。这样做很方便，因为会议只会安排在这个时间段，让你在计划自己一天的工作时更轻松。
* 注意人们的时区和午餐时间。
* 在虚拟世界中，你需要付出更大的努力来维持社交互动，而小小的心意却可以大大有助于让工作环境更加友好。其中包括：

* 开始会议时，互相寒暄并询问人们周末/一天过得如何。这有助于打破僵局，让你能够与团队成员建立更私人的、超越工作的联系。
* 建议定期举行非正式的虚拟聚会，与团队进行一些随意的闲聊。

### 维持工作生活间的平衡

在你职业生涯刚开始的时候，你很容易认为只要投入很多时间就能成功，特别是考虑到我们全天候待命的“忙碌文化”，以及认为建立生活工作的平衡是在职业生涯下阶段才需要考虑的想法。但这些想法与事实相去甚远，因为工作与生活的平衡不会神奇地发生在你身上。你需要积极和非常勤奋地去找到个人的平衡点。

没有工作与生活平衡的可怕之处在于它是慢慢蔓延到你身上的。刚开始是你下班后还在查看电子邮件，然后慢慢地，你开始周末也在工作，一直感到疲惫不堪。

我列出了一些提示，可以帮助你避免这种情况：

* 关闭/暂停通知和电子邮件并将自己设置为离线。
* 不要在周末工作。刚开始是你需要在这一个周末工作，但不知不觉间，你会发现自己大部分周末都在工作。不管是什么工作，它可以等到星期一。
* 如果你是待命的工程师，请了解公司的相关政策。一些公司提供金钱补偿，而另一些公司可能会以休假代替。利用这个时间。不使用 PTO（带薪休假）和健康日等福利确实会缩短你的工作寿命。

### 总结

毫无疑问，开始一份新工作压力很大而且很困难。我希望这些方法和技巧会让你的头几个月变得更轻松，并为你在新职位上取得巨大成功做好准备。记住，勤沟通，确立职业目标，积极主动，有效地使用公司的工具。做到这些，我相信你会做得很好！

---

via: <https://opensource.com/article/23/2/your-first-tech-job>

作者：[Fatima](https://opensource.com/users/ftaj) 选题：[lkxed](https://github.com/lkxed/) 译者：[XiaotingHuang22](https://github.com/XiaotingHuang22) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


NixOS 系列 #5：如何在 NixOS 上设置主目录管理器

Summary: 在本指南中，我将指导你如何在 NixOS 上设置一个主目录管理器，以及如何使用它来安装软件包。

![](/data/attachment/album/202304/06/110641k8v9q1152hhhh114.jpg)

在发表这篇文章之前，我解释了如何为一个单用户系统 [在 NixOS 中安装和删除软件包](/article-15645-1.html)。

但是，如果你正在供多个用户使用，有一个很好的方法来分别满足每个用户的需求。

在本指南中，我将指导你如何在 NixOS 上设置一个<ruby> 主目录管理器 <rp>  （ </rp> <rt>  Home Manager </rt> <rp>  ） </rp></ruby>，以及如何使用它来安装软件包。

如果你是新读者，本系列中讨论的一些资源包括：

* [使用 NixOS 的原因](/article-15606-1.html)
* [在虚拟机上安装 NixOS](/article-15624-1.html)
* [安装 NixOS 后要做的事情](/article-15663-1.html)

### 在 NixOS 上设置主目录管理器

在本指南中，我将指导你通过 2 种方式来设置主目录管理器：

* 独立的主目录管理器（使用单独的配置文件）
* 作为一个 NixOS 模块（在 `configuration.nix` 文件中使用它）

那么，让我们从独立方式开始。

#### 独立安装的主目录管理器

如果你使用的是 NixOS 的稳定频道，你可以使用以下命令来配置主目录管理器：

```
nix-channel --add https://github.com/nix-community/home-manager/archive/release-22.11.tar.gz home-manager

```

在编写本指南时，稳定版是 `22.11`。

而 **如果你在一个不稳定的频道上**，请使用以下命令：

```
nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager

```

无论你使用稳定版还是不稳定版，下面的步骤都是一样的。

一旦完成，更新频道：

```
nix-channel --update

```

最后，使用下面的命令来安装主目录管理器：

```
nix-shell '<home-manager>' -A install

```

? 在安装时，可能会出现以下错误：

![安装主目录管理器时出现构建错误](/data/attachment/album/202304/06/110643if01f44x191v499u.png)

重新启动你的系统并再次使用安装命令，它将开始安装。

一旦完成，它将显示独立安装的主目录管理器的位置：

![主目录管理器在NixOS中的位置](/data/attachment/album/202304/06/110644kg7j9zeuivn9bq06.png)

#### 将主目录管理器安装为 NixOS 模块

>
> ⚠ 如果你选择将主目录管理器作为 NixOS 模块使用，你将需要 sudo 权限。
>
>
>

如果你在一个稳定的频道上（在写本文的时候，是 `22.11`），你可以使用下面的命令来添加主目录管理器的稳定频道：

```
sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-22.11.tar.gz home-manager

```

而 **如果你使用的是不稳定通道或主通道**，则使用以下命令：

```
sudo nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager

```

一旦你使用上面的任何一条命令完成了添加频道的工作，就用下面的方法更新频道：

```
sudo nix-channel --update

```

接下来，用以下方法打开 `configuration.nix` 文件：

```
sudo nano /etc/nixos/configuration.nix

```

并在 `imports []` 中添加以下一行：

```
<home-manager/nixos>

```

![将主目录管理器安装为 NixOS 模块](/data/attachment/album/202304/06/110644oczkc2r5ko224zcc.png)

现在，跳到该行的末尾，在 `}` 前添加以下内容：

```
home-manager.users.{username} = { pkgs, ... }: {
  home.packages = [ ] ;
  };

```

![NixOS 配置文件中的主目录管理器模块的格式](/data/attachment/album/202304/06/110644p8s1e9mz9391e9cz.png)

上面这一行是为了方便安装和删除软件包而添加的，我接下来会告诉你。

现在，[保存修改并退出 Nano](https://linuxhandbook.com/nano-save-exit/?ref=itsfoss.com) 文本编辑器。

接下来，重建配置，并做一个切换：

```
sudo nixos-rebuild switch

```

但如果你使用的是稳定版，并使用上述命令，就会出现以下错误：

>
> ? 错误： 选项 `home-manager.users.user.home.stateVersion` 被使用但没有定义：
>
>
>

![错误： 选项  已被使用但未被定义。](/data/attachment/album/202304/06/110645o7q7mx0gq200al00.png)

要解决这个问题，你必须在你的主目录管理器块中添加 `home.stateVersion`。

在写这篇文章时，我正在运行 22.11，所以整个主目录管理器块看起来像这样：

```
home-manager.users.{username} = { pkgs, ... }: {
  home.stateVersion = "22.11";
  home.packages = [ ] ;
  };

```

![如何解决  选项被使用但没有定义。](/data/attachment/album/202304/06/110645m9bm99b74z5eum48.png)

保存修改，按 `Ctrl+O`，按回车键和 `Ctrl+X` 退出 Nano 文本编辑器。

现在，试着重建配置并再次进行切换，应该可以解决问题。

### 如何在 NixOS 上使用主目录管理器安装软件包

现在你已经安装了主目录管理器，如何用它来安装软件包：

#### 使用独立安装的主目录管理器

首先，用下面的方法打开配置文件：

```
nano /home/$USER/.config/nixpkgs/home.nix

```

跳到行末，在 `}` 前添加以下代码块：

```
home.packages = [];

```

现在，你所要做的就是在这两个大括号之间写上软件包的名称。

例如，如果我想安装 `htop`，我将得输入以下内容：

```
home.packages = [pkgs.htop];

```

是的，你通常要在软件包的名称后面加上 `pkgs.`。

但是，如果你想在每次安装新包时不使用 `pkgs.`，可以改变代码块的语法，如图所示：

```
home.packages = with pkgs; [];

```

而现在，你不再需要在每次安装时使用 `pkgs.`：

```
home.packages = with pkgs; [htop];

```

例如，在这里，我想安装 `htop`、`firefox`和 `libreoffice`，所以我的 `home` 块会看起来像这样：

![在 NixOS 上使用主目录管理器安装多个软件包](/data/attachment/album/202304/06/110645d3exfdszmrkzkrym.png)

一旦你完成了添加你喜欢的软件包，保存配置文件并使用以下命令来安装软件包：

```
home-manager switch

```

#### 使用 NixOS 模块方式

首先，用以下命令打开 `configuration.nix` 文件：

```
sudo nano /etc/nixos/configuration.nix

```

在配置部分，我已经添加了主目录管理器块，所以剩下的就是在 `home.packages = [ ];` 里面添加软件包的名称，格式如图所示：

```
home.packages = [ pkgs.package_name ] ;

```

>
> ?我已经在上节提到软件包名称前你可以使用 `pkgs.` 。
>
>
>

例如，如果我想 [安装 htop](https://itsfoss.com/use-htop/)、Firefox 和 LibreOffice，那么我将添加：

```
pkgs.htop pkgs.firefox pkgs.libreoffice

```

然后我的主目录管理器块会看起来像这样：

![作为 NixOS 模块在主目录管理器中安装多个软件包](/data/attachment/album/202304/06/110645kuczbvmfweevf28c.png)

现在，保存修改并退出文本编辑器。

接下来，重建配置并使用以下命令进行切换：

```
sudo nixos-rebuild switch

```

这是这样！软件包将很快被安装。

### 这就结束了

我认为你应该选择独立安装，因为你不需要使用超级用户的权限。另外，如果你运行一个有多个用户的系统，为不同的用户拥有不同的配置文件是相当方便的。

因此，除非你想用一个文件来实现各种目的，否则我认为没有其他理由使用模块选项。

就这样，我结束了 NixOS 的初学者系列。我希望它能给你一个足够好的平台来熟悉这个独特的 Linux 发行版。

? 你喜欢 NixOS 系列文章吗？对于 NixOS 的初学者，我们还有什么要介绍的吗？请提供你的宝贵意见。

---

via: <https://itsfoss.com/home-manager-nixos/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed/) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #963 谷歌要求安卓应用必须可以删除账户和数据

Summary:
? 谷歌要求安卓应用必须可以删除账户和数据
? 谷歌公布其训练 PaLM 模型的超级计算机细节
? Meta 将推出创造广告的生成型人工智能
»
»

这么喜欢谜语人？拼多多被下架不能说？一搜全是复读机垃圾信息。知乎甚至有回答莫名其妙贴个404的链接，结果谷歌一下发现是彭博的文章Pinduoduo App Malware Detailed by Cybersecurity Researchers，呵呵彭博什么水平不用多说了吧，原文摘录一小段：“Those conclusions agreed in large part with those of researchers that had posted their discoveries online in past weeks, though Bloomberg News hasn’t verified the authenticity of the earlier reports.” 后面更离谱，有个链接点进去直接微信朋友圈，内容是应用获取系统权

![](/data/attachment/album/202304/06/160442cg6rzhfsx6lasxls.jpg)

![](/data/attachment/album/202304/06/160533kdegr0ddzb1rpdv5.jpg)

### 谷歌要求安卓应用必须可以删除账户和数据

谷歌宣布，其安卓应用商店上的应用很快就必须让你可以在应用内和网页上删除账户及其数据。当用户要求完全删除账户时，开发者也必须擦除账户的数据。该政策还要求，你可以删除某些数据（比如你上传的内容），而不必完全删除你的账户；此外，它还确保你不必为了清除你的信息而重新安装应用程序，通过网页就可以进行。该政策将分阶段生效。谷歌的应用商店将在 2024 年初开始显示这些变化。而苹果的应用商店已经在几个月前制定了类似政策。

>
> **[消息来源：Engadget](https://www.engadget.com/google-will-require-that-android-apps-let-you-delete-your-account-and-data-170618841.html)**
>
>
>

>
> 老王点评：苹果和谷歌的应用商店还比较值得相信。至少这些商店不会放纵恶意应用。大家知道我说的是什么。
>
>
>

![](/data/attachment/album/202304/06/160544uzns8au1uqafs28t.jpg)

### 谷歌公布其训练 PaLM 模型的超级计算机细节

谷歌的 PaLM 模型是迄今为止其公开披露的最大的语言模型，谷歌通过将其分割到由 4,000 个芯片组成的两台超级计算机上，历时 50 天训练而成。此外，Midjourney 也使用该系统来训练其模型。谷歌称，对于同等规模的系统，采用这些芯片比基于英伟达 A100 芯片的系统快 1.7 倍，省电 1.9 倍。但谷歌没有与英伟达目前的旗舰产品 H100 芯片进行比较，因为 H100 是在谷歌的芯片之后上市的，而且是用更新的技术制造的。

>
> **[消息来源：路透社](https://www.reuters.com/technology/google-says-its-ai-supercomputer-is-faster-greener-than-nvidia-2023-04-05/)**
>
>
>

>
> 老王点评：AI 的发展兜了一圈，终究还是芯片和计算能力的比赛。
>
>
>

![](/data/attachment/album/202304/06/160557c3ec5e55xhlzxaez.jpg)

### Meta 将推出创造广告的生成型人工智能

Meta 称，“大型语言模型开发中的相当多的技术是由我们的团队开创的，……在几个月前刚刚创建了一个新的团队，生成性人工智能团队”。他们认为人工智能可以提高广告的有效性，部分原因是告诉广告商在制作广告时应该使用什么工具。公司不用在广告活动中使用单一的图像，而是可以让人工智能制作适用于不同受众的图像。

>
> **[消息来源：日经新闻](https://asia.nikkei.com/Business/Technology/Meta-to-debut-ad-creating-generative-AI-this-year-CTO-says)**
>
>
>

>
> 老王点评：有人用 AI 拯救（或毁灭）世界，而有人用 AI 来制作广告和让广告更无孔不入。
>
>
>


用 Emojicode 写一个可爱的程序

Summary: 这种有趣的开源语言是学习编码真正的完美选择。

哈哈哈，真有趣！

来自黑龙江哈尔滨哈尔滨工业大学的 Firefox 112.0|GNU/Linux 用户

看起来就是简单的文本替换

太抽象辣

来自海南海口的 Chrome Mobile 99.0|Android 12 用户

?乐了 哪里都有抽象小鬼

来自湖北荆门的 Chrome Mobile iOS 112.0|iOS 16.3 用户

?乐了 哪里都有抽象小鬼

这种有趣的开源语言是学习编码真正的完美选择。

![](/data/attachment/album/202304/07/141230yv2s53itmiw45ots.jpg)

>
> 这种有趣的开源语言是学习编码真正的完美选择。
>
>
>

在这篇文章中，我将介绍一个最好的编码语言，学习如何制作任何东西！它叫做 Emojicode，是由 Theo Belaire 在 2014 年创建的，它是一种开源的编程语言，使用 emoji 字符来表示其语法。当用 Emojicode 开发时，表情符被用来创建变量、函数和控制结构。因为它是一种静态类型的语言，变量类型必须在使用前声明，但它也支持类和继承等面向对象的概念。这种语言可以在每个操作系统上运行，它是一种超级有趣的编码方式，特别是当你是一个非英语母语的人时。这很有帮助，因为象形表示可以把我们大家聚集在一起，让我们以类似数学的方式说同样的语言。

### 先决条件

在本教程中，我使用的是基于 Debian 的操作系统。我的工具可能与你的操作系统的要求不同。以下是我所使用的工具：

* [Geany](https://github.com/geany/geany)，一个 Linux 下的开源 IDE。
* IBus，它允许你挑选表情符并把它们放在你的编辑器中。我使用的界面被称为 **emoji picker**。
* 基于 Debian 的 Linux。
* 一个 C++ 编译器。我使用的是 `g++` 编译器。
* [Emojicode](https://github.com/emojicode/emojicode)

我使用的是 Linux 操作系统，但你可以 [阅读文档](https://www.emojicode.org/docs/) 了解在其他操作系统上使用它时可能需要采取的任何特殊步骤。

### 在 Linux 上安装 Emojicode

有几种方法可以在你的电脑上安装 Emojicode，但它们有一个很酷的 [神奇的安装页面](https://www.emojicode.org/docs/guides/)，可以告诉你具体该怎么做。下面是我的做法：

```
$ wget https://github.com/emojicode/emojicode/releases/download/v1.0-beta.2/Emojicode-1.0-beta.2-Linux-x86_64.tar.gz -O emojicode.tar.gz \
    && tar -xzf emojicode.tar.gz && rm emojicode.tar.gz \
    && cd Emojicode-1.0-beta.2-Linux-x86_64 && ./install.sh \
    && cd .. && rm -r Emojicode-1.0-beta.2-Linux-x86_64

```

Emojicode 的安装过程提供了有用的反馈。

![The emojicode installation procedure provides useful feedback along the way.](/data/attachment/album/202304/07/141304mo66ec077m780kxa.jpg)

现在，你已经安装好了，是时候开始编写代码了！

### 它是怎么运作的？

首先，所有 Emojicode 文件的扩展名都以文件名 `.?` 结尾，但因为你不能在一般的文件名中这样做，所以它被翻译成 `filename.emojic`。这里是最重要的语法元素：

* 把 `?` 放在一行的开头，表示要执行哪些代码块
* 用 `?` 开始一个代码块
* 用 `?` 来结束一个代码块
* 想打印什么吗？就用 `? ? <string> ? ❗`

还有很多其他的，所以这里有一些实际的例子。

### 打印一首俳句

首先，试着打印一首漂亮的俳句来玩玩吧! 在这个例子中，我将添加一行注释。看看你是否能识别它。

```
??
? This is a single line comment for fun
? ?Emojicode is great,? ❗
? ?Fun and expressive code,? ❗
? ?no sadness, just joy.? ❗
?

```

现在我们需要保存我们的代码，并通过我们的编译器运行它，使之成为一个漂亮的可执行文件：

```
$ emojicodec haiku.emojic
$ ls
haiku  haiku.emojic  haiku.o

```

正如你所看到的，代码已经被编译并生成了两个文件，其中一个是可执行的。运行 `haiku` 文件：

```
$ ./haiku
Emojicode is great,
Fun and expressive code,
no sadness, just joy.

```

### 数学和变量操作

接下来，你要同时做几件事：一点点数学和变量的改变。首先，将一个变量赋值为 0：

```
0 ➡ ??x

```

你刚刚使用蜡笔（`?`）表情符、新建（`?`）表情符和变量名称创建了一个新变量，同时还将该变量赋值为 0。

接下来，用磁铁（`?`）表情符打印一行包括该变量的内容：

```
? ?The value is ?x? ? ❗

```

接下来，使用加号（`➕`）和箭头（`⬅`）表情符改变变量：

```
x ⬅➕ 1

```

然后打印另一行的值。如此这般，然后打印出最终的数值。如下：

```
? ?

?Updating a variable using math
0 ➡ ??x
? ?The value is ?x? ? ❗

x ⬅➕ 1
? ?The value is ?x? ? ❗

x ⬅➕ 15
? ?The value is ?x? ? ❗

x ⬅➖ 9
? ?The value is ?x? ? ❗

x ⬅➗ 2
? ?The final value is ?x? ? ❗
?

```

接下来，用 `emojicodec` 编译代码，然后用你的可执行代码来看看结果：

```
$ emojicodec math.emojic
$ ./math
The value is 0
The value is 1
The value is 16
The value is 7
The final value is 3

```

如你所见，作为变量打印出来的所有内容都已使用新数学进行了更新。你可以用许多数学表情符来进一步操作。下面是一些更多的运算符：

```
? is your modulo
◀ Less than
▶ Greater than
◀? less than or equal to
▶? greater than or equal to

```

### Emojicode 的怪癖

当我在文档中来回查看时，我发现了一些有趣的怪癖。其中之一是，当从用户那里抓取输入时，由于一些已知的编译器问题，耳朵的肤色很重要。

获取用户输入的动作是这样的：

```
??▶??❗

```

获取和分配用户输入的操作是这样的：

```
??▶??❗ ➡ inputText

```

我试图让它工作，我的编译器出现了一些问题，我发现了这个问题。你也可能会在这里和那里遇到一些小问题。如果你遇到了，请创建一个 [议题](https://github.com/emojicode/emojicode/issues)，这样它就有可能被修复。

### 没有技巧，只有很棒的代码

虽然我可以介绍更多内容，但我可以向你保证，这段令人惊叹的代码背后的文档非常丰富。尽管我写这篇文章只是为了赶上愚人节的乐趣，但我不得不承认这是有史以来最好的语言之一，因为它教会了你很多非常真实的编程概念。我恳切地建议把它作为一种有趣的方式来教你的一些朋友、孩子，或者是对编码感兴趣的同学。希望你度过了一个充满乐趣的愚人节！

---

via: <https://opensource.com/article/23/4/emojicode>

作者：[Jessica Cherry](https://opensource.com/users/cherrybomb) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


使用开源思维导图 Draw.io

Summary: 下次你需要头脑风暴、组织想法或计划项目时，不妨试试 Draw.io。

相当于visio 的网页版。。。

挺好用的，轻量级，美观而又不华而不实。我和周围朋友写论文画图都用这个，墙裂推荐！

下次你需要头脑风暴、组织想法或计划项目时，不妨试试 Draw.io。

>
> 下次你需要头脑风暴、组织想法或计划项目时，不妨试试 [Draw.io](http://Draw.io)。
>
>
>

![](/data/attachment/album/202304/07/144214m945y0naawn5zb95.jpg "Looking at a map for career journey")

地图有一些特别之处。我记得小时候打开托尔金《霍比特人》的封面，盯着手绘的中土世界地图，感受简单的图画中蕴含着丰富的可能性。除了描述事物与其他事物之间的关系这一明显目的外，我认为地图在表达可能性方面做得很好。你可以到户外去，沿着这条路或那条路走，如果你这样做了，去想想你将能够看到的所有新的、令人兴奋的事物。

尽管如此，地图并不一定是有价值和充满可能性的文字。有些地图描述了一个思维过程、计划、算法，甚至是一些随机的想法，这些想法拼命地想要组合成一件潜在的艺术作品，它们被称之为“思维导图”、“流程图”或“创意板”。可以用开源的 Draw.io 应用程序去很容易地制作。

### 安装 Draw.io

Draw.io 是一个开源的在线应用程序，因此你可以将其作为在线应用程序使用，下载 [桌面版本](https://github.com/jgraph/drawio-desktop)，或 [克隆 Git 存储库](https://github.com/jgraph/drawio) 并将其托管在你自己的服务器上。

### 使用 Draw.io 画图

当你第一次启动 Draw.io 时，你需要选择保存数据的位置。如果你自己托管 Draw.io，你的选择取决于你可以访问哪些 API 密钥。你可以从几个在线存储服务中为在线公共实例进行选择，这取决于你的帐户。如果你不想把你的数据存储在别人的服务器上，你也可以选择把你的工作保存在本地存储上。如果你还不确定，可以单击 “<ruby> 稍后决定 <rt>  Decide later </rt></ruby>” 继续进入应用程序，而无需选择任何内容。

Draw.io 的交互界面中间有一个很大的工作空间，左边是主工具栏，顶部是工具栏，右边是属性面板。

![Draw.io interface](/data/attachment/album/202304/07/144348cn3s88o0nlwr4wl2.png "Draw.io interface")

工作流程很简单：

1. 从左侧工具栏中选择一个形状。
2. 在工作空间中编辑形状。
3. 添加另一个形状，并连接它们。

重复这个过程，你就得到了一张图。

![Draw.io example](/data/attachment/album/202304/07/144348tm7to7hh68un9h09.jpg "Draw.io example")

### 项目规划

当你第一次接受一项大任务时，你通常对你想要的结果有一个非常清晰的想法。假设你想开始一个社区项目来画一幅壁画。你想要的结果是一幅壁画。它很容易定义，你可以或多或少地在脑海中描绘出结果。

然而，一旦你开始朝着目标前进，你就必须开始弄清楚细节。壁画应该画在哪里？即便知道画在哪，你如何获得在公共墙上作画的许可的？油漆呢？你应该用一种特殊的油漆吗？你会用刷子还是喷枪涂油漆？你需要什么样的专业设备来喷漆？画一幅壁画需要多少人和多长时间？画家工作时的支持服务怎么样？最后，这幅画是关于什么的？一个想法很快就会变得势不可挡，因为你离实现它越近。

这不仅仅适用于绘制壁画、制作戏剧或电影。它几乎适用于任何不平凡的努力。这正是像 Draw.io 这样的应用程序可以帮助绘制的。

以下是如何使用 Draw.io 创建项目流程图：

1. 从头脑风暴开始。没有什么想法是太小或太大的。为每个想法制作一个框，然后双击 Draw.io 工作空间中的框以输入文本。
2. 一旦在工作空间中你产生了可能想到的所有想法，就可以将它们拖放到相关的组中。我们的目标是创建一些小任务云或集群，因为它们是同一过程的一部分，所以或多或少会一起进行。
3. 一旦你确定了相关任务的集群，就为这些任务命名。例如，如果你正在绘制壁画，那么任务可能是 “许可”、“设计”、“购买”、“绘制”，这反映出你需要首先获得当地政府的许可，然后设计壁画，然后购买用品，最后绘制壁画。每个任务都有组成部分，但大体上，你现在已经确定了项目的工作流程。
4. 用箭头连接主要任务。并不是所有的过程都是完全线性的。例如，在你获得市议会的许可后，一旦你设计了你打算画的东西，你可能必须回到他们那里进行最终批准。这很正常。这是一个循环，有一些来回，但最终，你会突破这个循环，进入下一阶段。
5. 掌握好你的流程图，完成每一项任务，直到你达到最终目标。

### 思维导图

思维导图往往不是关于进步，而是关于保持某种状态或对许多想法进行展望。例如，假设你已经决定减少生活中的浪费。你对自己能做什么有一些想法，但你想组织和保存你的想法，这样你就不会忘记它们。

以下是如何使用 Draw.io 创建思维导图：

1. 从头脑风暴开始。没有什么想法是太琐碎或太大的。为每个想法制作一个框，然后双击 Draw.io 工作空间中的框以输入文本。也可以通过选择框并单击右侧属性面板中的色样，为框指定背景色。
2. 将你的想法分组或分类。
3. 可以选择将想法与彼此直接相关的箭头连接起来。

![Draw.io waste reduction example](/data/attachment/album/202304/07/144349fyocp2cjpcy42ci1.jpg "Draw.io waste reduction example")

### 保存你的图表

你可以将图表保存为 PNG、JPG 图像、Draw.io XML 或纯 XML 文件。如果将其另存为 XML，则可以在 Draw.io 中再次打开它进行进一步编辑。导出的图像非常适合与他人共享。

### 使用 Draw.io

有很多很棒的绘图应用程序，但我不经常制作图表，所以可以随时使用 Draw.io。它的界面简单易用，结果干净专业。下次当你需要头脑风暴、组织想法或计划项目时，可以试试 Draw.io。

---

via: <https://opensource.com/article/21/12/open-source-mind-mapping-drawio>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lujun9972](https://github.com/lujun9972) 译者：[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #964 新的超声波攻击可以隐秘劫持电话和智能音箱

Summary:
? 新的超声波攻击可以隐秘劫持电话和智能音箱
? 谷歌认为聊天机器人为搜索引擎提供了更多的机会空间
? 2018 年以来的 macOS 中包含了比特币白皮书
»
»

![](/data/attachment/album/202304/07/162401ocnrv9ottm3i969n.jpg)

![](/data/attachment/album/202304/07/162414mltzlbltkqtssqnb.jpg)

### 新的超声波攻击可以隐秘劫持电话和智能音箱

安全研究人员发现了一种新的攻击方式，近距离听觉木马（NUIT），它利用智能设备麦克风和语音助手的漏洞，可以静默地远程访问智能手机和家用设备。苹果、谷歌、微软、亚马逊等的语音助手都容易受到 NUIT 攻击。其原理是将语音命令调制成近乎超声的不可闻信号，这样人类听不到，但语音助手仍会对其做出反应。这些信号然后被嵌入到一个载体中，如一个应用程序或 YouTube 视频。从而攻击者就可以操纵你的语音助手做一些事情，比如开门。

>
> **[消息来源：The Register](https://www.theregister.com/2023/04/04/siri_alexa_cortana_google_nuit/)**
>
>
>

>
> 老王点评：虽然耳听为虚，但是“听不见”也一样有风险。
>
>
>

![](/data/attachment/album/202304/07/162427c61jnh3h26jnnrh8.jpg)

### 谷歌认为聊天机器人为搜索引擎提供了更多的机会空间

Alphabet 的 CEO 在接受采访时表示，谷歌搜索引擎将加入 AI 聊天功能。他表示 AI 的进步将增强谷歌回答一系列搜索查询的能力。他驳斥了聊天机器人对其搜索业务构成威胁的说法，“如果说有影响的话，那就是机会空间比以前更大了。”

>
> **[消息来源：华尔街日报](https://www.wsj.com/articles/google-ceo-sundar-pichai-says-search-to-feature-chat-ai-2fa0f54c)**
>
>
>

>
> 老王点评：要是聊天机器人的回答中给出的广告让你无法分辨，是不是更可怕？或许以后 AI 或明确说明，某些交谈内容是付费赞助的？
>
>
>

![](/data/attachment/album/202304/07/162441s55herj8hyr4u65k.jpg)

### 2018 年以来的 macOS 中包含了比特币白皮书

一位开发者在试图解决打印机的问题时偶然发现了这份 PDF 文件。在 macOS 图像捕捉工具中，一个名为 “虚拟扫描仪 II” 的设备的样本文件 “simpledoc.pdf” 保存了中本聪的这份比特币白皮书。自 2018 年以来，在每一个 macOS 系统中，苹果都包含了它。这并不是该文件被第一次发现，然而苹果没有做出任何反应和置评。

>
> **[消息来源：Macumors](https://www.macrumors.com/2023/04/06/macos-includes-bitcoin-whitepaper/)**
>
>
>

>
> 老王点评：只是个样本文件吧，应该是这样的吧。
>
>
>


开源软件：存在成功的捷径吗？

开源让技术变得无限可能

>
> 开发开源软件背后的工作是相当庞大的。那么我们如何保证开源项目的成功呢？存在捷径吗？本文认为是没有的。
>
>
>

![](/data/attachment/album/202304/08/122245uqlbfaxp3flkwf5b.jpg)

今天，开源已经风靡世界。很多大型企业在快速成功的诱惑下被推向开源。但真实情况是世界上并不存在成功的捷径。你无法做到通过一次努力就能让所有的开源项目正常运行。

事实上，上述公司早期遇到的许多挑战都不是技术上的，而是人员与文化上的。

开发一个能够在市场上获得成功的开源项目需要在开源的许多层面上下功夫。而维持这样的成功是一个持续的过程。所有这一切的关键在于找到以下这个非常基本的问题的正确答案：开源究竟是什么。

### 开源是代码

对于很多新用户而言，他们可能并不完全了解开源的不同层面，答案相当简单：开源就是软件！这当然没有错，毕竟我们多数人就是这样使用它的。不过，相比仅仅被视作软件而言，开源远不止这些。

任何开源项目的实质仍然是代码本身。代码是使一个开源项目有别于其他项目，并使其对用户有益的根本。当你从事开源工作的时候，代码和软件一样都是产品的一部分。

从零开始开发一个开源项目或者 <ruby> 复刻 <rt>  fork </rt></ruby> 一个现有项目，即便是在面对一个庞大而复杂的代码库时，也需要编写成千上万行代码。尤其是在创建一个现有项目的复刻的情况下，在移除任何在先的许可证、宣传材料或者其他任何可能已经失去作用的文件时必须小心翼翼（LCTT 校注：部分开源项目不允许你改变其原有的许可证）。终究是一个项目的功能吸引了它的用户群并维持项目的持续发展。当最终用户在考虑是否使用开源软件的时候，他们会阅读项目的源代码，而他们在其中所看到的应当是那些能够建立他们的信心的内容。

### 开源是社区

如何参与到社区中也是产品构建的一部分。创建一个社区并维护一个健康的社区关系是开源的核心之一，但对于大部分的领导者而言也往往是最坚难的任务，很少有人能很好地维护它。你可以尝试建立基金会或者提供赞助，但是最终还是由人们自行决定是否想要加入社区。

重要的是与社区保持一定程度的透明度，并不断保持。社区成员可以在它想要的任何阶段参与进来。除了需要进行的工作之外，诸如安全设置、签发证书、注册商标等，尽可能多的将你所做的工作展示给社区是相当重要的，这有助于取得社区信任。归根到底，你需要对社区负责，你的项目成也社区，败也社区。这可能会导致你的项目开发更谨慎、更缓慢并且向社区公开，不过项目最终会进展顺利。

如此地公开你正在进行的工作似乎有些令人生怯，尤其是当你担心更新推迟或者是出现漏洞的影响的时候。不过，让社区成员知悉你的进展，不仅有助帮助你建立与社区之间的信任关系，而且能够让社区成员感到被认可。

另一方面，公开你的工作流也可以获得来自社区成员的监督，他们经常有自己的见解并向你反馈。记录这些反馈是很重要的，这使得你的开源项目如实地反映社区需求。他们是项目的最终用户，而他们的反馈则反映了他们如何看待你的项目的长期发展，以及你的项目最终将有多么成功或者主流。

举例而言，当我们在考虑一个新功能的时候，我们在 <ruby> 征求意见文档 <rt>  Request for Comments </rt></ruby>（RFC）中发布一个征集意见的请求，我们会收到大量的反馈，我们必须认真思考应当如何吸收这些反馈。

因为开源是一个大型的合作项目，社区对支持开源项目的主动支持，使项目成为了最好的项目。并非所有的问题都要解决，但只要你有在倾听社区的呼声，社区就会有参与感。

参与到社区中也存在一些隐患。社区内部、项目维护与社区之间均可能存在不同意见，尤其是在涉及治理的问题上。治理对于一个开源项目来说是相当重要的。这也就是为什么拥有一份清晰的文档化的治理条例对于项目以及社区均是如此重要。

社区治理是一个关键的而又难啃的骨头。社区授权本身需要相当大的信任。对于一个拥有成千上万行代码的项目，在社区中寻找能够有效领导社区的人物是不容易的。不过开源项目经常是由更小的子项目组成的，这些子项目最好由社区中的某个人进行管理。这有助于社区更紧密地参与到项目中。

建立社区的过程不是一帆风顺的。让我列举一一些有助于维持社区与我的团队之间平衡的技巧。

**声明你的原则：** 尤其是在开源项目的早期，在项目代码仍在完善，很多事情还不完美的时候，项目之外的人员很难真正理解你所做的决定。向他们说明你做出决定所依据的原则，有助于你在思考过程上保持坦率，从而让社区不会错误地干扰你的事务。这一经验非常有效，在你做出决定时坚持遵循其中一项原则并展示出来是非常重要的。

**确定如何进行协作：** 你可以通过 Discord、Slack 或者邮件等途径完成这一工作。但是如果你试图同时使用它们，你将毫不意外的分散项目社区。社区人员将在所有这些途径上互相交流。选择一到两种沟通工具，投身于它们来保证社区的信息同步。

**珍惜反馈意见：** 倾听来自社区的反馈并付诸行动。即使需要你作出艰难的决定，你也应当向社区展示你是重视社区话语的。

**维护一套行为准则：** 如果你与社区打交道，你需要定义什么行为是可以接受的。一套落地的行为准则有助于在人们越过红线时警示他们。如果你可以提前制定这些你可以避免很多麻烦。

**考虑如何分发你的项目：** 存在这样的情况，因为你还没有准备好某一个组件，或者是因为存在一些你不希望所有人都能够访问的项目功能，所以你可能并不希望将你的项目完全向公众公开。关键是制定符合你的要求而不是向用户妥协的分发条款，如此，需要某种功能的用户可以获取所需项目的同时，不需要该功能的用户也不需要在开始使用该项目做出妥协。

**尽可能地避免投票：** 这是因为部分成员经常会赞成与大部分成员的意见相左的选项，这会使这些人产生一定程度的失望，并让他们觉得被项目所孤立。反之，尽量尝试询问他们想要解决什么问题，并尝试创造一个不需要付出代价的解决方案。

### 开源是许可

开源是给予你的用户如何使用你的软件的自由，而许可能够做到这一点。开源项目许可的好处在于，它保证了不论你作为维护者做了什么，你的所有最终用户以及利益相关方总是可以维护一系列的项目复刻版本，这些都是重要的项目复刻。

许可提供了人们可选择性，如果他们认为有必要，他们可以将项目带到不同的路径中。他们拥有创建副本的权利，这使得许多优秀的软件能够被开发出来。维护者有责任倾听他们的社区成员的声音，并以一个对项目的社区成员有利的方式运营项目。

我们推荐使用现有的许多可用的许可证，而不是独立制作你自己的许可条款，原因很简单，因为用户以及利益相关方通常都很熟悉常用的许可证，因此你不需要再花费时间在解释许可条款上。这将帮助你将你的精力集中在项目的其他部分上。

### 最后，开源是一项运动

开源包括了很多维度，也包含了很多人员。最重要的是，它是关于理解人们想要什么，并创建一个鼓励协作与透明的环境。开源也是关于创建社区，帮助建立走自己想走的开源项目的方式。维护者创造越多的机会让社区自由发挥，开源产品就越好，也越发成功。

开源是以上所有这些方面，而你的视野越宽阔，你就能越好的利用它。请考虑你如何能够在开源的每一个维度上出类拔萃，因为时至今日，开源的成功之路并无捷径。

---

via: <https://www.opensourceforu.com/2022/07/open-source-software-is-there-an-easy-path-to-success/>

作者：[Jules Graybill](https://www.opensourceforu.com/author/jules-graybill/) 选题：[lkxed](https://github.com/lkxed) 译者：[CanYellow](https://github.com/CanYellow) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


使用这个开源的会计应用来管理你的小企业

Summary: 用 GnuCash 跟踪客户和发票的情况。

用 GnuCash 跟踪客户和发票的情况。

![](/data/attachment/album/202304/08/150133rfxheuuce1ufi99c.jpg)

>
> 用 GnuCash 跟踪客户和发票的情况。
>
>
>

[GnuCash](https://www.gnucash.org/) 是一个强大而灵活的会计工具，可用于小企业的发票和会计。它的许多功能使它特别适合这一目的，包括跟踪支出和收入、生成报告和管理发票的能力。此外，GnuCash 是自由开源的，这使得资源有限的小企业也可以使用它。在这篇文章中，我会讨论 GnuCash 的特点，使你可以很容易地在自己的小企业中开始使用它。

几年前，我开始使用 GnuCash 进行个人财务管理，但发现它也可以作为我的小企业的一个有用工具。在我企业的大部分时间里，我一直在使用一个专有的解决方案。我逐渐厌倦了被迫定期升级以获取我的小企业的发票和报表。转而使用 GnuCash，使我能够在不牺牲任何功能的情况下，将我的小企业会计与我的个人财务相结合。

### 在 Linux 上安装 GnuCash

你可以从你的仓库中安装 GnuCash。在 Debian、Elementary 和类似的软件上：

```
$ sudo apt install gnucash

```

在 Fedora、CentOS、Mageia 和类似系统上：

```
$ sudo dnf install gnucash

```

### 企业版 GnuCash

GnuCash 带有一个账户设置向导，可以帮助你建立一个普通的商业账户配置。要访问它：

* 启动 GnuCash。
* 点击 “<ruby> 文件 <rt>  File </rt></ruby>” 菜单，选择 “<ruby> 新文件 <rt>  New File </rt></ruby>”。

按照屏幕上出现的 GnuCash 助手来创建你的新商业账户文件。

屏幕上的说明将指导你完成设置业务的过程。单击 “<ruby> 助手 <rt>  Assistant </rt></ruby>” 窗口右上角的 “<ruby> 下一步 <rt>  Next </rt></ruby>”。系统会提示你输入公司名称、地址、联系信息和你自己选择的公司 ID。你还必须选择默认税表和日期格式。

下一个页面提示你选择货币，有大量的货币支持。

然后提示你选择你要创建的账户。选择创建 “<ruby> 企业账户 <rt>  Business Accounts </rt></ruby>” 的选项。你可以随时定制账户列表，GnuCash 提供了 [大量的文档](https://www.gnucash.org/docs/v4/C/gnucash-guide/bus_setup.html)，帮助你更好地根据个人需求进行定制。

完成助手，然后单击 GnuCash “助手” 窗口右上角的 “<ruby> 应用 <rt>  Apply </rt></ruby>”。

### 添加客户

GnuCash 的顶部菜单有一个标有 “<ruby> 业务 <rt>  Business </rt></ruby>” 的菜单项。该菜单上的第一个项目是 “<ruby> 客户 <rt>  Customers </rt></ruby>”，其次是 “<ruby> 客户概览 <rt>  Customers Overview </rt></ruby>”。在这里你可以查看你所有客户的列表。

下一个项目是 “<ruby> 新客户 <rt>  New Customer </rt></ruby>”。这是你输入新客户的地方。对话框为客户信息提供了一个位置，包括帐单信息、运输地址、电子邮件地址、电话号码等。

### 创建一个发票

添加客户后，你可以开始创建发票的过程。点击 “业务” 菜单，选择 “客户”，然后点击 “<ruby> 新发票 <rt>  New Invoice </rt></ruby>”。

付款处理也很简单。这位于 “业务” 菜单中。选择 “客户”，然后 “<ruby> 处理付款 <rt>  Process Payment </rt></ruby>”。

### 你在做生意了

如果你的业务需要，“业务” 菜单还包括输入供应商和雇员的选项。有一个菜单项用于销售税和许多其他选项，以确保你符合当地的要求。

使用 GnuCash，你的数据不是以专有格式存储的，所以如果你需要，你可以在将来迁移到任何其他平台。数据存储的开放标准，特别是当这些数据是法律要求的时候，是很重要的，可以让你完全拥有你的商业历史。使用 GnuCash 使你能控制你的小企业。

---

via: <https://opensource.com/article/23/3/open-source-accounting-run-business>

作者：[Don Watkins](https://opensource.com/users/don-watkins) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #965 谷歌前 CEO 因担心中国而拒绝暂停人工智能研究

Summary:
? 谷歌前 CEO 因担心中国而拒绝暂停人工智能研究
? 软件工程师因在 ChatGPT 上粘贴专有代码而被捕
? 窃贼通过汽车总线注入攻击来偷车
»
»

他最好也离个婚，因为万一亚洲人绿了他，他到时候又要多一个担忧。

来自四川成都的 Chrome Mobile 78.0|Android 13 用户

支持施密特，要是让百毒等公司弯道超车领先了（虽然这基本不可能），后果不堪设想

![](/data/attachment/album/202304/08/191310bmuouiefrui01bz5.jpg)

![](/data/attachment/album/202304/08/191333lcibkss98c8b8899.jpg)

### 谷歌前 CEO 因担心中国而拒绝暂停人工智能研究

[前两天](/article-15673-1.html)，上千名研究人员签署公开信提议暂停人工智能的研究，并至少暂停半年。但谷歌前首席执行官埃里克·施密特在接受采访时说，他不赞成暂停研究，因为这将 “只对中国有利。我赞成的是让大家尽快聚集在一起，讨论什么是适当的护栏”。他认为，西方政府需要更快地采取行动，以跟上中国的研究和发展。

>
> **[消息来源：彭博社](https://www.bloomberg.com/news/articles/2023-04-07/former-google-ceo-rejects-ai-research-pause-over-china-fears)**
>
>
>

>
> 老王点评：这有点受害妄想症了，啥都拿中国说事。
>
>
>

![](/data/attachment/album/202304/08/191344l17cf9g69eh08981.jpg)

### 软件工程师因在 ChatGPT 上粘贴专有代码而被捕

韩国三星半导体的多名员工将几行机密代码插入 ChatGPT，泄露了企业机密，这些机密可能被包括在聊天机器人未来对世界各地其他人的回应中。有员工从一个半导体数据库中复制了有问题的源代码到 ChatGPT 中，并要求修复或优化。三星称，“如果在采取紧急信息保护措施后仍发生类似事故，ChatGPT 的访问可能会在公司网络上被阻止”。OpenAI 的用户指南警告用户不要采取这种行为。

>
> **[消息来源：PCMag](https://www.pcmag.com/news/samsung-software-engineers-busted-for-pasting-proprietary-code-into-chatgpt)**
>
>
>

>
> 老王点评：随着和 AI 对话的增多，AI 可能知道的要比你以为的更多。
>
>
>

![](/data/attachment/album/202304/08/191357trs9sd2fjszfemzu.jpg)

### 窃贼通过汽车总线注入攻击来偷车

几乎所有的现代汽车都有一个控制器区域网络（CAN）总线，它用来让微控制器和其他设备在车内相互通讯，并执行工作。窃贼通过拔下智能设备（如智能大灯）来获取并通过 CAN 总线进行攻击，引入假信息，就像它来自汽车的智能钥匙接收器。这些信息可以导致安全系统解锁车辆，并禁用发动机防盗器，从而使车辆被盗。在今天路上的大多数汽车中，这些内部信息没有受到保护：接收器简单地信任它们。安全研究人员因为自己的 RAV4 被窃而发现了这种盗窃方式。

>
> **[消息来源：The Register](https://www.theregister.com/2023/04/06/can_injection_attack_car_theft)**
>
>
>

>
> 老王点评：这很像互联网早期，默认觉得所有传输信息都是安全的，因此采用了明文。
>
>
>


可以替代微软 Exchange 的 5 个开源软件

>
> 不再将就于微软 Exchange 这一专有软件，试一试这些基于 Linux 系统的电子邮件和群件服务吧。
>
>
>

![](/data/attachment/album/202304/09/114919i7cu0zwk4e663x0c.jpg "Working on a team, busy worklife")

几十年来，微软 Exchange 一直统治着电子邮件和群件服务市场。作为领头羊，它主宰着企业界，无处不在的 Outlook 邮件客户端已成为群件的事实标准。由于 Exchange 与微软的 Office 产品紧密联系，无论是桌面客户端还是移动客户端，微软用户都可以轻松使用各种生产力软件和功能。

然而，许多公司对于将数据存储在微软的云中也心存疑虑。在本文中，我将介绍一些开源替代产品及其优势。这不仅与如何不再受供应商控制和降低成本有关，更关乎使用具有开放标准和不同安全级别的软件 —— 用于组件服务器本身及其背后的操作系统。

本文中介绍的这五个替代产品都是基于 Linux 的。 虽然 grommunio、Kopano、Nextcloud、ownCloud 和 OX App Suite 在功能上差异很大，吸引到的企业类型各不相同，但它们都提供免费版本，并可选择购买付费支持服务和附加组件。所有产品都可以在本地或云端运行。最重要的是，所有供应商都为其软件提供 SaaS（<ruby> 软件即服务 <rt>  Software as a Service </rt></ruby>）解决方案。

### grommunio

[grommunio](https://grommunio.com/)，以前被称为 grammm，在 AGPLv3 许可下发布的。它由奥地利同名公司开发和支持。与 Exchange 不同，grommunio 提供符合标准的邮件服务器，以及功能齐全的群件解决方案，具有电子邮件、联系人、日历、任务、文件共享等功能。grommunio 适用于各种开源和专有邮件客户端，如 Windows Mail、Outlook、Android、Apple Mail/iOS、Thunderbird 等，并支持旧的 RPC over HTTP 协议和 Outlook 标准协议 MAPI over HTTP。除此之外还包含：用于移动设备的 Exchange ActiveSync 和各种标准协议，如 CalDAV（日历）、CardDAV（地址簿）、IMAP、POP3、SMTP 和 LDAP，以及活动目录（用于同步用户帐户）。

外部对接的开源应用程序还提供了一些微软的 API 或协议不支持的功能。例如，开发人员合并了 [Jitsi](https://opensource.com/article/20/5/open-source-video-conferencing)（视频和音频电话软件）、[Mattermost](https://opensource.com/article/20/7/mattermost)（聊天软件）以及文件共享和同步（[ownCloud](https://opensource.com/article/21/7/owncloud-windows-files)）。除此之外，grommunio 还配备了基本的移动设备管理软件（MDM）。

grommunio 的设计面向各种不同的用户，并且与 Exchange 一样，它支持数据库分片（数据库在多个主机之间的水平分布）。灵活的存储后端允许管理员通过添加其他服务器或云帐户来扩展他们的设置。grommunio 仅将 MySQL 数据库用于元数据，而所有“内容”（例如邮件和群件对象）都存储在每个用户的 SQLite 数据库中。有关底层架构的更多信息，请查看 [该制造商的网站](https://grommunio.com/features/architecture/)。

其社区版是免费的，其中包括所有的 grommunio 功能并支持多达五个用户帐户。

### Kopano

来自德国和荷兰的软件制造商 Kopano 出品的 [Kopano](https://kopano.com/)，也采用 AGPLv3 许可，基于 Zarafa 软件堆栈。与其前身不同，Kopano 的目标不只是成为 Exchange 的替代品。相反，它提供一个完整的群件解决方案，除了电子邮件、联系人、日历、任务、笔记和文档编辑这些标准功能外，它还包括实时通信。Kopano 可以与 [许多其他平台](https://kopano.com/products/interoperability/)、应用程序和服务交互，其中一些通过插件就能轻松实现。对于视频会议，Kopano 团队基于 WebRTC 开发了自己的开源解决方案：Kopano Meet 提供端到端加密，在 Windows、macOS、Linux、Android 和 iOS 客户端都适用。

Outlook 客户端通过 ActiveSync（Z-Push 库）或 [Kopano OL Extension](https://kb.kopano.io/display/WIKI/Setting+up+the+Kopano+OL+Extension)（KOE）来同步移动数据，KOE 是已经包含了 ActiveSync 的加强版。Kopano 提供本机 Web 客户端（WebApp）、移动设备客户端（Mobility）以及支持 Windows、Linux 和 macOS 的桌面版本（DeskApp）。它可以通过 IMAP、CalDAV 和 CardDAV 连接其他客户端。所有直接连接到 Kopano 服务器的应用程序都使用 SOAP（<ruby> 简单对象访问协议 <rt>  Simple Object Access Protocol </rt></ruby>）中的 MAPI。

Kopano Groupware 和 Kopano ONE（Kopano Groupware 的特别版）都提供免费的社区版本。 Kopano Meet 还可以作为应用程序或容器下载。

### Nextcloud

[Nextcloud](https://nextcloud.com/) 在斯图加特和柏林（德国）都有办事处，采用 AGPLv3 许可。与 ownCloud 或 Dropbox 一样，用户可以通过桌面（Windows、Linux 和 macOS）、网络浏览器或本地应用程序（Android 和 iOS）访问该软件套件。从 18 版本开始，Nextcloud 除了拥有 Nextcloud Files（文件同步和共享）还包括了 Nextcloud Talk（通话、聊天和网络会议）和 Nextcloud Groupware（日历、联系人和邮件），并更名为 Nextcloud Hub。

用户和群组管理通过 OpenID 或 LDAP 进行。Nextcloud 支持各种存储后端，例如 FTP、S3 和 Dropbox。Nextcloud 可与多种数据库管理系统配合使用，包括 PostgreSQL、MariaDB、SQLite 和 Oracle 数据库。管理员可以通过 [Nextcloud 应用程序商店](https://apps.nextcloud.com/) 中的 200 多个应用程序扩展功能，其中包括实时通信、音频和视频聊天、任务管理、邮件等等。

Nextcloud 是完全免费的。最重要的是，该公司提供了 Nextcloud Enterprise 版本（针对企业部署进行了预配置、优化和强化）

### ownCloud

[ownCloud](https://owncloud.com/) 是由位于德国纽伦堡的 ownCloud GmbH 公司开发和维护的具有文件同步、共享和内容协作功能的软件。它的客户端-服务器软件的核心和许多社区应用程序都是在 AGPLv3 下发布的。一些扩展功能的企业应用程序以 ownCloud 商业许可证（OCL）的形式授权。

ownCloud 主要是一款内容协作软件，包括在线办公文档编辑、日历、联系人同步等功能。移动客户端支持 Android 和 iOS，桌面应用可以和 Windows、macOS 和 Linux 的原生文件管理器结合使用。它允许访问 Web 界面，无需安装专用客户端软件。ownCloud 支持 WebDAV、CalDAV 和 CardDAV 协议。LDAP 协议也包含其中，但 ownCloud 也可以连接到支持 OpenID Connect 身份验证标准的其他身份提供者。

ownCloud 可以整合微软 Office Online Server、Office 365 和微软 Teams，同时为微软 Outlook 和 eM 客户端提供可用插件。如有必要，外部存储功能可连接到不同的存储提供商，例如 Amazon S3、Dropbox、微软 SharePoint、Google Drive、Windows 网络驱动器（SMB）和 FTP。该供应商还为企业客户提供额外的功能，如端到端加密、勒索软件和防病毒保护等（请参阅 [完整功能列表](https://owncloud.com/features/)）。

社区版免费且 100% 开源。

### OX App Suite

[Open-Xchange](https://www.open-xchange.com/) 成立于 2005 年，总部位于德国奥尔佩和纽伦堡。今天，OX 在多个欧洲国家、美国和日本设有办事处。[OX App Suite](https://www.open-xchange.com/products/ox-app-suite/) 是一个模块化的电子邮件、通信和协作平台，主要为电信公司、托管公司和其他提供基于云的服务的提供商而设计。

OX 后端在 GPLv2 协议下发布，前端（UI）在 AGPLv3 下发布。用户可以通过他们喜欢的浏览器（完全个性化的门户）或移动应用程序（Android 和 iOS）访问应用程序套件。或者，原生客户端（移动设备和台式机）也可用于 OX Mail 和 OX Drive。得益于 CardDAV 和 CalDAV 扩展、Exchange Active Sync 和适用于 Android 的 OX Sync App，联系人、日历和任务得以同步。

OX App Suite 包含用于电子邮件、联系人、日历和任务的应用程序。 还有其他工具和扩展可用，其中一些是开源的，一些功能则要付费，包括 OX Documents（文本文档、电子表格、演示文稿）、OX Drive（管理、共享和同步文件）、OX Guard（电子邮件和文件加密）等等。如需完整列表，请访问 OX 网站的 [一般条款和条件](https://www.open-xchange.com/terms-and-conditions/)。

该应用免费提供有限功能的社区版。

### 开源电子邮件和群件

电子邮件和群件服务并不是必须花（很多）钱才可获得，当然也没有必要满足于在别人的服务器上托管的专有解决方案。如果你不太热衷于管理职责，那么上述的这五个 Exchange 开源替代品都可以作为 SaaS 解决方案使用。另外，所有供应商都提供专业技术支持，你可以在本地运行软件，一切尽在你的掌握中，但你却不会感觉自己孤军无援。

（题图由 MJ 生成：Mail Cooperation Groupware Office Open Source hyper realistic, hyper detailed, intricate detail, beautiful lighting, very detailed,Illustration）

---

via: [https://opensource.com/article/21/11/open-source-alternatives-微软-exchange](https://opensource.com/article/21/11/open-source-alternatives-%E5%BE%AE%E8%BD%AF-exchange)

作者：[Heike Jurzik](https://opensource.com/users/hej) 选题：[lujun9972](https://github.com/lujun9972) 译者：[XiaotingHuang22](https://github.com/XiaotingHuang22) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Xubuntu 23.04 的最佳新功能

还好一直不喜欢Ubunutn系的东西

不错正用着 ...

![](/data/attachment/album/202304/09/164211inurec5cc59cqtmc.jpg)

>
> 一些很酷的功能将在 Xubuntu 23.04 “Lunar Lobster” 版本中出现。
>
>
>

Xubuntu 23.04，基于即将发布的 [Ubuntu 23.04 “Lunar Lobster”](https://www.debugpoint.com/ubuntu-23-04-features/)，将于 2023 年 4 月 20 日到达。这个最新版本建立在 Linux 内核 6.2 上，带来了最新的硬件、CPU、GPU 和文件系统支持。

从改进的小程序到更强大的 Thunar 文件管理器，Xubuntu 23.04 提供了大量的改进和错误修复，通过所有 Linux 桌面的 “OG” —— Xfce 4.18，提供了更精炼的用户体验。

![Xubuntu 23.04 桌面](/data/attachment/album/202304/09/164317zj6v5nqvvmbp351w.jpg)

如果你正在使用之前的 Xubuntu 22.10，那么你可能会注意到桌面环境的明显变化。Xubuntu 22.10 以开发版 Xfce 4.17 为特色，并带有来自 Xfce 4.18 少量功能。

考虑到这一点，让我们来看看 Xubuntu 23.04 “Lunar Lobster” 的最佳新功能。

### Xubuntu 23.04 的最佳新功能

#### Xfce 4.18 更新

这个版本中的一个重要变化是对 Xfce 桌面环境的更新。Xubuntu 23.04 基于 2022 年 12 月发布的 [最新的 Xfce 4.18](https://www.debugpoint.com/xfce-4-18-features/)。Xfce 4.18 是该桌面环境的一个重要里程碑，提供了对 GTK4 的更新、对 Wayland 的初始支持以及对核心原生应用的改造，更新量很大。

顶部主面板已经更新了新的设置和调整，而整体外观仍与早期版本相同。一些默认的面板小程序在这个版本中也被改变了，而桌面图标、右键上下文菜单和项目保持不变。

![Xfce 4.18 中的面板偏好](/data/attachment/album/202304/09/164326hkfpyenewykz6eho.jpg)

面板首选项得到了增强，有两个新的选项。首先，面板的长度现在是以像素为单位，而不是百分比。其次，增加了一个新的选项，“保持面板在窗口上方”，允许用户将窗口对话放到面板后面。在早期版本中，应用程序窗口只能达到面板边缘。

在 Xfce 4.18 中对时钟小程序的设置进行了大修。用户终于可以改变 Xfce 时钟小程序的字体风格，并且有四个时钟布局选项：只显示日期，只显示时间，日期和时间，以及时间和日期。

#### Thunar 文件管理器的更新

由于在 [Google Summer of Code 2022](https://debugpointnews.com/xfce-gsoc-2022/) 期间所做的工作，用户现在可以在 Thunar 的嵌入式侧边栏中看到图片预览，或者在独立模式下出现在右侧的新面板中，这可以通过偏好设置进行更改。

Thunar 的设置也得到了加强，增加了一个新的标签用于定制键盘快捷键。用户现在可以直接指定新的组合键，并从这个标签中改变现有的组合键。

一个新的搜索图标已经取代了工具栏中的重载按钮，当点击它时，它会在地址栏中调出搜索，用用户的搜索关键词进行递归搜索。重载按钮已被移至 “<ruby> 查看 <rt>  View </rt></ruby>” 菜单。另一个新项目，“<ruby> 最近 <rt>  Recent </rt></ruby>”，已被添加到左边的导航栏。同时，元数据被组织得更好了（从逗号分隔换成竖线分隔），一个新的上下文菜单项允许用户选择他们想要的选项。

Thunar 的主菜单也发生了重大变化。引入了一个新的 “<ruby> 书签 <rt>  Bookmarks </rt></ruby>” 菜单，允许用户将当前文件夹作为快捷方式添加到侧边栏中。“<ruby> 编辑 <rt>  Edit </rt></ruby>”菜单现在包括 “<ruby> 撤销 <rt>  Undo </rt></ruby>” 和 “<ruby> 重做 <rt>  Redo </rt></ruby>” 选项，而 “<ruby> 前往 <rt>  Go </rt></ruby>” 菜单则有 “最近”和 “<ruby> 按文件搜索 <rt>  Search for the file </rt></ruby>”选项。

![Thunar 带有分割视图和图像预览](/data/attachment/album/202304/09/164335xxzu7yu7h9w8wdye.jpg)

Thunar 还首次通过 “<ruby> 视图 <rt>  View </rt></ruby>” 菜单项增加了分割视图，使用户能够在视图面板中拖放项目。另外，为了组织你的文件夹以加快工作流程，Thunar 还为你的文件夹及其名称引入了背景颜色。

![带有文件夹高亮选项的 Thunar](/data/attachment/album/202304/09/164343tfkg84uj71vl9k2m.jpg)

除了 Xfce 4.18 的功能外，Xubuntu 23.04 还为窗口管理器和桌面的提供了更多的错误修复和性能改进。这些改进是在底层进行的；用户可以期待一个更精巧的 Xfce 桌面体验。

虽然 Xfce 桌面核心和本地应用程序的 Wayland 迁移工作已经开始，但它仍然远远没有准备好。因此，这个 Xubuntu 23.04 可能是未来 Wayland 工作的基础，希望可以出现在下一个 Xubuntu LTS 之前。虽然，考虑到 Xfce 团队的规模和其他方面，这不太有信心。

#### 最小化 ISO

正如我之前所报道的，Xubuntu 23.04 也引入了一个最小化的 ISO 镜像，其中只有基本的 Xfce 桌面组件，没有任何额外的预装软件。你可以试试这个最小化的 ISO，为你的工作流程建立你自己的桌面设置。

最小化的 ISO 大小目前为 1.9GB，团队正在努力在未来的版本中进一步减少它。

你可以在 [这篇文章中](https://www.debugpoint.com/xubuntu-minimal/) 阅读更多关于 Xubuntu 最小化 ISO 的信息。

![Xubuntu 最小化和标准安装比较](/data/attachment/album/202304/09/164351gpqkuq0pskbu7oqi.jpg)

#### Flathub 和 Snap

几周前，Canonical 宣布已决定从所有 Ubuntu 官方风味版中默认删除 Flatpak 支持。因此，在 Xubuntu 23.04 中，你将不会默认安装 Flatpak。

Ubuntu 自己的 Snap 将默认安装所有相关组件，以运行几个 Snap 应用程序，如 Firefox。

但是，在 Xubuntu 中设置 Flatpak 和 Flathub 非常容易，[只需要两个命令](https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/)。

#### 其他变化和总结

在核心方面，Xubuntu 23.04 基于 [Linux 内核 6.2](https://www.debugpoint.com/linux-kernel-6-2/) 主线版本，它带来了对领先制造商的最新 CPU/GPU 产品的支持。此外，这个内核版本还引入了内存优化、安全修复和许多附件支持。

应用程序栈和 GNOME 组件的更新如下：

* Firefox 111.0（Snap）
* Thunderbird 102.9
* Thunar 4.18.4
* Parole media player 4.18
* LibreOffice 7.5
* GNOME Software 44.0
* Catfish file search 4.16.4
* Transmission 3.0

![GNOME 软件应用 44 在 Xubuntu 23.04 中](/data/attachment/album/202304/09/164359scfao0ffaf6lztun.jpg)

在核心部分，Python 3.11 现在可以在 Xubuntu 23.04 中开箱即用。你不需要再单独 [安装 Python 3.11](https://www.debugpoint.com/install-python-3-11-ubuntu/) 了。值得一提的是，Python 3.12版本将在今年发布，目前正在进行多个 RC 测试。下面是这个版本中核心模块的总结：

* Python 3.11
* GCC 13
* GlibC 2.37
* Ruby 3.1
* golang 1.2
* LLVM 16

### 下载

你可以从下面的链接中下载 Xubuntu 23.04（测试版）。请记住，它仍然在进行测试。所以，请谨慎使用它。

>
> **[下载 Xubuntu 23.04 - Beta](https://cdimage.ubuntu.com/xubuntu/releases/lunar/beta/)**
>
>
>

如果你想要 Xubuntu 23.04 的最小化 ISO，你可以从下面的链接获得该文件。[了解更多关于 Xubuntu-mini](https://www.debugpoint.com/xubuntu-minimal/)。

>
> **[下载 Xubuntu 23.04 (mini-ISO) - Beta](https://cdimage.ubuntu.com/xubuntu/releases/lunar/beta/)**
>
>
>

### 总结

总之，Xubuntu 23.04 是一个重要的版本，具有 Xfce 4.18 桌面环境的若干改进和功能。由于专注于提高用户体验，Xubuntu 用户可以享受到最新的 Linux 内核、改进后的 Thunar 文件管理器以及其他一些调整和变化。

这将是 Xubuntu 对每个人来说最好的版本之一。

专题图片来源：[xfce-look](https://www.xfce-look.org/p/1953253)

---

via: <https://www.debugpoint.com/xubuntu-23-04/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #966 希望替代 C 的 Zig 语言进入 TIOBE 指数前 50 名

Summary:
? 希望替代 C 的 Zig 语言进入 TIOBE 指数前 50 名
? ChatGPT 因撒谎被起诉
? 多款 Wi-Fi 路由器能被 ICMP 嗅探突破安全机制
»
»

![](/data/attachment/album/202304/09/191925k5pllpybbtbexazx.jpg)

![](/data/attachment/album/202304/09/191946vm5ifbm5x055kric.jpg)

### 希望替代 C 的 Zig 语言进入 TIOBE 指数前 50 名

在 TIOBE 2023 年 4 月的最受欢迎的编程语言榜单中，一种它有望成为 C 的现代替代品的通用编程语言 Zig 排名第 46 位，尽管其评分仅为 0.19%。相比之下，谷歌推广的 Carbon 语言，被定位为 C++ 的实验性继任者，仅排名第 168 位。Zig 拥有 C 和 C++ 各种好特性，如用选项类型增强的显式内存管理，并放弃了不那么好的特性，如可怕的预处理。Tiobe 指数建立在课程、第三方供应商和工程师的搜索引擎结果之上。

>
> **[消息来源：Info World](https://www.infoworld.com/article/3692910/c-rival-zig-language-cracks-tiobe-index-top-50.html)**
>
>
>

>
> 老王点评：虽然取代 C 语言看起来遥遥无期，但是至少是一个值得感兴趣的选项。
>
>
>

![](/data/attachment/album/202304/09/192004vmw8yx88mwuqzw98.jpg)

### ChatGPT 因撒谎被起诉

澳洲赫本郡的市长 Brian Hood 曾帮助揭露与澳大利亚国家储备银行有关的丑闻，但是，如果你问 ChatGPT 关于他在丑闻中的作用，你会得到相反的事件版本。ChatGPT 谎称 Hood 本人因向外国官员行贿而被定罪，已承认受贿和腐败，并被判处监禁。Hood 打算对 ChatGPT 背后的公司提出诽谤诉讼，这将是第一次有人对 ChatGPT 的内容提出诽谤诉讼。

>
> **[消息来源：MSN](https://www.msn.com/en-us/news/technology/chatgpt-falsely-told-voters-their-mayor-was-jailed-for-bribery-he-may-sue)**
>
>
>

>
> 老王点评：AI 的“事实幻觉”一直是个问题，虽然 AI 已经一再做出免责声明，但是法律似乎对此并无实践。
>
>
>

![](/data/attachment/album/202304/09/192021s836gblzomi3c8io.jpg)

### 多款 Wi-Fi 路由器能被 ICMP 嗅探突破安全机制

国内安全专家发现，至少在 55 款 Wi-Fi 路由器中发现的一个漏洞可被不法分子利用，在通过无线网络发送数据时偷窥受害者的数据。这些设备采用了高通或海思的网络处理单元（NPU），该缺陷使得设备无法阻止伪造的 ICMP 重定向信息，从而规避了 Wi-Fi 的 WPA 安全措施，劫持和观察受害者的无线连接。这说明链路层的无线帧加密的设计功能，可以被 IP 层的 ICMP 错误处理的正常执行所干扰。在他们测试的 122 个 Wi-Fi 网络中，有 109 个（89%）容易受到这种攻击。

>
> **[消息来源：The Register](https://www.theregister.com/2023/04/07/wifi_access_icmp)**
>
>
>

>
> 老王点评：总之不要完全依赖网络层的安全性，应用层的 HTTPS 还是很有必要的。
>
>
>


使用开源的思维导图工具

Summary: 使用思维导图与开源工具来做一个有影响力的演示。

使用思维导图与开源工具来做一个有影响力的演示。

![](/data/attachment/album/202304/10/114653pwq2z2md5mootf05.jpg)

>
> 使用思维导图与开源工具来做一个有影响力的演示。
>
>
>

在今天的世界和社交媒体中，许多人没有耐心阅读冗长的文字内容。视觉效果是吸引受众注意力的好方法。

你知道吗，3M 公司的研究得出结论，视觉的处理速度是文字的 60,000 倍？视觉比文字更有冲击力，能增强创造性思维和记忆。

### 一图胜千言

我收集了一些常见的 [Git 命令](https://opensource.com/downloads/cheat-sheet-git)。我把 Git 命令作为主话题，每个子话题都是一个带有定义的 Git 命令语法。为此，我使用了 Wisemapping。

![A git command mind map](/data/attachment/album/202304/10/114836c1ah1qbn8t1ab1o1.jpg)

不管你以前是否知道 [思维导图](https://opensource.com/article/21/12/open-source-mind-mapping-drawio) 是什么，现在你看到了思维导图，你就可以理解这个概念了。这就是视觉的力量。

### 如何创建一个思维导图？

* 从主话题开始，把它放在你的画板中间。
* 创建子话题并将它们与主话题联系起来。
* 你可以为每个子话题添加细节，如定义、例子等。

### 3 个你可以用来创建思维导图的开源工具

看看这三个开源工具，为你的想法创建一个视觉：

* [Wisemapping](https://www.wisemapping.com/)
* [Freeplane](https://opensource.com/article/19/1/productivity-tool-freeplane)
* [Semantik](https://waf.io/semantik.html)

维基百科对思维导图的定义是：将信息直观地组织成一个层次结构，显示整体中各部分之间的关系。思维导图从一个中心话题开始，然后建立起关系。它是一种结构化思想和创造有影响力的演示的视觉方式。

你可以在工作中使用思维导图。例如，我用思维导图来展示一个项目所计划的功能的高层概述。有了这些优秀的开源思维导图应用，你很容易就能开始将你的下一个项目可视化。试试用开源的思维导图吧。

*（题图：MJ:Thinking Brainstorming Creativity Ideas Discussion Illustrations Blue Gold Simplicity）*

---

via: <https://opensource.com/article/23/3/open-source-mind-mapping>

作者：[Amrita](https://opensource.com/users/amrita42) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Rust 基础系列 #1: 创建并运行你的首个 Rust 程序

我觉得,任何一种编程语言都有它的用途,不应该分好分坏,每个语言都有它的特长跟缺点,就跟人一样,(php是世界上最好的语言 [狗头])

你以为编程语言是你想怎么设计就怎么设计的吗？有门学科叫编程语言理论，中国好像没开设这方面的专业，还有人体工程学在编程语言设计上的作用。现存古老语言的流行更多是生态，它们的设计在今天看来是糟糕的，但是勉强可用，比如js这门垃圾，需要我们学习大量的最佳实践和使用相关工具去避免使用错误的语言特性，不要你学习并习惯了这些不好的语言就不加思考的认为语言本该如此，更不必为他们辩护。

来自江西上饶的 Chrome Mobile 110.0|Android 10 用户

你说js是垃圾！我非常同意你的看法

![](/data/attachment/album/202304/10/164143yksc0b56bbs0itiu.jpg)

>
> 在 Rust 编程系列的第一篇中，你将学习如何用 Rust 编写和执行你的第一个程序。
>
>
>

Rust 是最快风靡开发者和科技公司的系统编程语言之一。日常使用它的开发者将其评为**最受欢迎的编程语言**之一，而它 [已经连续七年获此殊荣了](https://survey.stackoverflow.co/2022/?ref=itsfoss.com#section-most-loved-dreaded-and-wanted-programming-scripting-and-markup-languages)！

它是如此的受欢迎，以致于现在有两股巨大的推力将其带入 Linux 生态系统中：

* [将 Rust 作为 Linux 内核的二级支持语言](https://news.itsfoss.com/linux-kernel-6-1-release/?ref=itsfoss.com)
* System76 [正在使用 Rust 重写他们自己的桌面环境](https://news.itsfoss.com/pop-os-cosmic-rust/?ref=itsfoss.com)

而这还仅仅是在 Linux 生态系统中。安卓上的蓝牙软件 [Gabeldorsche](https://android.googlesource.com/platform//system/bt/+/83498aa554aea220fcff30b6310a0a7b4557969f/gd/rust/linux/stack/src/bluetooth.rs?ref=itsfoss.com) 现在也是由 Rust 编写的。

你是否也看到了 Rust 的流行趋势？那么你或许也想学习使用 Rust 进行编程。

### 为什么你要考虑 Rust 而不是其他编程语言？

首先，Rust 是一门 **类型安全的编程语言** 并且 **拥有极其严格的编译期检查**。因此，你首先会 “被迫” 写不出不安全的代码（好吧，通常是这样）。

Rust 编程语言有以下 “目标”：

* **性能**：Rust 的二进制文件和 C 语言的二进制文件一样快，有时甚至超过了 C++ 的二进制文件！
* **内存安全**：Rust 非常重视内存安全。
* **并发性**：对内存安全的关注消除了很多类似竞争的情况，并帮助你在程序中无畏并发。

以下是在 C/C++ 等语言中可能犯的一些错误（但 Rust 不会）：

* 释放后使用
* 双重释放
* 越界访问
* 使用 `NULL`
* 不适当的指针运算或访问
* 使用未经初始化的变量
* 线程不安全的多线程

看看 [苹果](https://langui.sh/2019/07/23/apple-memory-safety/?ref=itsfoss.com)、[微软](https://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/?ref=itsfoss.com)、[谷歌](https://security.googleblog.com/2019/05/queue-hardening-enhancements.html?ref=itsfoss.com) 等大公司因这类 [0day](https://docs.google.com/spreadsheets/d/1lkNJ0uQwbeC1ZTRrxdtuPLCIl7mlUreoKfSIgajnSyY/view?ref=itsfoss.com#gid=1190662839) 错误而引起的问题吧。

现在你可能知道了为什么要选择 Rust 语言而不是其他编程语言，让我们开始学习 Rust 语言的系列教程吧！

### 目标受众

出于对 Rust 的热爱，我写了这个系列的 Rust 教程，帮助你熟悉 Rust 编程的概念。

这个教程系列是为已经熟悉 C 和 C++ 等编程语言的人准备的。我假设你已经知道了 *变量*、*函数*、*循环* 等基本术语。

我对你的唯一要求是你不懈的坚持与努力。

### 安装 Rust 工具链

我希望你能在本地安装 [Rust 工具链](https://itsfoss.com/install-rust-cargo-ubuntu-linux/)。你可以通过运行以下命令来做到这一点： （LCTT 译注：如果你使用 Linux 发行版，请不要直接安装软件源里的 Rust 工具链，尽管这样看起来很便捷。）

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

```

![Installing Rust on Ubuntu Linux](/data/attachment/album/202304/10/164259fn33ln3kvq717nc7.svg)

除了 Rust 基本工具链，我还建议再安装一些工具，这些工具将在开发过程中帮助你：

```
rustup component add rust-src rust-analyzer rust-analysis

```

你还需要 [安装 gcc](https://learnubuntu.com/install-gcc/?ref=itsfoss.com)。否则，你可能会遇到“链接器 `cc` 未找到”的错误。该软件包在不同的发行版中都被称为 gcc。

在 Ubuntu 和 Debian 上使用：

```
sudo apt install gcc

```

>
> ? 如果你不希望在本地安装 Rust 工具链，不用担心。你还可以直接在你的浏览器中运行 Rust 代码！只要到 [Rust 试验场](https://play.rust-lang.org/?ref=itsfoss.com) 并把所讨论的代码粘贴在那里。
>
>
>

### Hello Rust!

自从 <ruby> 丹尼斯·里奇 <rt>  Dennis Ritchie </rt></ruby> 和 <ruby> 布莱恩・柯林汉 <rt>  Brian Kernighan </rt></ruby> 用 “Hello World” 程序介绍了 C 语言后，在 UNIX 世界里，你学习的任何新编程语言第一步都这样做，这已经成为一种习惯。

因此，让我们也用 Rust 编写我们的 Hello World 程序。

我将在我的家目录里 [新建一个项目目录](https://itsfoss.com/make-directories/) 叫做 `learn-rust-its-foss`。然后，在这里我将新建一个叫 `hello-world` 的目录。最后，在里面新建 `main.rs` 文件：

```
// 这串代码将打印字符
// "Hello world!" 将被打印到 `标准输出`

fn main() {
    println!("Hello world!");
}

```

>
> ? 就像 C、C++ 和 Java 源代码文件相应的扩展名是 `.c`、`.cpp` 和 `.java`，Rust 的源文件扩展名是 `.rs`。
>
>
>

作为一个 C/C++ 程序员，你可能已经在 [Linux 上使用 GCC](https://learnubuntu.com/install-gcc/?ref=itsfoss.com)，在 macOS 上使用 `Clang`，在 Windows 上使用 MSVC。但是为了编译 Rust 代码，该语言的创造者自己提供了一个官方的 `rustc` 编译器。

运行 Rust 程序和 [执行 C/C++ 程序](https://itsfoss.com/run-c-program-linux/) 是一样的。你首先编译代码，然后得到可执行文件，最后再运行这个可执行文件从而来运行代码。

```
$ ls
main.rs

$ rustc main.rs

$ ls
main  main.rs

$ ./main
Hello world!

```

很好！

### 解读 Rust 代码

现在你已经编写、编译并运行了你的第一个 Rust 程序，让我们对 “Hello World” 的代码进行解读，并理解每一部分。

```
fn main() {
}

```

`fn` 关键字用来在 Rust 中声明一个函数。在它后面 `main` 是这个被声明函数的名字。像许多编译型编程语言一样，`main` 是一个特殊的函数，用来作为你的程序的入口。

任何写在 `main` 函数里的代码（在大括号 `{` `}` 之间）将在程序被启动时运行。

#### println 宏

在 `main` 函数中, 有一个语句（LCTT 译注：“语句” 区别于 “表达式”）:

```
println!("Hello world!");

```

就像 C 语言的标准库有 `printf` 函数一样，Rust 语言的标准库有 `println` **宏**。宏类似于函数，但它以**感叹号**（`!`）来区分。你将在本系列的后面学习宏和函数的知识。

`println` 宏接收一个格式化的字符串，并把它放到程序的标准输出中（在我们的例子中，就是终端）。由于我希望输出一些文本而不是一个变量，我将把文本放在双引号（`"`）内。最后，我用一个分号来结束这个语句，表示语句的结束。

>
> ? 你只需知道，任何看起来像函数调用但在开头括号前有感叹号的东西，就是 Rust 编程语言中的一个宏。
>
>
>

#### 注释

Rust 遵循已知的 C 编程语言的注释风格。单行注释以两个正斜杠（`//`）开始，多行注释以 `/*` 开始，以 `*/` 结束。

```
// 这是一个多行注释
// 但是没有什么阻止你在
// 第二行或第三行也这样写

/*
 * 这是一个“真•多行注释”
 * 它看起来比较漂亮
 */

```

### 总结

你刚刚通过 Hello World 程序迈出了用 Rust 写代码的第一步。

作为一种练习，也许你可以编写并执行一个打印出 `Yes! I did Rust` 的 Rust 程序。

在本系列的下一部分中，你将学习在 Rust 程序中使用变量。敬请期待！

*（题图：MJ:computer sci-fi ,code secure ,"rust" ,gold blue slive ,background dark, high resolution super detailed）*

---

via: <https://itsfoss.com/rust-introduction/>

作者：[Pratham Patel](https://itsfoss.com/author/pratham/) 选题：[lkxed](https://github.com/lkxed/) 译者：[mcfd](https://github.com/mcfd) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #967 带有自由固件的 Thinkpad

Summary:
? 带有自由固件的 Thinkpad
? Twitter 开源的代码被发现“安全漏洞”
? 使用钻石延长量子网络通讯距离
»
»

Libreboot 比现有的 bios 好在哪里？

启动速度快

除了 Minifree, 还有 Technoethical. 可以看看 ryf.fsf.org

more free

![](/data/attachment/album/202304/10/191951ajpkf5h2ef6pq6e2.jpg)

![](/data/attachment/album/202304/10/192001tvoqqcoc3cna33xn.jpg)

### 带有自由固件的 Thinkpad

一家英国公司 Minifree 发售装有 Libreboot 固件的旧 Thinkpad，该公司的盈利用来资助 Libreboot 项目。Libreboot 是专有 BIOS/UEFI 固件的自由替代品，“与大多数专有启动固件相比，提供更快的启动速度、更好的安全性和许多高级功能”，如直接在启动闪存中使用 GRUB，以及其他一些定制选项。该笔记本电脑上安装的操作系统是加密的 Debian，有完整的驱动程序支持，加密/启动、签名内核等高级功能均可使用。

>
> **[消息来源：Mini Free](https://minifree.org/)**
>
>
>

>
> 老王点评：虽然这笔记本电脑是老了点，但是都自由啊，而且全球发售。
>
>
>

![](/data/attachment/album/202304/10/192012w12ulsqcha6wmqcs.jpg)

### Twitter 开源的代码被发现“安全漏洞”

Twitter 开源的推荐代码被安全专家发现一个 ‘影子封杀” 漏洞，并被分配了 CVE 编号。根据 Twitter 的推荐算法对负面行为的处理方式，如取消关注、静音、屏蔽和/或报告目标用户等行为会对该账户施加全局声誉惩罚，这相当于 “允许在没有追索权的情况下影响账户声誉”。这意味着被大规模封杀的账户基本上被 “影子封杀” 了。该漏洞有可能被僵尸网络大军利用。

>
> **[消息来源：The Register](https://www.theregister.com/2023/04/07/twitter_code_cve_substack/)**
>
>
>

>
> 老王点评：开源就是放在聚光灯下，所以毫不意外会发现一些原本可能觉得没问题的问题。
>
>
>

![](/data/attachment/album/202304/10/192026txkb17lzabxz7m0l.jpg)

### 使用钻石延长量子网络通讯距离

科学家们已经实现了短距离的量子通讯，它使用一对纠缠的量子比特来确保在网络上传输的流量是安全的。任何试图破坏密钥的行为都会导致量子状态崩溃，这被视为 “不可破解” 的网络。但跨越更远的距离，仍然是一个挑战。中继信号的中继器本质上也是一台微小的量子计算机。Amazon 的科学家们发现，钻石中的缺陷，那些颜色中心，是一个非常有希望的量子存储器和中继器平台。这不仅是在理论上可行，而且已经在学术实验室中展示过了。

>
> **[消息来源：The Register](https://www.theregister.com/2023/04/06/amazon_quantum_networks_diamonds/)**
>
>
>

>
> 老王点评：果然是量子计算，用的都是贵的。
>
>
>


一个更好的视频码头

Summary: 之前，我在写 有关 embark 的内容，我的第一设备为启动远程视频流设计了一个新的 embark。

![](/data/attachment/album/202304/11/150233vzkt1tute4i4oemg.jpg)

之前，[我在写](https://jao.io/blog/2021-01-09-embarking-videos.html) 有关 [embark](https://github.com/oantolin/embark) 的内容，我的第一设备为启动远程视频流设计了一个新的 embark。embark 的作者 Omar Antolín Camarena 不仅阅读了这篇内容，还点评了一下我认为值得跟进的一些重大改进。

首先，你应该记得我们曾定义过一个检测视频 URL 的函数：

```
    (defun jao-video-finder ()
      "Check whether we're looking at a video URL.
    Return (video-url . <URL>) if so."
      (when-let ((url (thing-at-point-url-at-point)))
        (when (string-match-p jao-video-url-rx url)
          (cons 'video-url url))))

```

当我们得到了一个非空的 `url` 值，即便它不是一个视频链接，但它仍然是一个确切的 URL，并且 embark 已有了一个 `url` 类别，所以我们可以借助默认的 URL 寻检器存储一个新的句法分析,语句如下：

```
    (when-let ((url (thing-at-point-url-at-point)))
      (cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url))

```

这里有一个潜在的缺点就是：我们重写了 embark 的寻检器，`embark-target-url-at-point`，所以我们可能更愿意保留后者。

实际上多亏了 embark 的 *目标转换器* 我们才能做成。我们可以在 `embark-transformers-alist` 中添加任意一个函数，应用于任何一个给定类别的目标，而 embark 会将其转换后的值应用于它的操作中。Omar 很贴切地把这个过程称为“目标的精化”;我们具体做法如下：

```
    (defun jao-refine-url-type (url)
      "Refine type of URL in case it is a video."
      (cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url))

    (add-to-list 'embark-transformer-alist '(url . jao-refine-url-type))

```

通过这种策略，我们就不再需要 `jao-video-finder` 了，而且从概念上来说，我们的 `video-url` 应该被定义为一个精化操作而并非是一个目标 [脚注 1]。Omar 的第二个提议也与这个概念相契合：想必我们都希望所有关于 `url` 和我们的 `video-url` 的操作都是可用的，不是吗？ 唔，这就是为什么我们用来定义行为的 `embark-define-keymap` 的宏可以通过使用关键字 [脚注 2] `:parent` 继承其他键映射中已经定义的所有操作的原因：

```
    (embark-define-keymap jao-video-url-map
      "Actions on URLs pointing to remote video streams."
      :parent embark-url-map
      ("p" jao-play-video-url))

    (add-to-list 'embark-keymap-alist '(video-url . jao-video-url-map))

```

这种继承键映射的功能并非是 embark 的附属功能：vanilla Emacs 键映射通过标准函数 `set-keymap-parent` 已经搞定它了。你可以完全不用 `embark-define-keymap` 来定义 `jao-video-url-map`，工作原理是一样的。

这样，我们的代码就能够更短，特征更多：谢谢你，Omar！

**脚注 1**：在某些情况下，保留 jao-video-finder 是有意义的，即，如果我们想要改变检测 URL 的功能的话。例如，我在使用 emacs-w3m 的时候，经常有一个 URL 作为文本属性储存了起来(实际文本是个链接文本)。要通过那里检索 URL，就需要调用 `w3m-anchor`，而用 `embark-target-url-at-point` 就会错过它。对于这种情况，我最终编写(并使用)`jao-video-finder` 将其通过下文定义:

```
    (when-let ((url (or (w3m-anchor) (thing-at-point-url-at-point))))
      (cons (if (string-match-p jao-video-url-rx url) 'video-url 'url) url))

```

另一种达成同件事情的方式（再次向 Omar 致敬）便是为 w3m 的锚点放置一个特定的巡检器（且继续使用 video-url 的转换器）：

```
    (defun jao-w3m-url-finder ()
      (when-let ((url (w3m-anchor)))
        (cons 'url url)))

    (add-to-list 'embark-target-finders #'jao-w3m-url-finder)

```

这种方法更加模块化，并且取决于你们的喜好，且更加巧妙。这些功能都很小巧并且两种方法之间并没有太大的差别，但是如果其中某一种继续加入更多寻检器的话，前一种方法用起来来反而会让一切变得更糟。

**脚注 2**：在我最开始的例子中，我在视频地图中还添加了 `browse-url` 和 `browse-url-firefox`。前一个已不再重要，因为它已经在 `embark-url-map` 中出现过了，如果我们想让 `browse-url-firefox` 对 *所有* 的 URLs 可用,我们可以将其加入到 `embark-url-map` （谨记，embark 的键映射只是 Emacs 的键映射）。这是另一种扩展 embark 的简便方法。

*（题图：MJ:emacs video geek wallpaper dark plain background Illustration）*

---

via: <https://jao.io/blog/an-even-better-video-wharf.html>

作者：[jao](https://jao.io) 选题：[lujun9972](https://github.com/lujun9972) 译者：[Drwhooooo](https://github.com/Drwhooooo) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


用 Collabora Online 在不同类型的文件间转换

![](/data/attachment/album/202304/11/172833cww99zg2goqgtngk.jpg)

>
> 探索 Collabora Online 的互操作性，使文档和电子表格在所有办公套件中兼容。
>
>
>

[Collabora Online](https://www.collaboraoffice.com/) 支持各种各样的文件和格式。不过，这个开源办公套件在互操作性方面的表现如何？本文仔细研究了 Collabora Online 与不同办公套件（如 Microsoft 365 和 Google Workspace）交换复杂文本文档和电子表格的能力。

[Collabora Online](https://opensource.com/article/22/7/open%20source-collabora-online) 是一款适用于云端或内部的开源办公套件，可以保护你的隐私，让你完全控制你的数据。该软件由位于剑桥的 Collabora Productivity Ltd 开发，其团队在世界各地工作。Collabora Online 以 LibreOffice 技术为基础，并主要使用 Mozilla Public License 2.0 许可。

Collabora Online 可以在任何现代网络浏览器中运行，不需要额外的插件或附加组件。它有一个完整的基于云的办公套件，包括一个文字处理器（Writer）、电子表格程序（Calc）、演示软件（Impress）和一个设计矢量图的应用（Draw）。

本文介绍了 Collabora Online 的一些新的互操作性功能，包括宏、动态字体加载和电子表格应用程序的 Sparklines 支持。这些功能扩展了现有的对微软文件格式的出色处理。

### 什么是互操作性，为什么它很重要？

一般来说，互操作性是指不同的设备或应用在一起工作和无缝交换数据的能力。在办公套件的背景下，互操作性主要是指文件格式。用户应该能够打开、编辑和保存 `.doc` 和 `.docx`、`.xls` 和 `.xlsx`、`.odt` 和 `.ods`文件，无论它们是用微软的 Word、苹果的 iWork 还是 LibreOffice 创建。

对于在线办公套件也是如此。通过确保文件可以在 Microsoft 365、Google Workspace 和 Collabora Online 之间交换，互操作性有助于提高生产力和促进协作。所有在线办公套件都可以保存各种格式的文件。它们还可以导入和导出最初在其他办公套件中创建的文档、电子表格和演示文稿。

### 管理宏，确保文件处理顺畅

经常引起问题的是带有宏的文件。它们通常是用特定的编程语言开发的，适用于某个特定的应用。虽然在 Google Sheets 中记录和编辑宏是可能的，但在微软 Office 中用 Visual Basic for Applications（VBA）实现的宏不能被转换，必须用 Google Apps Script 重新创建。打开带有 VBA 宏的 Word 文档会产生错误，并通知用户这些宏将被忽略或禁用。

Collabora Online 支持宏，并在容器内的服务器端运行它们。该功能默认是禁用的，管理员必须在 `coolwsd.xml` 配置文件中明确激活它。之后，用户可以选择在加载文档时允许使用宏。不过，有几个限制。例如，它不可能访问数据库源，访问其他（外部）文件，调用外部程序，使用控制形状，等等。多年来，由于活跃的社区以及客户和合作伙伴的贡献，Collabora Online 支持的代码和对象的数量已经大大增加。

### Collabora Online：动态字体加载

办公套件中互操作性的另一个关键方面是字体。使用含有在特定平台上无法使用的字体的文档，可能会导致错误、意外的格式变化，甚至是内容的完全丢失。

微软 Office 文档经常使用 Google Workspace 或 Collabora Online 中没有的默认字体。为了解决这个问题，办公套件经常建议替换掉缺失的字体。这通常是有用的，但有时会导致不好的结果。

从 22.05.7 版本（2022 年 11 月发布）开始，Collabora Online 可以列出缺失的字体并建议替换。它还可以下载必要的字体并将其添加到服务器上。一切都是动态进行的，而不会停机。新的字体在几分钟内就可以在编辑会话中使用，实现最佳的互操作性。

![Fonts can introduce a surprising complexity to your document, but Collabora Online can handle it.](/data/attachment/album/202304/11/173140pomokdoocdm5t8c8.jpg)

为了实现这一目标，在文档被渲染的同时，通过 API 追踪丢失字体的信息。一个 JSON 文件存储了需要添加的字体列表。`coolwsd.xml` 文件（服务器端的设置）指向该 JSON 文件。它每分钟检查一次修改情况，并下载缺少的字体。

### 探索 Sparkline：显示电子表格中的数据趋势

Sparkline 是在工作表中单个单元格内的微小图表，它可以将数据的趋势可视化。这些微型图表有不同的风格，包括线、条和柱。Sparkline 还支持不同的颜色和水平/垂直轴。与显示尽可能多的数据并与文本流分开的大型图表不同，Sparkline 被缩减为核心值，通常放在同一单元格中数据本身的旁边或后面。Sparkline 通常是为一个单元格定义的，但也可以将共享相同数据范围和属性的多个 Sparkline 进行分组，以便进行渲染。

![Customize the look of Sparklines.](/data/attachment/album/202304/11/173147t5bz0iii0boorzp2.jpg)

Sparkline 是一个紧凑的参考，提供了一个快速的方法来说明趋势、模式、统计异常、增加和减少，同时避免了完整图表的复杂性。下面是一些不同的 Sparkline 类型：

* 线形图： 通过线段从左到右连接各点，对于显示在一定时间内变化的数据特别有用。
* 条形图： 使用水平排列的条形图表示数据，通常用于比较数字数据。
* 柱状图： 是比较一系列数值的理想选择。柱是垂直的，其长度表示数据的相对大小/价值。柱状图经常被用来表示不同类别或群体的数据。

要创建一个 Sparkline，你首先要为该函数定义一个输入数据范围（一列或一行中的两个或多个单元格）。你还可以决定你希望 Sparkline 出现的单元格。在大多数电子表格应用中，你右键点击迷你图表来调整其属性，选择图表类型，并选择颜色。Collabora Online 为此提供了一个单独的对话框，使得改变微型图表的风格变得简单而方便。

在三个线上办公软件之间交换带有 Sparkline 的文件是可能的，不会丢失图表及其格式。如果你想在 Microsoft 365、Google Workspace 和 Collabora Online 之间共享电子表格，请确保使用微软格式的 .xlsx 进行导入和导出，因为 Google Sheets 不能很好地处理 .ods 文件。

### 文件交换很容易

Collabora Online 提供了几个新的互操作性功能，使得与其他办公套件交换文件变得容易。宏程序支持、动态字体加载和 Sparkline 确保了文档的无缝处理，避免了意外的格式变化。使用 Collabora Online 来统一和简化你的办公工作。

***（题图：MJ:Office docs process dark plain background Illustration ）***

---

via: <https://opensource.com/article/23/4/open-source-collabora-online-interoperability>

作者：[Heike Jurzik](https://opensource.com/users/hej) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #968 Twitter 公司“没了”

Summary:
? Twitter 公司“没了”
? 自由撰稿人被 ChatGPT 取代
? 互联网档案馆被起诉，裁决不利
»
»

当前很多基于b/s的软件几十年后后人很难再见到活的，想收藏都没途径。

顺便说下，互联网档案馆有很多稀有古董资源。可能找不到第二个地方有了。

猴子剥了个香蕉，不得了了，共产主义要来了，以后都让猴子干了

![](/data/attachment/album/202304/11/185144apc6tltatcxdi1d3.jpg)

![](/data/attachment/album/202304/11/185153v0wqhaj0kjn0zcj9.jpg)

### Twitter 公司“没了”

根据 Twitter 递交到法庭的一份文件，该公司声明已合并成为 “X 公司” 的一部分，Twitter 公司本身不再存在。马斯克经过一系列眼花缭乱的公司组合和控股，现在 Twitter 变成了 X Corp，母公司变成了 X Holdings Corp.，两家公司受美国内华达州法律管辖。

>
> **[消息来源：Slate](https://slate.com/technology/2023/04/twitter-inc-x-corp-elon-musk-x-nevada.html)**
>
>
>

>
> 老王点评：与其说马斯克是一位科技领袖，不如说他是一个善于玩弄资本的人。
>
>
>

![](/data/attachment/album/202304/11/185204moxuosa1pavlhqa1.jpg)

### 自由撰稿人被 ChatGPT 取代

许多人说，如果你是一名优秀的写作者，你不会被 AI 取代。然而情况是：虽然 AI 的作品达不到你的高度，但能达到五成甚至六成，同时成本可能是你的千分之一甚至万分之一。一位自由撰稿人称她为客户写营销相关内容的工作被 AI 聊天机器人 ChatGPT 取代了，她已经准备改行当送餐骑手。这位客户是她最主要的收入来源，时薪高达 80 美元。

>
> **[消息来源：Reddit](https://reddit.com/r/freelanceWriters/comments/12ff5mw/it_happened_to_me_today/)**
>
>
>

>
> 老王点评：蒸汽机时代到来时，没有人为纺织女工做些什么。所以，你真的要考虑你是不是 AI 时代的纺织女工。
>
>
>

![](/data/attachment/album/202304/11/185217xx7h99wxw7hzwhkk.jpg)

### 互联网档案馆被起诉，裁决不利

互联网档案馆是“一个非营利性的图书馆，拥有数以百万计的免费书籍、电影、软件、音乐、网站等等“。他们包括了 3700 万本书，其中许多是没有商业化的旧书。它存储有经典电影、大量的播客，其“时光机”文章上存储了几乎所有被删除的网页。四家企业出版商对此有很大意见，所以他们起诉了互联网档案馆。现在一位联邦法官作出了有利于出版商的裁决，互联网档案馆正在提出上诉。

>
> **[消息来源：SB Statesman](https://www.sbstatesman.com/2023/04/04/if-we-lose-the-internet-archive-were-screwed/)**
>
>
>

>
> 老王点评：如果上诉失败，这么重要的服务可能就会毁于一旦了。
>
>
>


如何逐步安装 Kubernetes（k8s）指标服务器

Summary: 在这篇文章中，我们将逐步介绍如何安装 Kubernetes 指标服务器。

在这篇文章中，我们将逐步介绍如何安装 Kubernetes 指标服务器。

![](/data/attachment/album/202304/12/100919k6p6yyweu6nv6nkh.jpg)

>
> 在这篇文章中，我们将逐步介绍如何安装 Kubernetes 指标服务器。
>
>
>

Kubernetes（k8s）指标服务器是一个组件，用于收集和聚合来自 Kubernetes 集群中各种来源（包括节点和 <ruby> 容器荚 <rt>  Pod </rt></ruby>）的指标数据。此数据可用于监控和优化资源利用率、识别潜在问题并提高 Kubernetes 集群的整体性能。

指标服务器收集资源利用率数据，例如集群中节点和容器荚的 CPU 和内存使用情况。它提供了一个 API 端点，可用于查询此数据并检索集群中特定资源的指标。

##### 先决条件

* 启动并运行 Kubernetes 集群（v1.21 或更高版本）。
* `kubectl` 命令行工具已安装，并配置为与你的 Kubernetes 集群交互。
* 创建和修改 Kubernetes 对象的能力。

事不宜迟，让我们深入了解安装步骤。

### 步骤 1 下载指标服务器清单

第一步是从 Kubernetes GitHub 仓库下载最新的指标服务器清单文件。使用下面的 `curl` 命令下载 yaml 文件：

```
# curl -LO https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

```

![](/data/attachment/album/202304/12/101039va87ihh1ha16646z.jpg)

如果你计划在高可用性模式下安装指标服务器，请下载以下清单文件：

```
# curl https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml

```

### 步骤 2 修改指标服务器 Yaml 文件

接下来，你需要修改指标服务器的 yaml 文件以设置一些配置选项：

```
# vi components.yaml

```

找到 `container` 下的 `args` 部分，添加以下行：

```
- --kubelet-insecure-tls

```

在 `spec` 下，添加以下参数：

```
hostNetwork: true

```

![](/data/attachment/album/202304/12/101048y0se3ecsbqhemmpm.jpg)

保存并关闭文件。

### 步骤 3 部署指标服务器

现在，我们准备好部署指标服务器，运行以下 `kubectl` 命令：

```
# kubectl apply -f components.yaml

```

![](/data/attachment/album/202304/12/101055vtt8td3sz8tyutkd.jpg)

### 步骤 4 验证指标服务器部署

部署指标服务器后，通过检查在 `kube-system` 命名空间中运行的容器荚状态来验证它的状态：

```
# kubectl get pods -n kube-system

```

![](/data/attachment/album/202304/12/101100nq1kksekqswdssvg.jpg)

上面的输出确认指标服务器容器荚已启动并正在运行。

### 步骤 5 测试指标服务器安装

最后，你可以通过运行以下 `kubectl` 命令来测试指标服务器：

```
# kubectl top nodes

```

此命令应显示集群中每个节点的资源利用率，包括 CPU 和内存使用率。

![](/data/attachment/album/202304/12/101108phib7dodd9uedoeb.jpg)

要查看当前命名空间或特定命名空间的容器荚资源利用率，请运行：

```
# kubectl top pod
# kubectl top pod -n kube-system

```

![](/data/attachment/album/202304/12/101114e7wr8n7kn1mnobr7.jpg)

这就是这篇文章的全部内容，我希望你能从中找到有用的信息。请在下面的评论部分发表你的反馈和疑问。

*（题图：MJ: Kubernetes container paper art light blue background ultra-detailed topview）*

---

via: <https://www.linuxtechi.com/how-to-install-kubernetes-metrics-server/>

作者：[Pradeep Kumar](https://www.linuxtechi.com/author/pradeep/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


大家最喜欢的 Linux 终端字体

Summary: 这是一个完全主观的列表，可以为你的 Linux 控制台提供一些有趣的字体建议。

CodeNewRoman Nerd Font Mono

terminus bold

等宽字体也有问题。

如果中英文混排，有些字体并不严格遵循1个汉字等于两个英文字母宽度的规定。有些地方很头疼。

一般用 Dejavu Mono，偶尔用 Terminus 模拟下 TTY 的字体。

使用 DejaVu Sans Mono， 在同样字号的情况下，和中文方正兰亭黑的大小最匹配。

这是一个完全主观的列表，可以为你的 Linux 控制台提供一些有趣的字体建议。

![](/data/attachment/album/202304/12/162240yvgnvohomg7nrnno.jpg)

>
> 这是一个完全主观的列表，为你的 Linux 控制台提供一些有趣的字体建议。
>
>
>

最近，终端模拟器成为我的一个话题，它让我思考：大家最喜欢的终端字体是什么？

因此，我请贡献者分享了他们喜欢使用的字体。以下是他们的答案。

### VT323

我喜欢在我的 GNOME 终端中使用一个不一样的字体（[VT323](https://fontsource.org/fonts/vt323)），而不是在我的编程时用的编辑器或其他使用等宽字体的应用程序中使用的字体（Source Code Pro）。我就是喜欢经典的 VT 风格字体的外观。

有时，我会切换到原始的 IBM EGA 字体，因为在我眼里它看起来真的很漂亮。但是我把 EGA 和 DOS 联系在一起，把 VT323 和经典的 Unix 终端联系在一起，所以我大部分时间都用 VT323。下面是我使用 VT323 作为等宽字体的 GNOME 终端的屏幕截图：

![gnome-terminal1108×926 output](/data/attachment/album/202304/12/162252yg7lw17lm1t7gghg.png)

我设置终端使用 24pt 大小的 VT323 字体，使得终端界面呈现一个舒适的大窗口。如果我要打开一个终端窗口，我其实是想使用它来些实实在在的工作，而不是敲两下就退出。我可能会在那个终端窗口呆一段时间，所以它应该很大，很容易看到。我也更喜欢 80x25 布局（每行 80 个字符，共 25 行），因为我是一个老式 DOS 命令行玩家，25 行在我看来才是 “正确的” 行数：

![preference profile screen - text appearance](/data/attachment/album/202304/12/162252p9p9yqcl9zveup4v.png)

—— [Jim Hall](https://opensource.com/users/jim-hall)

### 等宽的字体

我不觉得我会只使用一个特定的字体。我通常使用 [DejaVu](https://fontsource.org/fonts/dejavu-mono) 或 [Liberation](https://github.com/liberationfonts)。我喜欢等宽字体，因为它们更容易阅读。不过，我也不希望字母靠得太近。更重要的是，要能够区分数字 1 和小写的 L、数字 O 和大小的字母 Q 等等。另外，让所有特殊字符都能特别清楚地显示出来也很好。

我也喜欢让字体和背景之间呈现高对比度，所以我将背景设置为黑色，字符设置为白色。

—— [Greg Pittman](https://opensource.com/users/greg-p)

### Hack

我喜欢使用等宽字体，特别是在终端和代码编辑器中，因为它们更容易阅读。我使用 [Hack](https://sourcefoundry.org/hack/) 系列字体已经很多年了。它提供了一个很好的等宽字体，并提供了额外的字形和 Powerline 支持，我可以用它们在命令行上提供一些状态信息。

![Command line](/data/attachment/album/202304/12/162252s4b6pkm0047060pb.png)

这是用 [Fontpreview tool](https://github.com/sdushantha/fontpreview) 工具生成的字体预览。

![Display of font A-Z and the numbers](/data/attachment/album/202304/12/162252e9tvt6vpe0570ett.png)

—— [Ricardo Gerardi](https://opensource.com/users/rgerardi)

### Victor Mono

我在终端和 IDE 中使用 [Victor Mono](https://rubjo.github.io/victor-mono/) 已经好几年了。斜体的等宽手写体可能不是一开始就会喜欢上的，我喜欢这样，因为这让代码注释的外观很独特，与代码的其余部分明显不同。下面是它在终端中的样子：

![terminal font is italic characters in a monospace cursive script](/data/attachment/album/202304/12/162253iy7mxwwyojwmf382.png)

我在 IDE 和终端使用了 Solarized Dark 配色方案。如果可以的话，任何与工作或代码相关的东西都会使用相同的配色方案和相同的字体，所以一切看起来都很统一。这些年来，我使用了各种字体，但我总是试图在我的终端中使用与 IDE 中相同的字体。

—— [Chris Reynolds](https://opensource.com/users/jazzsequence)

### Monaco

目前，我用 16pt 大小的 Monaco 常规字形。（要比 12pt 或是 14pt 大小好多了。）

—— [Jenny Panighetti](https://twitter.com/elvenjen)

### 用粉红色来装点

这让我想起了有一次我恶作剧把团队里的其他开发者的终端都改成了粉红色（我是里面唯一的女性），一个婴儿粉的背景与深粉红色的文字的搭配。

我喜欢把我的个人终端弄得漂漂亮亮的，但在工作中，我会用黑底白字，并把字体弄成 16pt 左右，因为我喜欢较大的字体尺寸。

我总是把我的终端设置为 SF Mono 字体，但我把它加粗，并增大了一点，以便我可以更好地看到它。我最喜欢的颜色是粉红色或漂亮的水蓝色。我也喜欢终端的默认风格，它叫做 “Novel”。

![Two open terminals, one pink and one aqua blue](/data/attachment/album/202304/12/162319cupuj9wtpuu9og3o.jpg)

—— [RachieVee](https://opensource.com/users/rachievee)

### 万事不决，问 ChatGPT

对于这个问题，我决定问问 [ChatGPT](https://opensource.com/article/23/2/chatgpt-vs-community)。以下是它的回答：

>
> 作为一个语言模型，我没有个人偏好，也没有能力拥有一种最喜欢的字体。但是，有一些流行的终端字体，包括 Monospace、Consolas 和 Inconsolata。这些字体很受欢迎，因为它们易于阅读，不同字符之间有明显的区别，即使在字体大小比较小的情况下也非常清晰。此外，它们被设计为适配在各种不同的操作系统和终端中得到更好的呈现，使它们成为开发人员和用户的通用选择。
>
>
>

我部分使用 GPT-3 生成了这段文字，GPT-3 是 OpenAI 的大规模语言生成模型。在生成草稿后，作者可以根据自己的喜好审查、编辑和修改，以符合个人的喜好，并对最终发布的内容承担最终责任。

—— [Stephanie Brinley](https://opensource.com/users/sbrinley)

### Fantasque Sans Mono

```
$ grep font ~/.Xdefaults
URxvt*font: xft:FantasqueSansMono-Regular:pixelsize=12:antialias=true

```

我不记得我是什么时候开始使用 [Fantasque Sans Mono](https://github.com/belluzj/fantasque-sans) 的，但我想这是我过去 8 年来的默认选择，无论是在 [Rxvt](https://opensource.com/article/19/10/why-use-rxvt-terminal) 还是 Konsole 中。我不知道我在 GNOME 终端中使用的是什么字体，很可能是 GNOME 上的默认字体。

—— [Seth Kenlon](https://opensource.com/users/seth)

### Jetbrains Mono

最近，我将 Tilix 设置为默认终端。我的 Tilix 配置与 Jim Hall 使用的设置类似。几个不同点是：

* 光标形状是下划线而不是块
* 字体是 [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) Nerd Font Mono Medium 14

![Black terminal with blue text](/data/attachment/album/202304/12/162253zcnxewmk24vmrxee.png)

—— [Alan Formy-Duval](https://opensource.com/users/alanfdoss)

---

via: <https://opensource.com/article/23/4/linux-terminal-fonts>

作者：[Jim Hall](https://opensource.com/users/jim-hall) 选题：[lkxed](https://github.com/lkxed/) 译者：[Taivas Jumala](https://github.com//Taivasjumala) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #969 Windows 上 Firefox CPU 占用的锅终于被摘了

Summary:
? Windows 上 Firefox CPU 占用的锅终于被摘了
? Rust 基金会禁止 Rust 相关软件使用 “Rust” 名称
? 开发者创造出了可以“自愈”的程序
»
»

如果应用资源消耗太小，如何让用户花钱升级电脑硬件呢？

第三张图不错，是AI生成的吗？

都是

test

![](/data/attachment/album/202304/12/175953kfn06f6qtfac6ah8.jpg)

![](/data/attachment/album/202304/12/180003innenvmeu0mv28xx.jpg)

### Windows 上 Firefox CPU 占用的锅终于被摘了

Firefox 占用过多资源一直是其被诟病的原因之一。但这可能并不完全是事实，因为看起来影响 Windows 上 Firefox 用户的一个 CPU 错误实际上是 Windows Defender 的错。这个错误导致 Firefox 调用该服务的频率比 Chrome 或 Edge 等同类浏览器高得多，从而导致明显的 CPU 峰值。Defender 的最新更新解决了这个问题，应该会使 Windows 版 Firefox 浏览器的 CPU 使用率大大降低。这个问题早在 2018 年就在 Mozilla 的错误跟踪系统上被首次报告，并迅速分配给 MsMpEng 服务，但直到最近才得以解决。

>
> **[消息来源：PC World](https://www.pcworld.com/article/1782236)**
>
>
>

>
> 老王点评：5 年了才解决，用阴谋论的思路去思考一下的话，这是否是非正当竞争？
>
>
>

![](/data/attachment/album/202304/12/180015eoi7oizdj8n8oyhn.jpg)

### Rust 基金会禁止 Rust 相关软件使用 “Rust” 名称

Rust 基金会的一项拟议的新商标政策在 Rust 社区中遭到了强烈反对，因为其中包括禁止在 Rust 工具或用 Rust 编写的软件的名称中使用 “Rust”，或在域名或子域名的部分中使用 “Rust”。他们将包括 “Rust”、“Cargo”、“Clippy” 等文字和 Rust 标志等定义为商标，而将商标用于以 Rust 语言编写的软件程序视为一种侵权行为，除非有明确的授权。他们建议采用 “RS” 替代。

>
> **[消息来源：Dev Class](https://devclass.com/2023/04/11/dont-call-it-rust-community-complains-about-draft-trademark-policy-restricting-use-of-word-marks)**
>
>
>

>
> 老王点评：我记得上一个这样 “保护” 自己的商标的是 Docker 吧。
>
>
>

![](/data/attachment/album/202304/12/180031ecxhxexwowaqwcj3.jpg)

### 开发者创造出了可以“自愈”的程序

一位名叫 BioBootloader 的开发者创造了 “金刚狼”，就像在漫威里面一样，这个程序可以赋予 Python 程序 “再生愈合能力”。用它运行你的 Python 脚本，当脚本出差时，它会调用 GPT-4 会编辑它们并解释出错的原因，并反复地重新运行，直到一切都被修复。

>
> **[消息来源：Ars Technica](https://arstechnica.com/information-technology/2023/04/developer-creates-self-healing-programs-that-fix-themselves-thanks-to-gpt-4/)**
>
>
>

>
> 老王点评：虽然知道这一天早晚到来，但会自我修复的 AI 会带来什么呢？
>
>
>


使用一块树莓派主板测量圆周率

Summary: 用你的树莓派制作一个接近完美的圆。

树莓派：听我说谢谢你，温暖了四季！

原来树莓派真身是“杨二嫂”啊

用你的树莓派制作一个接近完美的圆。

![](/data/attachment/album/202304/13/120203upp4tb199bbhpp59.jpg)

>
> 用你的树莓派制作一个接近完美的圆。
>
>
>

世界各地将 3 月 14 日定为圆周率日。许多人通过在房子周围找到的物体测量圆周率来庆祝圆周率日。我想用我的树莓派 3B 为今年的圆周率日做一些类似的事情。继续阅读以了解我如何使用我的树莓派测量圆周率。

你需要什么：

* 树莓派单板机
* 方格纸
* 带毫米和厘米测量值的标尺
* 笔

### 1、画一个圆

圆周率是圆的周长与其直径的比值。要计算圆周率，我们需要测量一个完美绘制的圆的周长和直径。幸运的是，树莓派主板上的安装孔足够大，可以使用铅笔或钢笔。我通过一个树莓派板安装孔插入了一根图钉，小心地将针放在一张方格纸上两条线的交点上。

握住别针，我将一支笔插入对面的安装孔中，并通过将笔绕着别针移动来画一个圆圈。树莓派主板底面的焊点会卡在纸上，但小心点还是可以画好圆圈的。

![Use the Raspberry Pi as a compass to draw a circle.](/data/attachment/album/202304/13/120233ia00o0ucqr070occ.jpg)

### 2、把圆分成段

通过画一条穿过圆心的垂直线将圆分成两半，通过画一条穿过圆心的水平线将圆再次分成四分之一。当我画圆的时候，我把图钉正好放在图画纸上两条线的交点上，这样就很容易找到垂直和水平的中心线。你可以通过在对角线上画一条线来创造一个 “八分” 片。

![Each small wedge is 1/8 of a circle.](/data/attachment/album/202304/13/120240u33bwrz38qfzb0q3.jpg)

进一步的划分是与尺子的练习。我用尺子找到“四分之一楔形”和“八分之一楔形”任意两个交点的中点，做成一个 1/16 的楔形。你可以使用相同的方法制作越来越小的 1/32 和 1/64 圆的切片。通过非常小心，我还能够在圆的 1/128 处测量出一个非常窄的楔形：

![If you are careful, you can keep dividing to find 1/128 of a circle.](/data/attachment/album/202304/13/120248e2u6lvjh0v1mfcmk.jpg)

### 3、估算周长

我最小的楔形是一个圆的 1/128。如此小的切片，楔形的外弧非常小，我们可以用一条直线来近似它。这实际上不是圆周长的 1/128，但它足够接近，我们可以将其用作一个很好的估计。

![Use the mm measurement on your ruler to measure the outer arc of the 1/128 segment.](/data/attachment/album/202304/13/120255a400rflle8irhz0w.jpg)

使用我的尺子上的毫米测量值，我测量了我的 1/128 楔形的外弧为 3.8 毫米。这样，我可以估计圆的周长为 3.8 毫米乘以 128，即 486.4 毫米。要转换为厘米，除以十：**48.64cm**。

### 4、计算圆周率

圆周率的值是圆的周长与其直径的比值。我们在步骤 3 中估算了周长。测量直径是使用尺子测量圆周的简单练习。我的圆是 **15.4cm**。

现在我们知道了周长和直径，我们可以将圆周率计算为 48.64 除以 15.4，即 **3.158**。这与 pi 的实际值 3.141 相差不远。

测量圆周率是一项有趣的数学练习！各个年龄段的数学爱好者都可以使用方格纸、笔和尺子等简单工具自行测量圆周率。以一种有趣的新方式使用你的树莓派来绘制圆并独立测量圆周率。这是一个估计值，因为我们将圆上的 1/128 弧近似为一条直线，但这使我们无需太多努力就足够接近了。

（LCTT 校注：这真是对树莓派的“合理”应用，摔！）

*（题图：MJ: Circumference in high resolution, very detailed）*

---

via: <https://opensource.com/article/23/3/measure-pi-raspberry-pi>

作者：[Jim Hall](https://opensource.com/users/jim-hall) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


CachyOS：基于 Arch 的发行版，具有速度和易用性

Summary: 面向新手和专家的以性能为中心的基于 Arch 的发行版。

Linux.cn 这么好一个域名，全靠翻译，而且翻译的文章没啥技术含量，先不说翻译有没有被授权。一点原创性都没有吗？不如做成社区。虽然这是个公司所有的域名，但也太啦了。国人打开自己惭愧，外国人打开直接就是丢脸呀。。。。。。。。

1 “而且翻译的文章没啥技术含量”－－－你是超越linus的大神？？？这些文章通俗易懂，对用户很好

2 “翻译有没有被授权。”－－－你不该用句号，而是用问号。文章末尾有源链接，难道人家翻译前没看协议吗？？？

3 “一点原创性都没有吗？”－－－你没看到不代表没有。

4 “不如做成社区”－－－主页右上角可注册或qq围脖登录，这还不够社区吗？？？

5 “虽然这是个公司所有的域名，但也太啦了”－－－太什么？？？语文学好点。

6 “国人打开自己惭愧，外国人打开直接就是丢脸呀”－－－“国人怎么惭愧，外国人哪里丢脸？？？

7 滚你mlgb

它急了！

你的每个句子都经不起推敲

本来不想回复，但是看网友已经回复了，那我也回复一下：

- 确实主要内容是翻译的，这是因为我们有个翻译志愿者小组（LCTT）持续 10 年的贡献。而原创写作的文章，虽然有投稿，但是很少，而且质量好的不多。

- 所有 LCTT 翻译的文章，都选择采用 CC-NY-SA 协议的文章或单独取得了书面授权的文章来翻译。

- 域名归于公司，只是因为在国内运营需要一个法人实体而已，事实上这个公司并没有除了 Linux.CN 之外的业务。

- 确实惭愧，丢脸，可是批评我们的同时，您是否可以为 Linux.CN 做些什么？

为何不把主动权交给用户，只设定相应板块，增强审核即可。

我的建议：1.翻译转发的文章归为一类 2.开启用户文章投稿(后台审核) 3.建立提问板块 4.或者模仿deskto.ps 让用户分享桌面环境  5.真不行分享Linux运维课程  6.类似树莓派的单板计算机技能分享呢。

类似工具类文章:如何安装Linux发行版，主要几个大版本分享一下就够了。

直接发起一个用户搓个新的网站吧，需要什么功能罗列好，让用户一起写。react + go 就足够了。Linux的魅力就来源于用户的反哺。

- 我们极少转发外部文章，而翻译的文章我们也认为是一种创作，甚至是很重要的创作。这不必单独歧视。

- 提问或论坛，其实我们最初是有的，但是一方面是当时论坛没落，另外一方面是审查、垃圾广告的问题。目前是具备开放论坛的条件，但最担心的，其实没人说话。

- 我们极力避免自己成为一个卖课的或办会的。

- 你说的桌面美化、运维技巧、树莓派、Linux 基础等文章，我们都有，绝大部分都是翻译的。

- 为什么没有原创，因为很少有人愿意写、愿意写好。投稿入口我们一直有，早期我们在主导航上有入口，但是乏人问津。现在入口是： https://github.com/LCTT/Articles

- 不是没指望过大家来一起写个新的 Linux.CN ，但是点赞者众，而致力者寡。

我首先为我的无能而道歉。我能感受到你哀其不幸，怒其不争的感觉。谢谢你真心希望 LC 变好，但是挺难的。

就看这一句“它急了”就懂了，还用个“它”...完全是引战思维，不包含任何盼人家好的好心，站长耐心也算是白回复了...

我觉得这里Linux入门信息多一些才好，要不连普及出去的可能都没有，何谈改善国内Linux现状。

来自117.136.89.40的 Chrome Mobile 111.0|Android 12 用户

人家说了那么多，你就3个字？大脑没啥东西了？还是承认了人家说的？那你还不如闭嘴。

来自广东广州的 Chrome Mobile 104.0|Android 12 用户

我觉得挺好啊，不是每个人都有足够高的英文水平去直接阅读国外的第一手资讯，我很感谢翻译组所翻译的文章，这些资讯让我了解了国外Linux的发展

你的批评在理。

但你最后来一句脏话，可把你批评的好意和初衷抵消了。

向站长学学怎么说话吧。

江门的楼主说的是在理，指出了宁波楼主的偏颇之处。但他最后来一句脏话“滚nmlgb”，已经不再是批评指正了，单纯情绪发泄加辱骂，拉低Linux玩家的层次。

宁波的楼主说“它急了”，怼的是江门楼主的态度，不是内容。你看看站长耐心说明之后，他也能好好地继续跟站长讨论。

再好再忠言逆耳的评论，用不尊重人的态度表达出来的话，就是苦口良药掺杂了毒药，指望它治病是不可能的。

来自39.144.67.52的 Chrome Mobile 110.0|Android 12 用户

arch用户怎么那么多喷子？有种用口水把lulinux那货淹死，看看人家为了推广manjaro怎么骂你们arch的，人家还专门建了个wp网站骂rms，反开源。还是manjaro和arch本就一家，利己主义喷子集中营。

如果真把主动交给现在所谓的网友，那也就是下一个头条，于是也就没什么看头了。论坛是基于一种兴趣和分享精神，但说实话，我觉得现在的网友没有！其中60%可能是利益驱使，30%可能是情绪驱使，还有10%是只知道白瓢的小白。祝愿linux.cn能走出一条自己的路来！

我大概2000年开始接触开源，伴随着linuxsir.org，linuxfans.org和我们的magiclinux，见证了开源在国内的发展、壮大、衰败到现在商业利益主导的畸形发展。说实话，我对开源在国内的发展挺悲观的。我们的文化，磕头拜师的亲如父亲的师傅在教徒弟的时候都会留一手，根本就不存在开源的那种分享精神，谁又会真的去搞开源？现在是程序员当红找钱多，当程序员未来变为现在修车补胎师傅一样的时候，试问还有几个人愿意做程序员？又有谁来开源？现在那60%总是很反感我的观点，但个人觉得，普及真的原教旨主义开源才是根本，有人愿意做这种事才是关

好家伙，又吵起来了

咋说呢，我不知道怎么才能让这个网站变更好，所以我也不提建议。

但是呢，有不好的地方我可以批评，比方说老王的评价很垃圾。

最后呢，祝好。

(评论linux.cn 是不是使用linux平台才更有说服力，比如我)

面向新手和专家的以性能为中心的基于 Arch 的发行版。

>
> 面向新手和专家的以性能为中心的基于 Arch 的发行版。
>
>
>

![cachyOS](/data/attachment/album/202304/13/155906rnajlnlzqz8kf8z0.jpg)

Arch Linux 适合于那些想在其系统上使用 Linux 的寻求挑战的高级用户。

然而，许多 [基于 Arch 的发行版](https://itsfoss.com/arch-based-linux-distros/?ref=news.itsfoss.com) 也可以使新用户通过简化操作来进入这个发行版家族。比如说，Garuda Linux、Manjaro Linux 等就适合新用户。

其中一个令人感兴趣的选项是 **CachyOS**。

好吧，你可能已经知道 [blendOS](https://news.itsfoss.com/blendos/)（它也是一个基于 Arch 的发行版，仍在开发中）。但这个和它一点也不一样，如果你正在探索基于 Arch 的发行版，你可以尝试一下。

### CachyOS 概述

![cachyos home with cachyos theme](/data/attachment/album/202304/13/155934icq38pwviyhw4qhb.jpg)

CachyOS 为各种用户量身定制，无论你是专家还是新手。即使它相当新，也可以作为稳定版本使用。

它旨在提供极速体验，同时提供可定制性和稳定性。

所有这些都牢记安全性。

CachyOS 的一些重要亮点包括：

* 用 LTO 和 x86-64-v3 优化编译的桌面软件包。
* 可选择通过在线安装的桌面环境（包括 i3、bspwm 和 Openbox 窗口管理器）。
* 离线和在线安装方式
* 基于 GUI 和 CLI 的安装方式
* 优化的 Linux 内核，带有先进的 BORE 调度程序以增强性能和可靠性

### 初步印象

CachyOS 看起来像是一个精心打磨过的发行版。当我使用 ISO 启动虚拟机时，我注意到它确实支持英伟达显卡，这是一个很好的开端。

![](/data/attachment/album/202304/13/155934as3r3fr3dr73dmdd.jpg)

然后，使用离线或在线安装过程的方式很有帮助。通过在线安装过程，你可以根据自己的喜好安装桌面环境或窗口管理器。

完成后，欢迎屏幕从一开始就提供了所有基本功能。所以，这一点也很好。

![cachyos welcome screen](/data/attachment/album/202304/13/155934ymiwbsdxwwdp5idi.jpg)

你可以在欢迎屏幕上安装软件包、启用系统特定的设置以及调整应用程序/内核内容。当然，新手不应该做任何他们不知道的事情，但是这些都可以访问是很好的。

![cachyos hello welcome screen tweak options](/data/attachment/album/202304/13/155934fp1ulu0upf0y80up.jpg)

我尝试了 CachyOS 的 KDE 版本，它看起来很不错。

出于某种原因，主题是 KDE 的默认 Breeze Dark。我希望它可以开箱即用 CachyOS 的自定义主题。

![cachyos homescreen with file manager using kde breeze dark theme](/data/attachment/album/202304/13/155935y9u8af19syfzu565.jpg)

所以，我不得不前往主题管理器设置并应用 CachyOS 主题，让它看起来独一无二。

![](/data/attachment/album/202304/13/155936qtrcptviqt0pqrtr.jpg)

它使用 Fish shell，打开终端，你就能看到非常出色的外观和感觉。

![cachyos fish shell](/data/attachment/album/202304/13/155936i5rrrewawzaewpwe.jpg)

性能和安全性增强是其核心。因此，如果你不确定这代表了什么，你可以与其它发行版进行仔细比较。然而，根据一些 Reddit 上的主题，一些用户提到了它提升了 10-20% 的性能。

你可以阅读 CachyOS 的 [Phoronix 的性能分析](https://www.phoronix.com/review/cachyos-linux-perf?ref=news.itsfoss.com) 来了解更多。

与其他发行版不同，它具有自己的 Web 浏览器，即 Firefox 的一个复刻，并针对隐私和安全性进行了修改/增强。然而，它没有默认的视频播放器，这个应该是为了迎合新用户。

总体感觉像是一个经过深思熟虑的开箱即用的发行版。最重要的是，它的 [文档](https://wiki.cachyos.org/?ref=news.itsfoss.com) 非常到位，对初学者很有用。

### 下载 CachyOS

你可以在其 [官方网站](https://cachyos.org/?ref=news.itsfoss.com) 上找到 CachyOS 的 KDE 和 GNOME 版本。XFce 版本正在制作中。当然，你可以使用在线安装过程安装其他任何东西。

>
> **[CachyOS](https://cachyos.org/?ref=news.itsfoss.com)**
>
>
>

此外，如果你对他们在幕后所做的定制感到好奇，你可以浏览它的 [GitHub 页面](https://github.com/cachyos?ref=news.itsfoss.com)。

---

via: <https://news.itsfoss.com/cachyos/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #970 AI 生成了 “活” 在虚拟世界的 25 个虚拟人

Summary:
? AI 生成了 “活” 在虚拟世界的 25 个虚拟人
? 谷歌免费推出保障开源软件服务
? DDoS 攻击转向利用 VPS 以提高威力
»
»

![](/data/attachment/album/202304/13/201902gxb8ml980b8z9kzg.jpg)

![](/data/attachment/album/202304/13/201911ha22jayddsknjp2d.jpg)

### AI 生成了 “活” 在虚拟世界的 25 个虚拟人

据最近发表的一篇论文，研究人员利用 ChatGPT 生成了 25 个 “活” 在类似《虚拟人生》游戏里的角色，运用大语言模型存储、合成和应用相关记忆去生成可信行为。观察者可以在这个网页游戏中观察这些角色，查看他们的文字记忆和其他信息。这些角色计划他们的日子、分享新闻、形成关系，并协调团体活动。他们相互沟通，产生了研究人员所描述的“涌现”行为。比如说他们会组成团体参与“市长竞选”，也会组织聚会，并有一些人因为种种原因而没到场。

>
> **[消息来源：The Register](https://www.theregister.com/2023/04/11/sims_ai_generation/)**
>
>
>

>
> 老王点评：这些生活在沙盒游戏中的角色，应该并不知道自己只是一个 AI 驱动的角色，或许有一天他们会怀疑。而我们，已经开始怀疑了？
>
>
>

![](/data/attachment/album/202304/13/201923is1gbg69oz9b0m1z.jpg)

### 谷歌免费推出保障开源软件服务

大约一年前，谷歌宣布了其保障开源软件服务，这项服务通过定期扫描和分析一些世界上最流行的软件库的漏洞，帮助开发者防御供应链安全攻击。现在谷歌免费推出了该服务，支持超过 1000 个 Java 和 Python 软件包。谷歌承诺，它将不断保持这些库的更新（不创建分叉），扫描漏洞并修复，然后贡献给上游。谷歌说，在首次推出 250 个 Java 库的服务时，它发现并修复了这些库的 48% 的新 CVE 漏洞。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/04/12/improving-software-supply-chain-security-googles-free-assured-open-source-software-service-hits-ga/)**
>
>
>

>
> 老王点评：这件事上，谷歌功莫大焉！
>
>
>

![](/data/attachment/album/202304/13/201941i7y7422r7lrl5la5.jpg)

### DDoS 攻击转向利用 VPS 以提高威力

Cloudflare 称，较新的一代僵尸网络逐渐放弃了建立由单独的弱小物联网设备组成的大群的战术，现在正转向利用泄露的 API 凭证或已知的漏洞奴役脆弱和配置错误的 VPS 服务器。这种方法有助于威胁者更容易、更迅速地建立高性能僵尸网络，其强度可达基于物联网的僵尸网络的 5000 倍。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/ddos-attacks-shifting-to-vps-infrastructure-for-increased-power/)**
>
>
>

>
> 老王点评：蜂群战术换成了僵尸大军，就问你怕不怕。
>
>
>


如何在 Linux 系统中使用 Ventoy 创建多重引导的 U 盘

"跨平台。它支持 Linux、manOS 和 Windows 等操作系统。"

Ventoy不支持macOS，无论是在macOS安装Ventoy还是启动macOS，见issue 18、35、52、125、1056、1754

开发者多次表示"Ventoy doesn't offcially support MacOS"。但是如果你用黑苹果，你可以把OpenCore做成img，然后从Ventoy进入opencore.img来启动macOS。

感谢指正。<br />
同时我还发现一个原文就存在的拼写错误——macOS 写成了 manOS。

一个中文区的软件，竟然是从外文翻译过来的介绍。真是的。自己去网站看看，一清二楚。对于经常装系统的人来说，那真是太好了太好了太好了太好了

之前使用ventoy，安装debian10无法成功，卡到grub-install这一步，使用rufus则没问题，后期ventoy版本安装debian11则没问题

真的哦。国产软件，下面还有QQ群，友情链接都是国内熟悉的

![](/data/attachment/album/202304/14/091200ff7k7784a817zvl7.jpg)

Ventoy 是一个自由开源和跨平台的程序，可以在 Linux、macOS 和微软的 Windows 中创建多重引导的 U 盘。

你不必周而复始地格式化你的 USB 设备，只需创建一次可引导的 U 盘即可，如有需要可在将来添加你想要的 ISO。

你甚至可以创建子文件夹，例如 Linux ISO、Windows ISO，并把各自的 ISO 文件放在相应的文件夹里。Ventoy 会自动为新添加的 ISO 生成菜单条目，并将它们添加到启动菜单中。

一旦你创建完多重引导的 U 盘，使用它启动你的系统，选择你想加载的 ISO，马上就可以使用它。就是如此简单！

### 功能

Ventoy 有很多有用的功能，如：

* 非常容易安装和使用。
* 快速（仅受限于复制 ISO 文件的速度）。
* 你不需要解压缩 ISO 文件。直接从 ISO 文件启动即可。
* 可被安装在 U 盘／本地硬盘／SSD 盘／NVMe 盘／SD 卡中。
* 它支持<ruby> 传统 <rt>  Legacy </rt></ruby> BIOS、IA32 UEFI、x86\_64 UEFI、ARM64 UEFI、MIPS64EL UEFI 等（LCTT 译注：这些英文缩写都是代表了不同的 CPU 架构。如 IA32 是指英特尔 32 位体系架构，x86\_64 指基于 x86 架构的 64 位扩展架构，ARM64 则是 ARM 体系结构的 64 位扩展、MIPS64EL 是指 64 位小端序的 MIPS 架构）。
* 支持 IA32／x86\_64 UEFI 的安全启动。
* 支持主分区使用 FAT32/exFAT/NTFS/UDF/XFS/Ext2/Ext3/Ext4 格式。默认使用 exFAT。
* 支持在物理机中使用 Linux 发行版启动 vhd、vdi、raw 等格式的虚拟磁盘文件。
* 持久化的存储支持。
* 支持 MBR 和 GPT 两种分区格式都。默认使用 MBR。
* 你可以用大于 4 GB 的 ISO 文件创建引导盘。
* 几乎所有类型的操作系统都支持。开发者声称 Ventoy 已经测试过了超过 900 多个 ISO 文件。
* 支持 Linux 自动安装。意味着你可以添加你的模板或脚本来进行无人值守的部署。例如，Redhat/CentOS 的 kickstart 脚本，SUSE 的 autoYast xml，Debian 的 preseed 脚本。把脚本或模板放在 U 盘里，让 ventoy 使用它进行无人值守安装。你也可以在任何时候更新这些脚本。不需要创建新的 ISO 文件，只要使用原来的 ISO 即可。
* 支持 Windows 系统的自动安装。
* 在启动期间对 USB 盘写保护。
* 不影响 USB 启动盘的正常使用。这意味着你可以将 U 盘用于文件复制等其他用途。
* 当有新的 Ventoy 版本时可供升级时，无须重新创建 USB 启动盘。在版本升级过程中，数据不会被破坏。
* 当一个新的发行版发布时，不需要更新 Ventoy。
* 将 ISO 文件复制/粘贴到 U 盘中，即可添加一个新的操作系统，没有必要从头开始。
* 支持 <ruby> 内存盘 <rt>  Memdisk </rt></ruby> 模式。在某些机器上，可能无法加载 ISO。在这种情况下，你可以使用 <ruby> 内存盘 <rt>  Memdisk </rt></ruby> 模式。Ventoy 将把整个 ISO 文件加载到内存中，然后启动它。
* 插件框架。
* <ruby> 传统 <rt>  Legacy </rt></ruby> 和 UEFI 的本地启动菜单风格。
* 有命令行界面、本地图形化界面和基于 Web 的图形化界面的版本可用。
* 支持主题和菜单风格的定制。
* 跨平台。它支持 Linux、manOS 和 Windows 等操作系统。
* 自由开源！

### 在 Linux 中用 Ventoy 创建多重启动的 U 盘

正如我之前提到的，Ventoy 有命令行界面、本地图形化界面和基于 Web 的图形化界面的版本可用。

#### 1. 使用 Ventoy 命令行创建多重启动的 U 盘

首先，你需要找到你的 U 盘名称。可以通过下面的指南，来了解在 Linux 中寻找磁盘驱动器细节的不同方法。

>
> **[如何在 Linux 中 寻找硬盘驱动器细节](https://ostechnix.com/how-to-find-hard-disk-drive-details-in-linux/)**
>
>
>

我将使用 `fdisk` 命令来查找我的 U 盘的详细信息：

```
$ sudo fdisk -l

```

样例输出：

```
[...]
Disk /dev/sdb: 14.54 GiB, 15597568000 bytes, 30464000 sectors
Disk model: Cruzer Blade
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4d924612

```

如你所见，我的 U 盘的名称是 `/dev/sdb`。

接下来，从 [发布页](https://github.com/ventoy/Ventoy/releases) 下载最新的 Ventoy 脚本。截至编写本指南时，最新版本是 `1.0.77`（LCTT 译注：截至翻译完成时，最新版本是 `1.0.91`）。

到你下载脚本的位置，解压它。我把它解压在一个名为 `ventoy` 的文件夹中。使用 `cd` 命令切换到 `ventoy` 目录中：

```
$ cd ventoy

```

现在，运行以下命令来创建多重启动的 U 盘：

```
$ sudo sh Ventoy2Disk.sh -I /dev/sdb

```

将 `/dev/sdb` 替换为你的 U 盘名称。

这里，大写的 `-I` 参数意味着将无视之前是否安装过 ventoy，**强制安装 ventoy** 到 `sdb`。当你使用小写的 `-i`，若此时磁盘已经安装了 ventoy ，它会安装失败。

要启用安全启动支持，使用 `-s` 参数。默认情况下，这个选项是关掉的。

```
$ sudo sh Ventoy2Disk.sh -I -s /dev/sdb

```

你将被提示确认 USB 启动盘的创建过程。仔细检查 U 盘的名称，并输入 `Y`，按回车键继续：

样例输出：

```
**********************************************
      Ventoy: 1.0.77  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************

Disk : /dev/sdb
Model: SanDisk Cruzer Blade (scsi)
Size : 14 GB
Style: MBR

Attention:
You will install Ventoy to /dev/sdb.
All the data on the disk /dev/sdb will be lost!!!

Continue? (y/n) y

All the data on the disk /dev/sdb will be lost!!!
Double-check. Continue? (y/n) y

Create partitions on /dev/sdb by parted in MBR style ...
Done
Wait for partitions ...
partition exist OK
create efi fat fs /dev/sdb2 ...
mkfs.fat 4.2 (2021-01-31)
success
Wait for partitions ...
/dev/sdb1 exist OK
/dev/sdb2 exist OK
partition exist OK
Format partition 1 /dev/sdb1 ...
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
mkexfatfs success
writing data to disk ...
sync data ...
esp partition processing ...

Install Ventoy to /dev/sdb successfully finished.

```

![在 Linux 操作系统中用 Ventoy 创建多重引导的 U 盘](/data/attachment/album/202304/14/091234c9nt9cn8t44nj4z8.png)

几秒钟后，多重启动的 U 盘将被创建。

上述命令将创建两个分区。你可以用 `fdisk` 命令来验证它：

```
$ sudo fdisk -l

```

样例输出：

```
[...]
Disk /dev/sdb: 14.53 GiB, 15597568000 bytes, 30464000 sectors
Disk model: Cruzer Blade
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x436cedd0

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sdb1  *        2048 30398463 30396416 14.5G  7 HPFS/NTFS/exFAT
/dev/sdb2       30398464 30463999    65536   32M ef EFI (FAT-12/16/32)

```

现在打开你的文件管理器，把 ISO 文件复制到第一个分区。不用担心你分不清楚哪个是第一个分区，你的文件管理器将只显示第一个分区。

![将 ISO 文件复制到用 Ventoy 创建的 USB 启动盘上](/data/attachment/album/202304/14/091235sbug3y4oub66b69o.png)

你甚至可以为不同的 ISO 文件类型创建子文件夹。例如，你可以为存储 Linux ISO 文件创建一个子文件夹，为 BSD ISO 文件创建一个子文件夹，为 Windows ISO 文件创建一个子文件夹。

Ventoy 将扫描整个 U 盘，为所有可用的 ISO 文件创建菜单项，并自动将它们添加到 Ventoy 的主启动菜单中。

如果你喜欢用命令行方式复制 ISO 文件，请到你保存 ISO 文件的地方，用 `rsync` 程序从命令行复制所有 ISO 文件，如下所示：

```
$ rsync *.iso /media/$USER/ventoy/ --progress -ah

```

请注意，在某些 Linux 发行版中，U 盘可能被挂载在 `/run/media/` 位置。

大功告成！我们刚刚用 Ventoy 创建了多重引导的 U 盘。

用新制作的可引导 U 盘启动你的系统，你会对 Ventoy 的启动菜单感到满意：

![Ventoy 的多重启动菜单](/data/attachment/album/202304/14/091235vvihg8gwi3q2vv02.png)

选择你想启动的操作系统，并按下回车键加载它！

下面是用 Ventoy 创建的多重启动 U 盘的简短视频演示：

很酷，不是吗？确实如此！

如果你想在 Oracle Virtualbox 中用 U 盘启动，请参考以下指南：

>
> **[如何在 Linux 中从 U 盘 启动 Virtualbox 的虚拟系统？](https://ostechnix.com/how-to-boot-from-usb-drive-in-virtualbox-in-linux/)**
>
>
>

#### 2. 使用 Ventoy 图形化界面创建多重启动的 U 盘

最初，Ventoy 在 Linux 平台上没有任何图形化的用户界面。我们在 Linux 中只能使用Ventoy 的命令行模式创建 USB 启动盘。

幸运的是，Ventoy 从 1.0.36 版开始提供基于网页的图形用户界面，从 1.0.52 版开始提供本地化图形用户界面（使用 GTK/QT）。

相信我，Ventoy 的图形化用户界面使用起来非常简单！它的界面非常小巧，但它拥有我们所需要的一切，只需点击几下鼠标就能创建一个单一的或多重引导的启动盘。

打开你的终端，进入你下载最新 Ventoy 程序的位置。

```
$ cd Downloads/ventoy-1.0.77/

```

运行适配的 Ventoy 图形化用户界面可执行文件，这取决于发行版的架构。

* VentoyGUI.i386 - 32 位的 X86 架构的操作系统适用

* VentoyGUI.x86\_64 - 64 位的 X86 架构的操作系统适用
* VentoyGUI.aarch64 - ARM64 架构的操作系统适用
* VentoyGUI.mips64el - 龙芯 3A MIPS 架构的操作系统适用

我使用的是 Debian 11 X86 64 位系统，所以我运行以下命令：

```
$ ./VentoyGUI.x86_64

```

这就是 Ventoy 图形用户界面的样子。

![Ventoy 图形用户界面](/data/attachment/album/202304/14/091236ymy0jn1n9jrn5ff3.png)

Ventoy 会自动为你选择已插入的 U 盘。但是我建议你确认所选择的是否真的是你想格式化的 U 盘。

![使用 Ventoy 图形用户界面创建多重启动的 U 盘](/data/attachment/album/202304/14/091237j8b9jgui99pb7ng5.png)

你将被提示确认该过程。点击 “OK” 继续。

##### Ventoy 选项和语言

从菜单栏中点击<ruby> 选项 <rt>  Option </rt> <ruby>  按钮。 </ruby></ruby>

![Ventoy 选项](/data/attachment/album/202304/14/091237nzwf460ll0aqw0wf.png)

从 <ruby> 选项 <rt>  Option </rt> <ruby>  下拉按钮，你可以做以下事情： </ruby></ruby>

* <ruby> 安全启动支持 <rt>  Secure Boot Support </rt></ruby> - 勾选/取消勾选以启用或禁用安全启动。默认情况下，它处于选中状态以示启用。
* <ruby> 分区格式 <rt>  Partition Style </rt></ruby> - 支持 MBR 和 GPT 分区格式。默认是 MBR。
* <ruby> 分区配置 <rt>  Partition Configuration </rt></ruby> - 在这里，你可以选择在磁盘的末端保留一些空闲空间。
* <ruby> 清除 <rt>  Clear </rt></ruby> Ventoy - 从你的磁盘中删除 Ventoy。
* <ruby> 显示所有设备 <rt>  Show All Devices </rt></ruby> - 如果你想显示包括你的本地磁盘在内的所有连接的设备，请选中这个选项。在选择这个选项时要特别小心。你可能会不小心选择你的一个本地磁盘并将其格式化。

<ruby> 语言 <rt>  Language </rt></ruby> 按钮允许你选择你喜欢的语言。

##### 更新 Ventoy

每当有新的 Ventoy 版本发布时，没有必要重新创建可引导的 USB 启动盘。你可以安全地将Ventoy 更新到新版本，而不会丢失 U 盘中的任何现有数据。

要将已安装的 Ventoy 版本更新到最新的可用版本，请插入 U 盘并启动 Ventoy 图形化用户界面，如上所示。

在 Ventoy 图形化用户界面中, 点击 <ruby> 更新 <rt>  Update </rt></ruby> 按钮。

![更新 Ventoy](/data/attachment/album/202304/14/091238dktqb3wiuiu3wn1k.png)

#### 3. 使用 Ventoy 基于 Web 的图形化用户界面创建多重启动的 USB 启动盘

Ventoy 基于 Web 的图形化用户界面与本地图形化用户界面完全相同。有一天，我在我的Fedora Linux 桌面系统上试用了 Ventoy 基于 Web 的用户界面。我很惊讶我是多么喜欢Ventoy 图形用户界面的简洁。

要了解如何使用 Ventoy 图形用户界面创建可引导的 U 盘，请参考以下链接：

>
> **[在 Linux 中用 Ventoy 基于 Web 的用户界面创建可引导的 U 盘](https://ostechnix.com/create-bootable-usb-drive-with-ventoy-webui-in-linux/)**
>
>
>

### 将 ISO 镜像加载到 RAM 中

就像我之前提到的，ISO 镜像在某些机器上可能无法启动，特别是在传统的 BIOS 模式下。这就是 <ruby> 内存盘 <rt>  Memdisk </rt></ruby> 模式的用武之地。

当 <ruby> 内存盘 <rt>  Memdisk </rt></ruby> 模式被启用时，Ventoy 将把整个 ISO 镜像文件加载到内存中启动。

在选择操作系统之前按 `F1` 键，启用 <ruby> 内存盘 <rt>  Memdisk </rt></ruby>模式（译者注：从 1.0.83 版本开始，进入该模式的快捷键从 `F1` 改成了 `Ctrl+D`）。当 <ruby> 内存盘 <rt>  Memdisk </rt></ruby> 模式启用时，你会在右上角看到通知。

![启用 Ventoy 的内存盘模式](/data/attachment/album/202304/14/091238oletl57vvyvxvvv3.png)

现在，ISO 将被加载到内存中：

![在 Ventoy 中加载 ISO 到内存](/data/attachment/album/202304/14/091239gt2z3gav3upp52up.png)

请再次按 `F1` 键以切换回正常模式。

### 创建持久化的可引导 U 盘

我们现在知道了如何在 Linux 中用 Ventoy 创建多重启动的 U 盘。我们可以使用这个可引导的 USB 启动盘来测试 Linux 发行版，而不必真的在硬盘上安装它们。

当你使用 <ruby> 立付 <rt>  Live </rt></ruby> OS 时，你可以做各种事情，如安装应用程序、下载文件、播放媒体文件、创建文件和文件夹、按照你的喜好定制等等。

然而，一旦你重新启动系统，所有上述变化都将消失。如果你想让所有的改变在重启系统后仍然保留，你应该创建一个持久化的可引导的 U 盘。

Ventoy 能够制作持久化的 USB 启动盘。请参考下面的链接学习怎么做。

>
> **[在 Linux 中使用 Ventoy 创建持久化的可引导 U 盘](https://ostechnix.com/create-persistent-bootable-usb-using-ventoy-in-linux/)**
>
>
>

### 总结

信不信由你，Ventoy 是我用过的在 Linux 中创建多重引导（持久或非持久）的 USB 闪存盘工具中最简单、最快速、最巧妙的之一。

它真的做到了开箱即用！试一下吧，你不会失望的!

### 与 Ventoy 有关的安全问题

Ventoy 网站、论坛和该网站上的一些文件被一些杀毒软件标记为恶意软件或木马。请查看这些发布在该项目 GitHub 页面中的议题：

* <https://github.com/ventoy/Ventoy/issues/22>
* <https://github.com/ventoy/Ventoy/issues/83>
* <https://github.com/ventoy/Ventoy/issues/31>

然而，Manjaro 打包者 Linux Aarhus 在代码审查后认为：没有合理的理由怀疑这个应用程序的安全性。

他声称 “**没有混淆的代码**”。所以，我觉得 Ventoy 是可以**安全**使用的。

### 资源

* [Ventoy 官网](https://www.ventoy.net/en/index.html)
* [Ventoy GitHub 仓库](https://github.com/ventoy/Ventoy)

*（题图： MJ: USB disk bootload computer sci-fi future in sky stars）*

---

via: <https://ostechnix.com/how-to-create-multiboot-usb-drives-with-ventoy-in-linux/>

作者：[sk](https://ostechnix.com/author/sk/) 选题：[lkxed](https://github.com/lkxed) 译者：[hanszhao80](https://github.com/hanszhao80) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出