7 个基于 Fedora Linux 的最佳发行版

Summary: 如果你想在 Fedora 领域中尝试一些东西，我可以列出一些选项。

说实话，还是觉得Deian Gnu/Linux方便。组件安装方便，获取方便，全组件ISO本地源更方便！！！

虽然说 "青菜萝卜，各有所爱"，但我个人还是不喜欢，也不建议用下游发行版。

首先，下游的各种更新肯定滞后于上游 (Ubuntu 基于 Debian 倒是挺快，但毕竟大公司，和那些社区小作坊不一样)。

其次，下游会加一些自认为很棒的魔改，会出现莫明其妙的问题，而且还不能套用上游的解决方案（比如经常有人在 Arch 群问问题，结果 Arch 用户都重现不了，一问原来是 Manjaro 用户）。

xfce4桌面不在列？这个比gnome快多了。。。

你是在搞笑吗？文章在说发行版，管 xfce 和 gnome 什么事？<br />
什么发行版不能装 xfce 和 gnome？

如果你想在 Fedora 领域中尝试一些东西，我可以列出一些选项。

![](/data/attachment/album/202208/21/154425baqqjmpftz7t7qt7.jpg)

有几十个基于 Ubuntu 的发行版可用。从 [面向初学者的发行版](https://itsfoss.com/best-linux-beginners/) 到 [漂亮的发行版](https://itsfoss.com/beautiful-linux-distributions/)，Ubuntu 主导着 Linux 桌面空间。

如果通用发行版还不够的话，你还会发现一些 [奇怪的基于 Ubuntu 的发行版](https://itsfoss.com/weird-ubuntu-based-linux-distributions/)。

我不打算参与 [Ubuntu 与 Fedora](https://itsfoss.com/ubuntu-vs-fedora/) 的辩论。我只是说如果你想在 Fedora 领域中尝试一些东西，我可以列出一些选项。

请记住，我不会列出面向服务器的 Linux 发行版。此处的列表适用于 **桌面 Linux 用户**。

该列表没有特定的排名顺序，并且提到的选项可能并不总是适合新用户。因此，在第一次安装任何基于 Fedora 的发行版之前，请确保你浏览了文档。

### 1、Fedora 定制版

![screenshot fedora cinnamon](/data/attachment/album/202208/21/154434zb3xdjoj9xzbyyzo.jpg)

Fedora 有很多<ruby> 定制版 <rt>  spin </rt></ruby>，但没有 Ubuntu 那么多。

[Fedora 定制版](https://spins.fedoraproject.org/) 不是基于 Fedora 的独立发行版，而只是具有 [不同桌面环境](https://itsfoss.com/best-linux-desktop-environments/) 或采用平铺窗口管理器的不同版本的 Fedora。

如果你不喜欢默认的 GNOME 桌面环境，你可以下载其中一种。

一些可用的选项是：

* Fedora KDE Plasma
* Fedora i3 平铺窗口管理器
* Fedora LXQt
* Fedora LXDE
* Fedora MATE-COMPIZ
* Fedora Cinnamon 版

### 2、Nobara

![nobara](/data/attachment/album/202208/21/154434gu72w3b3w333rcm7.png)

当你在找 [游戏发行版](https://itsfoss.com/linux-gaming-distributions/) 时，列表将由 Debian 和 Arch 衍生产品占据主导地位。因此，如果你正在寻找基于 Fedora 且具有相同效果的游戏发行版，那么 [Nobara](https://nobaraproject.org/) 就是你所需要的。

Nobara 是由 Proton GE 的维护者制作的游戏发行版，他也是 Lutris 开发团队的成员，因此你可以期待开箱即用的下一代游戏体验！

为了带来更好的体验，Nobara 在 Fedora 上预先应用了 30 多个补丁程序，以及一组游戏工具，包括 Lutris、GOverlay、Stream 和 ProtonUp。

### 3、Ultramarine

![ultramarine](/data/attachment/album/202208/21/154435pizd9sp99ghzzuhu.png)

基于 Fedora 的发行版，开箱即用，适用于普通用户，它就是 [Ultramarine](https://ultramarine-linux.org/)！

Ultramarine 预装了一堆工具，包括 Flathub、RPM fusion 和该发行版自己的专用仓库。

你将获得一个预配置的桌面，使其看起来赏心悦目，因此你不再需要花费额外的时间进行调整。

此外，对于那些在 Fedora 基础上寻求 Pantheon 和 Budgie 桌面环境的微调体验的人来说，Ultramarine 是完美的选择。

### 4、RisiOS

![risios](/data/attachment/album/202208/21/154436qcng3li4046gmccl.png)

“一个支持 Web 应用的 Fedora。”

这是一种描述 [RisiOS](https://risi.io/) 的方式，但等等，不止如此。

从 Bash 脚本的用户 GUI 到欢迎屏幕，你只需单击几下即可准备好系统，RisiOS 让 Fedora 的使用更加轻松！

RisiOS 还为你提供与 Linux Mint 相同的 Web 应用管理器，而且非常棒。

但是在你跳转到下载页面之前，要记住一件事是 RisiOS 仍处于测试阶段（如网站所说的 Big beta），你可能会遇到一些小问题。

### 5、Qubes OS

![Qubes Os](/data/attachment/album/202208/21/154436tqq84qnl3kk08evq.jpg)

[Qubes OS](https://www.qubes-os.org/) 是一个有趣的 Linux 发行版，它让你可以自由选择要用作基础的操作系统。它也提供了一个 Fedora 模板，并且他们会定期维护它。

事实上，Qubes OS 也是一个 [注重隐私的 Linux 发行版](https://itsfoss.com/privacy-focused-linux-distributions/)。因此，你可以在使用基于 Fedora 的产品时获得最新技术，而且完全自由。

值得注意的是，Qubes OS 需要大量系统资源和至少 **8-16 GB** 的内存才能使用，并且具有挑战性的学习曲线。

### 6、Berry Linux

![berry linux](/data/attachment/album/202208/21/154436x8dl3lgctdmcdk56.png)

[Berry Linux](https://berry-lab.net/eberry.html) 是一个简单的基于 Fedora 的发行版，你可以直接从 CD 或任何其他介质启动。它支持自动硬件检测，并且似乎定期维护。

Berry Linux 提供对英语和日语的支持。它预装了一些媒体播放器、照片编辑应用和基本应用。

### 7、ClearOS

![clear os community edition](/data/attachment/album/202208/21/154437jk1429zykjewwzvb.png)

它不是 [来自 Intel 的 Clear Linux 项目](https://itsfoss.com/clear-linux/)，尽管听起来很相似。

[ClearOS](https://www.clearos.com) 是基于 Fedora 的发行版，专为服务器环境量身定制，或帮助你在 HP 支持的家庭网络上运行 IT 相关任务和流式传输音乐/视频。你必须根据自己的要求同时购买家庭版/企业版。

如果你不想购买而想自己管理，还有一个社区版。

### 你的看法

长期使用 Linux 的用户可能还记得 Korora 和 Chapeau 发行版。它们曾经在 Fedora 用户中很受欢迎，但从那时起这些项目就停止了。

虽然 Fedora 本身很棒，但我并不反对衍生发行版。看看 Linux Mint 的成功。它是 Ubuntu 的衍生产品，但已经获得了如此好的用户群。谁知道这些基于 Fedora 的发行版是否会像 Mint 一样流行？

我缺失了任何基于 Fedora 的活跃发行版吗？你如何看待 Fedora 衍生版及其定制版本？ 在下面的评论中告诉我！

---

via: <https://itsfoss.com/best-fedora-linux-distributions/>

作者：[Abhishek Prakash](https://itsfoss.com/) 选题：[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/) 荣誉推出


我给新手程序员的实用建议

Summary: 做一个高效的、充满好奇心的问题解决者吧！这会帮助你成为一名成功的程序员。

《提问的智慧》<br />
github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md

做一个高效的、充满好奇心的问题解决者吧！这会帮助你成为一名成功的程序员。

![](/data/attachment/album/202208/21/161450vm33z0ex30w4073z.jpg)

>
> 做一个高效的、充满好奇心的问题解决者吧！这会帮助你成为一名成功的程序员。
>
>
>

你是否曾经遇到过这样一种情况：你想解决一个问题，并且你在 YouTube 或 Google 中找到了相关的教程。嗯，你觉得看会了，可真做起来，却止步不前，大脑一片空白。你感觉自己每一行代码都看懂了，可一旦离开了那个教程，就步履维艰。如果你在 HackerRank 或 LeetCode 上看过别人的解题过程，你就能体会到，一个有追求的程序员第一次看到这些挑战时，他会是何种感受。举例来说，假设你正在学习一门新语言，在你刚开始理解这门语言的基础知识的时候，你看了一个教程，摩拳擦掌，结果发现自己无法独立应用学到的知识，这反过来可能会导致你怀疑自己的知识和能力。

### 把教程付诸于实践

你应该从头开始吗？如果你这么做，你可能很快就会发现自己重复学习了很多次相同的知识点。虽然从头开始并不一定是种浪费，但是，你该如何变得更高效呢？

死记硬背在编程中完全是行不通的。话虽如此，但你也不能够忽视熟悉语法的重要性。因为，死记硬背和养成习惯之间是有明显区别的。习惯是很难打破的。要养成多使用编程语言的常规语法、函数、方法、模式、范式和构造的习惯，这样你才能掌握它。掌握一门编程语言需要大量的创造力和练习。练习语法是非常必要的，直到它们能在你的脑海中自然地浮现，就像血液在血管里流动一样。

### “问题解决”的工作原理

那么，你该采取什么样的方案呢？这实际上取决于许多因素。这些因素可以是任何东西，下至技术限制，上至用户需要。世界上有无数的问题，每个问题都有许多解决方式。如何选择一个最好的？这就需要<ruby> “问题解决” <rt>  problem-solving </rt> <ruby>  的技巧了。 </ruby></ruby>

下面是一个简单的例子。你需要把两个数**相加**，让它们等于 **6**。显然，你有多种方式可供选择：

**3 + 3 = 6** 或 **4 + 2 = 6** 或 **5 + 1 = 6**

同理，如果你需要让两个数字，经过一次减法、乘法或除法运算后，得到的结果为 **6**。你仍然有很多选项，包括：

**8 - 2 = 6** 或 **12 / 2 = 6** 或 **3 \* 2 = 6**

每种方案都有它固有的限制，且各不相同。当你在现实生活中尝试做出一个高效的方案时，你必须要考虑到所有的限制。这个方案可行吗？有什么障碍吗？有可操作性吗？是否可扩展呢？而如何最小化约束，并做出一个最优方案，就取决于问题类型和业务需要。

### 练习很重要

编程的目标不仅仅是解决问题。因此，从工程视角理解代码**如何**工作始终是一个优势。这就是代码审查在企业级开发中发挥作用的地方。编程的最低要求是具备基本的编码知识，包括语言的语法、函数和方法。归根结底，“写代码”是需要你去**写**的，所以练习总是有助于提高你的技能。流畅的写作和复杂方案的开发都来自于持续的学习和训练。

### 学习编码

我撰写和分享这篇文章，是为了鼓励新程序员去探寻自己的内心，寻找那个“优秀的问题解决者”。请不要停止相信自己。

要成功编码，你需要培养许多习惯。下面是我在学习编码时保持高效的方法：

1. 一个包含语法、方法和函数 [速查手册](https://opensource.com/downloads/cheat-sheets) 总能应付不时之需。
2. 将问题分解成更小的部分，便于追踪。
3. 尝试理解代码运行的核心概念。
4. 构思解决方案时，大可发挥你的创造力 —— 但刚开始还是要注重基础。
5. 在练习时，创建尽可能多的应用和组件。
6. 永远不要从 Stack Overflow/Exchange 等开放平台上复制/粘贴代码，特别是在不了解上下文的情况下。
7. 跟着教程做了一遍后，尝试从头开始构建所有内容。即使你只能独立完成一半，那也仍然是一个成就。

祝我们所有人好运！

---

via: <https://opensource.com/article/22/8/coding-advice-new-programmers>

作者：[Sachin Samal](https://opensource.com/users/sacsam005) 选题：[lkxed](https://github.com/lkxed) 译者：[lkxed](https://github.com/lkxed) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #735 新的 USB “橡皮鸭子”比以前更危险

Summary: • 新的 USB “橡皮鸭子”比以前更危险 • Copilot 将使计算机教育的编程练习变得毫无意义 • 新的后量子密码学算法将于 2024 成为标准

橡皮鸭子？Bad USB？

USB Rubber Ducky

![](/data/attachment/album/202208/21/190133jp4kh5sp3qeeyauh.jpg)

![](/data/attachment/album/202208/21/190145ol7n9ev4bxe76z5l.jpg)

### 新的 USB “橡皮鸭子”比以前更危险

USB “橡皮鸭子”看起来就像一个普通的 U 盘。但把它插入电脑，机器就会把它看作是一个 USB 键盘。最初的 USB “橡皮鸭子”在 10 多年前发布，成为黑客们的最爱，如创建一个假的 Windows 弹出框来获取用户的登录凭证，或使 Chrome 浏览器将所有保存的密码发送到攻击者的服务器。这些年来它也在不断更新。新的 DuckyScript 3.0 允许用户编写函数、存储变量和使用逻辑流控制，成为了一种功能丰富的语言。它还可以将数据编码为二进制格式，并通过键盘的大写锁定或数字锁定灯的闪烁作为信号，来窃取目标机器的数据。用这种方法，攻击者可以把它插上几秒钟，告诉别人："对不起，我想那个 U 盘坏了"，然后把它拿回来，并保存他们所有的密码。

>
> **[消息来源：The Verge](https://www.theverge.com/23308394/usb-rubber-ducky-review-hack5-defcon-duckyscript)**
>
>
>

>
> 老王点评：真是防不胜防，要我说，这些黑客工具的想法也真巧妙。
>
>
>

![](/data/attachment/album/202208/21/190159jz2nnnq4ffx23vfg.jpg)

### Copilot 将使计算机教育的编程练习变得毫无意义

有计算机教授担心 Copilot 将使传统的计算机教育的编程练习变得毫无意义，因为 Copilot 知道所有的答案。“据我所知，Copilot 在所有的入门编程作业上都接受过专门培训，Copilot 该死的喜欢编程入门作业。”虽然很多计算机编程练习可以在网上找到代码的例子，但老师也可以在谷歌上找到它们，然后用抄袭检测器将这些代码与提交的代码进行比较。而 Copilot 是不同的，它实际上产生了新颖的解决方案，在表面上有足够的不同，以至于它们看起来可能来自学生们自己写的。

>
> **[消息来源：The Register](https://www.theregister.com/2022/08/19/copilot_github_students/)**
>
>
>

>
> 老王点评：确实，这就如同使用计算器来学习初等数学，并不能真的让人学会数学。所以，计算机教育需要为 Copilot 这类 AI 工具的到来做一些准备。除了限制对 Copilot 的访问，是否还可以做更多的事情？
>
>
>

![](/data/attachment/album/202208/21/190213akiw6pekww222qq6.jpg)

### 新的后量子密码学算法将于 2024 成为标准

上个月，由恩智浦、IBM 和 Arm 的安全专家共同编写的专门安全算法被美国 NIST 选中，成为旨在应对量子威胁的行业全球标准的一部分。NIST 宣布了这些后量子密码学算法将在 2024 年成为标准。而目前通行的 RSA 和 ECC 等密码学算法用了十多年才确定了最佳标准。

>
> **[消息来源：IoT Times](https://iot.eetimes.com/post-quantum-cryptography-needs-to-be-ready-to-protect-iot/)**
>
>
>

>
> 老王点评：先不说两年时间能不能准备好，我认为现在的抗量子加密学算法还未经受过考验，仓促之下怕是用处有限。
>
>
>


桌面 Linux 市场份额（2022 年 7 月）

我再补充个百度统计的数据：

Windos: 52.09+29.37+3.31+1.61+1.4 = 87.78%

macOS: 4.7%

Linux: 1.85%

tongji.baidu.com/research/site#os

从这表里看到一个奇怪的现象：一到周末，自由软件的使用率就上涨（如 Linux），而商业软件的使用率往往下跌（如 Windows、macOS、Chrome）。不知道这意味着什么

意味着大家业余时间更愿意折腾

来自湖北武汉武汉大学测绘学院的 Chrome 104.0|Windows 10 用户

总之，linux还需努力创新，希望大于渺茫，更大于绝望。

继续加油

来自36.148.60.72的 Firefox 104.0|GNU/Linux 用户

Linux一般还是服务器用的多

>
> 每年，我们都会讨论 Linux 桌面年。当我们看到操作系统在消费者领域的市场份额有所增加时，却知道是无望的。
>
>
>

![linux desktop market share](/data/attachment/album/202208/22/160711vg1nrjfz9skxjefr.jpg)

当然，Linux 主导着整个云行业（Web 托管、云计算、数据仓库等）。在这里，我们只关注桌面 Linux 的市场份额。

**如果你是 Linux 世界的新手**，可能不知道，Linux 不是一个操作系统，它是一个内核。但是，为了简单起见，我们倾向于将 “Linux” 称为操作系统。你可以在我们的解释文章中了解 [Linux 是什么](https://itsfoss.com/what-is-linux/)。

有朝一日，我们希望 Linux 发行版在未来的桌面操作市场份额中占据主导地位。但是，当前的趋势说明了什么？现在是 Linux 桌面年了吗？

趋势每个月都在变化。去年，与今年相比，Linux 可能市场份额更多一些。因此，跟踪最新报告至关重要。

在这里，我们试图以来自不同来源的每月更新报告的形式跟踪最新趋势。

### 操作系统市场份额：2022 年 7 月

>
> 我们每个月都会更新可用信息。请注意，上个月的信息将在下个月发布。因此，例如，当我们在 8 月份更新报告时，它将包括 7 月份的统计数据。
>
>
>

在可用的桌面操作系统（Windows、macOS 和 Chrome OS）中，Linux 通常倾向于占据**第三位**。

一些最新的统计数据包括：

| 报告 | 备注 | Linux | macOS | Windows |
| --- | --- | --- | --- | --- |
| [Net Marketshare](https://www.netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Custom%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222021-12%22%2C%22dateEnd%22%3A%222022-07%22%2C%22segments%22%3A%22-1000%22%7D) |  | 1.68% | 6.09% | 91.40% |
| [Statcounter](https://gs.statcounter.com/os-market-share/desktop/worldwide) |  | 2.76% | 14.51% | 75.21% |
| [W3Schools](https://www.w3schools.com/browsers/browsers_os.asp) | 最后更新于 2022 年 5 月 | 4.2% | 9.2% | 70% |
| [Steam 调查](https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?platform=linux) | 在桌面游戏方面 | 1.23% | 1.74% | 97.03% |
| [Statista](https://www.statista.com/statistics/218089/global-market-share-of-windows-7/) | 最后更新于 2022 年 6 月 | 2.42% | 14.64% | 76.33% |

另外，参与 [Stack Overflow 调查](https://survey.stackoverflow.co/2022/#technology-most-popular-technologies) 的开发者中，40.23% 的用户将基于 Linux 的操作系统用于个人用途，39.89% 的用户将其用于专业用途。

每个来源都使用不同的数据收集方法。市场份额不断变化，这就是为什么我们决定定期更新此报告，而不是单独发布关于市场份额微小变化的帖子。

**总体而言**，看起来 Linux 作为桌面操作系统在开发人员中很受欢迎，并最终影响游戏玩家和其他消费者作为替代操作系统。

*你对这种趋势有何看法？你认为 Linux 会在桌面市场份额方面超过 macOS 吗？在下面的评论中分享你的想法。*

---

via: <https://itsfoss.com/linux-market-share/>

作者：[Ankush Das](https://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/) 荣誉推出


一项研究显示，谷歌在开源贡献方面超过了微软

![](/data/attachment/album/202208/22/165026svxa8svb55sswf8b.jpg)

>
> 根据 Aiven 的一份新报告，谷歌已经提高了其对开源软件的投入，并在活跃贡献者方面超过了微软。
>
>
>

根据 Aiven 的报告（LCTT 译注：我没有找到这份报告），谷歌目前的活跃贡献者多于微软，这要归功于对开源代码库 GitHub 的每月提交量同比增长 20%。根据开源贡献者指数（OCSI）的数据，谷歌 7 月份有 5421 名活跃贡献者，而微软的活跃贡献者为 5268 名。

Aiven 联合创始人兼首席技术官 Heikki Nousiainen 说，谷歌超过微软“特别令人惊讶”。

“这其中的一个因素是微软对开源项目的提交逐年下降，”Nousiainen 说，“然而，微软对开发者自由和创新的投入是一致的，该公司是开源的主要参与者，甚至在 2018 年收购了 GitHub。”

Aiven 指出，亚马逊已经开始更加重视开源计划，其对 OpenSearch（ElasticSearch 的复刻）的支持以及 GitHub 上项目数量的增加就是证明。Nousiainen 认为，亚马逊对 OpenSearch 和 ElasticSearch 的支持代表了“该公司方向的重大改变”，以及对重大开源项目掌舵的愿望。据 Aiven 介绍，这些科技巨头正在迅速扩大对开源软件的使用。根据数据，现在来自亚马逊、微软和谷歌的活跃 GitHub 贡献者比六年前多了 300%。

“这项研究的总体信息是积极的，”Nousiainen 说，“在开源社区有大量的创新在继续发生，其结果使我们所有人受益。数不清的人正在为其他人树立一个榜样。”

---

via: <https://www.opensourceforu.com/2022/08/google-surpasses-microsoft-in-terms-of-open-source-contributors-says-a-study/>

作者：[Laveesh Kocher](https://www.opensourceforu.com/author/laveesh-kocher/) 选题：[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/) 荣誉推出


硬核观察 #736 研究发现所有的网络拥堵算法都解决不了“饿死”问题

Summary: • 研究发现所有的网络拥塞控制算法都解决不了“饿死”问题 • TikTok 否认内置浏览器记录用户输入 • 美国绝大部分雇主正在跟踪员工的生产力

![](/data/attachment/album/202208/22/183904m11op76uzm66wu46.jpg)

![](/data/attachment/album/202208/22/183904yggalapczpa6fg82.jpg)

### 研究发现所有的网络拥塞控制算法都可能是非常不公平的

尽管在过去大约 40 年中提出了数百种控制计算机网络“拥堵”延迟的关键算法，但没有明显的赢家。一项新的研究发现，每种拥塞控制算法都无法解决“饿死”的问题，即让一些用户占据了所有的带宽，而至少有一个人基本上得不到带宽。拥塞控制算法依靠数据包的丢失和延迟作为细节来推断拥塞，并决定发送数据的速度。然而，数据包可能因为网络拥堵以外的原因而丢失和延迟 —— 这被称之为网络“抖动”。而拥塞控制算法无法区分由拥塞和抖动造成的延迟的区别，由抖动引起的延迟是不可预测的，最终会导致出现饥饿的情况。

>
> **[消息来源：Slashdot](https://tech.slashdot.org/story/22/08/22/0522210/network-jitters-confuse-packet-routing-algorithms-make-unfair-congestion-inevitable)**
>
>
>

>
> 老王点评：这就是算法的不公平，或许，限定在算法的层面上，并无一个完美的解决方案。
>
>
>

![](/data/attachment/album/202208/22/183913yfc0r07cumctc0le.jpg)

### TikTok 否认内置浏览器记录用户输入

研究发现，流行 iOS 应用如 TikTok、Instagram、FB Messenger 和 Facebook 都支持用户在应用内打开浏览器访问第三方网站，期间会植入跟踪代码。以 TikTok 为例，它会记录用户的所有键盘输入，包括密码信用卡信息等敏感数据，以及屏幕上的每一次点击。从技术上说这相当于安装了一个键盘记录器。在这一报道发表之后，TikTok 发表声明，证实该功能存在，但 TikTok 并没有利用这些代码。TikTok 表示应用内浏览器旨在提供更好的用户体验，它植入第三方网站的 JS 代码是为了调试、排错和性能监视。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=72526)**
>
>
>

>
> 老王点评：植入这种第三方 SDK，即便是没启用，但是谁知道你什么时候会启用呢？
>
>
>

![](/data/attachment/album/202208/22/183927f37exo2n2ft7tnto.jpg)

### 美国绝大部分雇主正在跟踪员工的生产力

根据《纽约时报》的调查，美国 10 个最大的私人雇主中，有 8 个正在为他们的雇员追踪生产力指标。其中一些软件测量活动时间，观察键盘停顿，甚至默默地计算击键次数。他们看到了从写电子邮件的时间到键盘活动的一切。如果员工没有达到预期的目标，就会产生影响：一个催促的通知，一个跳过的奖金，或者一个在家工作的日子被剥夺。对于在返回办公室的斗争中投降的雇主来说，这种监控是保持控制感的一种方式。

>
> **[消息来源：Slashdot](https://it.slashdot.org/story/22/08/22/0024205/employers-are-tracking-employees-productivity---sometimes-badly)**
>
>
>

>
> 老王点评：这可真是“工具人”，我觉得这和用代码行数来统计程序员的绩效具有“异曲同工之妙”。
>
>
>


使用 LaTeX 创建优美的 PDF 文件

Summary: 使用 LaTeX 标记语言来撰写文档。

使用 LaTeX 标记语言来撰写文档。

![](/data/attachment/album/202208/23/120339s9ek65lo8cce5jj4.jpg)

>
> 使用 LaTeX 标记语言来撰写文档。
>
>
>

LaTeX 文件准备系统有一段有趣的历史。在 1968 年，程序员 Don Knuth 用一种老式印刷排版方式，撰写了他的第一本书《<ruby> 计算机程序设计艺术 <rt>  The Art of Computer Programming </rt></ruby>》。当他在 1976 年出版第二版时，出版商已经转向现代照相排版技术。

Knuth 对新版本的外观不满意。他从程序员的角度解决问题，决定创建他自己的文字处理系统，这样以后他出版的书就可以以相同格式排版，拥有相同的外观。因此，Don Knuth 在 1978 年编写了第一版 TeX 。

几年后，Leslie Lamport 创建了一组宏定义，以便作者更容易编写复杂文档。Lamport 的宏定义扩展，即 LaTeX，有效地扩展了 TeX 能够轻松创建各种文档。例如，许多学术组织使用 LaTeX 出版期刊和论文集。

### 使用 LaTeX 编写文档

通过写一些短文就可以很容易掌握 LaTeX 基础。让我们从 [Opensource.com](https://opensource.com/about) 介绍页面借用一下内容，创建一个示例：

```
$ cat about.tex
\documentclass{article}
\begin{document}

Opensource.com is a premier, daily publication focused on
open source and Linux tutorials, stories, and resources.

We're a diverse and inviting group, made up of staff
editors, Correspondents, contributors, and readers. We
value differences in skills, talents, backgrounds, and
experiences. There are a few different ways to get involved
as a reader or a writer.

\end{document}

```

类似其他文档格式程序， LaTeX 会将单词汇集起来，填充成段落 。这意味着你可以在段落中间添加新文本，而不用担心最终文档的段落参差不齐。只要你不在段落中添加空行， LaTeX 就会创建完全对齐的段落。当它找到一个空行时， LaTeX 会开启一个新段落。

LaTeX 需要一些定义文档的控制语句。任何 LaTeX 文档应当以“文档类别”声明开始。LaTeX 支持多种文档，包括书信、书籍和文章。例如，我使用 `\documentclass{article}` 设置类别为 “文章” 。

使用 `\begin{document}` 和 `\end{document}` 声明来定义文本的开始和结束。如果你在 `\begin{document}` 前添加了文本，那么 LaTeX 会报错。在 `\end{document}` 之后的文本都会被忽略。

使用 LaTeX 的 `latex` 命令处理文档：

```
$ latex about.tex
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./about.tex
LaTeX2e <2020-10-01> patch level 4
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
No file about.aux.
[1] (./about.aux) )
Output written on about.dvi (1 page, 736 bytes).
Transcript written on about.log.

```

LaTeX 会输出许多文本，这样你就可以知道它在干什么。若你的文档包含错误， LaTeX 会报错并提示它可以做什么。大多数情况下，你可以在提示后输入 `exit` 来强制退出 LaTeX 。

如果用 LaTeX 成功生成一个文档，会生成一个带 `.dvi` 后缀的文件。`DVI` 表示 “<ruby> 设备无关 <rt>  Device Independent </rt></ruby>”，因为你可以使用不同的工具来生成其他格式。例如， `dvipdf` 程序可以将 DVI 文件转换为 PDF 文件。

```
$ dvipdf about.dvi

```

![LaTeX output](/data/attachment/album/202208/23/120344k8wkdwwwtwuyk5kd.jpg)

### 添加列表

LaTeX 支持两种列表：一种以数字开头的 “枚举” 列表，一种 “逐项” 或 “项目符号” 列表。在第二段后添加一个简短的枚举列表，列出人们可以参与 [Opensource.com](http://Opensource.com) 的方式：

```
\begin{enumerate}
\item Be a writer
\item Be a reader
\end{enumerate}

```

与在文档定义中添加 `\begin` 和 `\end` 声明类似，你也需要在列表前后添加 `\begin` 和 `\end` 声明。在列表中，每个项目以 `\item` 命令开始。当你用 LaTeX 处理该文档并转换为 PDF 格式后，你会看到该列表为数字列表：

![LaTeX output](/data/attachment/album/202208/23/120344f2sc24crn3ge2r2j.jpg)

你也可以在列表中嵌套列表。这是一个优雅的功能，如果你需要在列表中为每个条目添加选项。例如，你可以为想要在 [Opensource.com](http://Opensource.com) 中成为作者的人们提供一些不同的资源。嵌入列表使用单独的 `\begin` 和 `\end` 声明。为了看起来方便，我在示例中添加了空行，但是 LaTeX 会忽略这些空行：

```
\begin{enumerate}
\item Be a writer

  \begin{itemize}
  \item Resources for writers
  \item Contributor Club
  \item Correspondent Program
  \end{itemize}

\item Be a reader
\end{enumerate}

```

作为嵌套列表，新列表嵌入在编号 1 的项目中，因为你在原先的 `\item` 声明之间添加了列表。你可以通过在 `\end{enumerate}` 语句前添加新列表，作为编号 2 项目的嵌套列表。

![LaTeX output](/data/attachment/album/202208/23/120345samfmf29zh006hm0.jpg)

### 章节和小节

你可以将冗长文章分成多个章节，这样更易于阅读。使用 `\section{...}` 语句在大括号内添加章节标题。例如，你可以在文档顶部添加一个标题为 “About [Opensource.com](http://Opensource.com)” 的新章节：

```
$ head about.tex
\documentclass{article}
\begin{document}

\section{About Opensource.com}

Opensource.com is a premier, daily publication focused on
open source and Linux tutorials, stories, and resources.

We're a diverse and inviting group, made up of staff
editors, Correspondents, contributors, and readers. We

```

`article` 文档类会在每个主要章节添加编号，并使字体变大来突出显示。

![LaTeX output](/data/attachment/album/202208/23/120345k4q5q60tl5q0rrcg.jpg)

你可以使用 `\subsection{...}` 命令来组织文档。就像 `\section{...}` 命令一样，在大括号中输入副标题名称。

```
$ head about.tex
\documentclass{article}
\begin{document}

\section{About Opensource.com}

Opensource.com is a premier, daily publication focused on
open source and Linux tutorials, stories, and resources.

\subsection{Welcome to the Opensource.com community}

```

![LaTeX output](/data/attachment/album/202208/23/120346f71z7633znjntw7n.jpg)

### 标题和作者

用于出版的科学类的文章需要标题、作者以及发表日期。LaTeX 提供了通过插入命令的方式来添加这些信息，然后使用单独的 `\maketitle` 命令生成文章的标题。

将 “About Us” 作为文章标题，作者为 “[Opensource.com](http://Opensource.com) Editors”，发表日期为 “July 10, 2022” 。你必须在 `\begin{document}` 之后，文章内容前插入这些内容。

```
\title{About Us}
\author{Opensource.com Editors}
\date{July 10, 2022}
\maketitle

```

当你在生成文档时，LaTeX 会将标题、作者和日期添加到文章的顶部：

![LaTeX output](/data/attachment/album/202208/23/120346x54r4f5ms2f2x2m4.jpg)

### 着重强调

科学和其他技术类文章通常会突出术语和短语。 LaTeX 提供了几种可以在技术文档中使用的字体效果，包括强调文本（通常以斜体显示）、粗体文本和<ruby> 小型大写字母 <rt>  small caps </rt></ruby>。

将短语“staff editors, Correspondents, contributors, and readers”放在斜体文本中，并将特定词“reader”和“writer”放在段落后面的强调文本中。你也可以将“skills, talents, backgrounds, and experiences”加粗。虽然这不是正确的样式设置方式，但你可以使用小型大写字母来键入 “Linux” 。

```
$ head -20 about.tex
\documentclass{article}
\begin{document}

\title{About Us}
\author{Opensource.com Editors}
\date{July 10, 2022}
\maketitle

\section{About Opensource.com}

Opensource.com is a premier, daily publication focused on
open source and \textsc{Linux} tutorials, stories, and resources.

\subsection{Welcome to the Opensource.com community}

We're a diverse and inviting group, made up of \textit{staff
editors, Correspondents, contributors, and readers}. We
value differences in \textbf{skills, talents, backgrounds, and
experiences}. There are a few different ways to get involved
as a \emph{reader} or a \emph{writer}.

```

该示例展示了不同样式的文本的应用方法。当你需要强调时，使用 `\emph{...}` 命令，将强调主题放在大括号内。要以斜体、粗体或小型大写字母显示文本，使用 `\text` 命令的变体：`\textit{...}` 用于斜体，`\textbf{...}` 用于粗体，以及 `\ textsc{...}` 用于小型大写字母。LaTeX 支持许多其他方式来设置文本样式，这些样式有助于你编写科学技术类文章。

![LaTeX output](/data/attachment/album/202208/23/120346dc0h00si873his3h.jpg)

### 使用 LaTeX

我只是介绍了使用 LaTeX 撰写科学技术文章的几种方式。你也可以在 LaTeX 中添加脚注，进行数学公式和方程的排版，取决于你的需求。你也可以通过阅读 [Opensource.com](http://Opensource.com) 中的文章 [《在 LaTeX 中创建文档的介绍》](https://opensource.com/article/17/6/introduction-latex) ，了解使用 LaTeX 撰写科学技术文章的其他方式。

---

via: <https://opensource.com/article/22/8/pdf-latex>

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

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


硬核观察 #737 现代公司的电动汽车在其车载系统使用教程上的示例密钥

Summary: • 现代公司的电动汽车在其车载系统使用教程上的示例密钥 • AI 被用于通过监控视频中的行人步态识别和分类行人 • 苹果公司的服务成为其收入的重要来源

游戏 Watch Dog 终会成现实。

汤姆克鲁斯演的电影 预判犯罪的要实现了

![](/data/attachment/album/202208/23/202533kpponmngzoljoe4t.jpg)

![](/data/attachment/album/202208/23/202542ghyyi5013ng0h35l.jpg)

### 现代公司的电动汽车在其车载系统使用教程上的示例密钥

一位开发者发帖称，他想要修改汽车上的车载信息娱乐系统，他的汽车是现代公司 2021 款的“全新未来移动生活概念的电动汽车 IONIQ”。在试图找出如何为汽车更新定制固件时发现，其中用来为某些部分签名的 RSA 公钥可以在网上搜索找到。更离谱的是，正如这位开发者说的，“如果运气好的话，他们不仅留下了公钥，还留下了私钥”，它是一个常见的密钥对，出现在“使用 OpenSSL 进行 RSA 加密和解密的 C 语言示例”之类的在线教程中，在这些教程中列出了使用的示例公钥和私钥。现代公司对此没有置评。

>
> **[消息来源：The Register](https://www.theregister.com/2022/08/17/software_developer_cracks_hyundai_encryption/)**
>
>
>

>
> 老王点评：这可真是按照教程来的，连示例的密钥对都一起学习了。
>
>
>

![](/data/attachment/album/202208/23/202553q5sssijqn2ss80gj.jpg)

### AI 被用于通过监控视频中的行人步态识别和分类行人

据报道，马里兰大学的一个明星教授研究团队在资金的支持下，开发了一种城市监控软件，可以根据行人的独特步态特征来识别他们。然后，该算法将使用这些步态特征将行人分为“好斗”、“害羞”、“冲动”和其他性格。“这些能力将被用来预测每个行人的行为，对监视很有用”。他们在赞助方提供的视频上进行了测试，并提供了该软件的 C++ 代码库和原始数据集作为交付品。该团队还进行了“模拟大规模异质人群的有效计算模型”等类似研究。这一研究引发了对“关于机器学习研究中的严重道德问题”的关注。

>
> **[消息来源：The Daily Beast](https://www.thedailybeast.com/university-of-maryland-professor-dinesh-manocha-built-surveillance-machine-for-chinas-alibaba)**
>
>
>

>
> 老王点评：AI 究竟该用于什么地方，该如何用，这里面不仅仅是道德问题，还应该是法律问题。我只能说这么多了。
>
>
>

![](/data/attachment/album/202208/23/202607w31l1fe2ud6w4g1z.jpg)

### 苹果公司的服务成为其收入的重要来源

迄今为止，苹果公司已将 18 亿台设备装入世界上一些最富裕的消费者的口袋和办公桌上。现在，它正在向其他公司出售这些客户的使用权，并说服那些拥有其设备的人注册自己的订阅服务。去年，苹果的服务带来了 680 亿美元的收入，占苹果总收入的 19%。在最近一个季度，服务收入的份额甚至高达 24%。据估计，最大的一块是来自其应用商店的费用，去年的费用可能达到 250 亿美元。其次是谷歌为 iOS 中的默认搜索引擎付出的费用，2020 年付出了 100 亿美元，据估计现在接近 200 亿美元。而其广告服务今年估计是 70 亿美元。剩下的是一系列订阅服务：iCloud 存储、苹果音乐和苹果护理保险等等。

>
> **[消息来源：Economist](https://www.economist.com/business/2022/07/31/apple-already-sold-everyone-an-iphone-now-what)**
>
>
>

>
> 老王点评：成功的硬件和软件带来的大量用户，其附加服务也是日进斗金。
>
>
>


在 GNOME 中创建你自定义的浅色和深色壁纸

Summary: 在 GNOME 桌面中创建自定义浅色和深色壁纸的简单指南。

在 GNOME 桌面中创建自定义浅色和深色壁纸的简单指南。

![](/data/attachment/album/202208/24/104023a3do33wdizyb3zw4.jpg)

>
> 在 GNOME 桌面中创建自定义浅色和深色壁纸的简单指南。
>
>
>

[GNOME 42](https://www.debugpoint.com/2022/03/gnome-42-release/) 将期待已久的浅色和深色主题引入了 GNOME 桌面。它还带来了浅色和深色版壁纸，当你在浅色和深色主题之间切换时，它会自动改变。

因此，默认情况下，GNOME 会为你提供几组预配置的浅色和深色壁纸。

但是，如果你想要在主题更改时可以自动更改的别的壁纸怎么办？

以下是在 GNOME 中为浅色和深色主题配置和创建自定义壁纸的方法。

### 如何为 GNOME 创建自定义浅色和深色壁纸

首先，确保有两个版本的壁纸。通常，它们应该是标准的 PNG 或 JPG 图像。例如，我们在演示中使用了以下两个壁纸。

![Sample light and dark wallpaper for demo](/data/attachment/album/202208/24/104040ejpqqcao52sq2nyn.jpg)

但是，如果你没有合适的浅色和深色壁纸，或正在寻找更多壁纸，在本指南的末尾，我会告诉你如何获取它们或准备你自己的。

跟着我来。

其次，我们需要为自己创建一个模式文件。壁纸的自动更换由名为 `adwaita.xml` 的 XML 文件处理，该文件定义了特定的浅色和深色背景标签。因此，我们将为壁纸创建 XML 文件。

为此，从 GitLab 复制 `adwaita.xml` 的内容并创建一个新的 XML 文件（链接在下面）。你应该在这个文件中看到两个标签：`filename` 和 `filename-dark`。这两个 XML 标记包含两个壁纸的完全限定路径。在这两个标签下添加图片的路径，如下所示。

>
> **[从这里下载 XML 文件 (adwaita.xml.in)](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/tree/main/backgrounds)**
>
>
>

![Change the XML file](/data/attachment/album/202208/24/104042co8azcm8xccwccag.jpg)

第三步，使用你想要的任何名称将此文件保存到 `/home/YOUR_NAME/.local/share/gnome-background-properties`（请将 `YOUR_NAME` 替换为你的用户名）。如果 `gnome-background-properties` 不存在，请创建它们。对此示例，我使用了 `my_cool_backgrounds.xml`。

![Save the file](/data/attachment/album/202208/24/104043b722xo4tvrokhg0r.jpg)

都准备好了。最后，打开设置并转到外观选项卡，你应该会看到选项中出现新的壁纸。

选择你的自定义浅色和深色壁纸并享受。

![The appearance tab now has your custom light and dark wallpaper](/data/attachment/album/202208/24/104044u69vyb42h82sewhw.jpg)

### 如何下载或制作你的动态壁纸

你一定会想，“谁有时间去寻找和创建深浅版本的壁纸”？一些网站为你提供现成的动态壁纸，你可以轻松下载和安装。

我推荐的一个网站是 [dynamicwallpaper.club](https://dynamicwallpaper.club)，它为 macOS 提供了一些高达 6K 的优秀高质量壁纸。你可以轻松下载它们。

此外，如果你打算从上述网站下载，请记住该网站的图像是 [heic 格式](https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format)，因为该网站适用于 macOS。高效视频编码（HEIC）是 Apple 的 HEIF（高效图像文件格式）的专有版本。

你需要一个驱动来查看和转换 Ubuntu 或 Fedora Linux 中的动态 heic 图像。那么，如何将它们转换为适用于 Linux 系统呢？打开终端并运行以下命令来安装驱动。

Ubuntu 用户：

```
sudo apt install heif-gdk-pixbuf

```

Fedora 用户：

```
sudo dnf install libheif

```

仅适用于带有 KDE Plasma 的 Fedora/Ubuntu（没有此插件，Plasma 应用无法打开 heic 图像）：

```
sudo apt install qt-heif-image-plugin
sudo dnf install qt-heif-image-plugin

```

最后，使用你喜欢的图像查看器打开 heic 图像并将其保存为 JPG/PNG。

![Custom Light and Dark wallpaper in GNOME – transition](/data/attachment/album/202208/24/104045rydhs4fi99h19fkb.gif)

最后，别忘了在下面的评论部分告诉我你是否可以为 GNOME 创建自定义深色和浅色壁纸。

干杯。

---

via: <https://www.debugpoint.com/custom-light-dark-wallpaper-gnome/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[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 命令就够了

这和TLDR不是一回事吗？社区又在重复建设了？

啥软件没重复造轮子啊，多这一个不多呢。

>
> Linux cheat 命令是一个实用程序，可以用来搜索和显示你想要使用的命令的使用示例。
>
>
>

![](/data/attachment/album/202208/24/160901xi66t9pe74x7pxqp.jpg)

互联网上有很多关于 Linux 和开源的信息，但是当你想要深入工作，通常需要一份便捷的文档。早在 Linux 出现之前的 Unix 系统中，就有 `man`（“manual” 的缩写）和 `info` 命令了，二者都会显示命令、配置文件、系统调用等的官方项目文档。

关于 `man` 和 `info` 页面是对知晓如何使用工具的用户的有用提醒，还是为初次使用的用户提供介绍存在争议。不管怎样，`man` 和 `info` 页面介绍了工具以及如何使用该工具，很少涉及特定任务以及如何完成它们。正是出于这个原因，开发了 `cheat` 命令。

例如，设想你想不起来如何 [解压 tar 压缩包文件](https://opensource.com/article/17/7/how-unzip-targz-file) 。`man` 页面会给你展示所有的选项，但需要你将这些信息转换为命令：

```
tar -A [OPTIONS] ARCHIVE ARCHIVE
tar -c [-f ARCHIVE] [OPTIONS] [FILE...]
tar -d [-f ARCHIVE] [OPTIONS] [FILE...]
tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]
tar -r [-f ARCHIVE] [OPTIONS] [FILE...]
tar -u [-f ARCHIVE] [OPTIONS] [FILE...]
tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]

```

这确实是一些用户需要的，但是也使一些用户感到困惑。相比之下，`cheat` 命令会罗列常用命令：

```
$ cheat tar

# To extract an uncompressed archive:
tar -xvf /path/to/foo.tar

# To extract a .tar in specified Directory:
tar -xvf /path/to/foo.tar -C /path/to/destination/

# To create an uncompressed archive:
tar -cvf /path/to/foo.tar /path/to/foo/

# To extract a .tgz or .tar.gz archive:
tar -xzvf /path/to/foo.tgz
tar -xzvf /path/to/foo.tar.gz
[...]

```

这真是雪中送炭！

### Linux Cheat 命令

`cheat` 命令是一个实用程序，可以用来搜索和显示你想要使用的命令的使用示例。如大多数 Unix 命令一样，同一个概念有多种不同的实现方式，它包括一个 [使用 Go 编写](https://github.com/cheat/cheat) 的和一个由我帮助维护的 [仅用 100 行 Bash 编写](https://gitlab.com/slackermedia/cheat) 的两个版本。

若要安装 Go 版本的，下载 [最新版](https://github.com/cheat/cheat/releases) 并将它放在某个 [路径](https://opensource.com/article/17/6/set-path-linux) 中，例如 `~/.local/bin/` 或 `/usr/local/bin` 中。若安装 Bash 版本，下载最新版并运行 `install-cheat.sh` 脚本：

```
$ sh ./install-cheat.sh

```

如需配置后安装，请使用 [自动工具](https://opensource.com/article/19/7/introduction-gnu-autotools)（Autotools）：

```
$ aclocal ; autoconf
$ automake --add-missing ; autoreconf
$ ./configure --prefix=$HOME/.local
$ make
$ make install

```

### 在 Linux 中安装 Cheat 程序

Cheat 只是包含常用命令的纯文本文件。该程序可以从 [github.com/cheat/cheatsheets](https://github.com/cheat/cheatsheets) 获得。当你第一次运行命令时，Go 版本会自动为你下载支持列表。如果你使用 Bash 版本，用 `--fetch` 选项可以下载支持列表：

```
$ cheat --fetch

```

与 `man` 一样，你的系统上可以有多个备忘单集合。 Go 版本的 `cheat` 使用 [YAML](https://opensource.com/article/21/9/yaml-cheat-sheet) 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径，默认下载 [github.com/cheat/cheatsheets](https://github.com/cheat/cheatsheets) 集合以及 [opensource.com](http://Opensource.com) 自己的 [gitlab.com/opensource.com/cheatsheets](https://gitlab.com/opensource.com/cheatsheets) 集合。

### 列出 Cheat 支持项目

使用 `--list` 选项即可查看 `cheat` 支持的项目：

```
$ cheat --list
7z
ab
acl
alias
ansi
ansible
ansible-galaxy
ansible-vault
apk
[...]

```

### 使用 Cheat 查看 Linux 命令

使用 `cheat` 查看命令如同使用 `man` 和 `info` 查看一样简单。只需要输入你需要查询的命令即可：

```
$ cheat alias

# To show a list of your current shell aliases:
alias

# To alias `ls -l` to `ll`:
alias ll='ls -l'

```

默认情况下，`cheat` 命令会使用你的 [环境变量](https://opensource.com/article/19/8/what-are-environment-variables) `PAGER` 中指定的分页器。你可以在运行 `cheat` 命令前改写 `PAGER` 变量值，暂时修改环境变量。

```
$ PAGER=most cheat less

```

如果你只是想在没有 `PAGER` 的情况下将 `cheat` [输出](https://opensource.com/article/19/2/getting-started-cat-command) 到终端里，在 Bash 版中有 `--cat` 选项可以使用：

```
$ cheat --cat less

```

### 这并不是作弊

`cheat` 系统抓住了要害，你不必拼凑有关如何使用命令的线索，你只需按照示例进行操作即可。当然，对于复杂的命令，它不是深入研究实际文档的捷径，但为了快速借用，它还是可以的。

甚至你可以通过将文件放入其中一个备忘单集合中，来创建自己的备忘单。好消息是，因为这些项目是开源的，所以你可以将你的个人备忘单贡献给 GitHub 集合。另一个好消息是，当有新的 [opensource.com](http://opensource.com) [备忘单](https://opensource.com/downloads) 版本发布时，我们将从现在开始包含纯文本版本，以便你可以将其添加到你的收藏中。

该命令称为 “<ruby> 作弊 <rt>  cheat </rt></ruby>”，但正如任何 Linux 用户都会向你保证的那样，它实际上并不是作弊。它只是以开源的方式工作得更巧妙。

---

via: <https://opensource.com/article/22/6/linux-cheat-command>

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

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


硬核观察 #738 Tornado Cash 代码在 GitHub 上重新上传

Summary: • Tornado Cash 代码在 GitHub 上重新上传 • 亚马逊使用为将来保留的 IPv4 240/4 地址段 • 美科技巨头收集了大量用户数据，谷歌最多

又赢了？ 谁收集的最多心里一点都没数吗？站在道德的洼地里对别人指手画脚！

来自湖北的 Chrome Mobile iOS 104.0|iOS 15.6 用户

![](/data/attachment/album/202208/24/174712e6n7q26aq2an222a.jpg)

![](/data/attachment/album/202208/24/174723fcg1vm8l8zst1qm8.jpg)

### Tornado Cash 代码在 GitHub 上重新上传

美国财政部本月早些时候宣布制裁混币器 Tornado Cash，禁止美国个人或组织与 Tornado Cash 有任何交易往来。GitHub 随即下架了该代码库，删除了开发者账号。荷兰还逮捕了一名参与它的开发的开发者。本周，美国约翰霍普金斯大学计算机科学教授 Matthew Green 以教学和研究的目的在 GitHub 上重新上传了 Tornado Cash 代码。电子前哨基金会（EFF）宣布将代表 Green 教授捍卫发布源代码的权利。EFF 称美国宪法第一修正案保护了 GitHub 托管代码的权利，也保护了 Green 教授重新发布代码的权利。

>
> **[消息来源：EFF](https://www.eff.org/deeplinks/2022/08/code-speech-and-tornado-cash-mixer)**
>
>
>

>
> 老王点评：这让我想起来当年 PGP 源代码以出版书籍的方式被带出美国的事情。
>
>
>

![](/data/attachment/album/202208/24/174737fv5wyv6p31wphvth.jpg)

### 亚马逊使用为将来保留的 IPv4 240/4 地址段

称之为 E 类地址的 240/4（240.0.0.0 - 255.255.255.255）被保留供未来使用。但 IPv4 地址资源的稀缺促使 IETF 开始讨论使用这些地址空间。主要操作系统从 2008 年起就支持将 240/4 地址空间作为单播地址使用。调查发现，亚马逊等公司已经在没有和国际互联网机构协调的情况下，在其 AS 内使用 240/4 地址块。

>
> **[消息来源：RIPE](https://labs.ripe.net/author/qasim-lone/2404-as-seen-by-ripe-atlas/)**
>
>
>

>
> 老王点评：就算是这几亿个 IP 地址释放出来，也很快就会耗尽，所以倒不如像现在这样，当成私有地址使用好了。
>
>
>

![](/data/attachment/album/202208/24/174811cpb6rz7cee0wpqyp.jpg)

### 美科技巨头收集了大量用户数据，谷歌最多

研究人员分析了谷歌、苹果、Facebook、亚马逊和 Twitter 等主要科技公司收集的用户的大量敏感数据。其中，谷歌从用户那里收集的数据最多，有 39 种。接下来是 Twitter，24 种；亚马逊，23 种；Facebook，14 种。排名最后的是苹果，它收集了 12 种。报告称，“用户没有耐心、时间或精力来发现网站存储了哪些信息，以及如何利用这些信息来获取利益。这意味着，用户通过接受隐私政策，能够让这些公司获取他们所需要的所有信息。”

>
> **[消息来源：Stock Apps](https://stockapps.com/blog/google-tracks-39-types-of-private-data-the-highest-among-big-tech-companies/)**
>
>
>

>
> 老王点评：这些商业公司不收集用户隐私反而会是奇怪的事情，所以，现在开始比谁最过分了，不出预料，果然是广告公司谷歌拔的头筹。
>
>
>


80 高龄的计算机科学家曾为 “Unix” 命名，如今为 AWK 代码添加了 Unicode 支持

>
> 布莱恩·克尼汉在 80 岁的时候还在积极为他的原始项目 AWK 增加代码贡献。这真是鼓舞人心！
>
>
>

![这位 80 岁的计算机科学家曾提出 “Unix” 这一名字，在 AWK 代码中加入了 Unicode 支持](/data/attachment/album/202208/25/125453ovdfuvuixuo33fvi.jpg)

<ruby> 布莱恩·克尼汉 <rt>  Brian Kernighan </rt></ruby> 因其与 Unix 的创造者 <ruby> 肯·汤普森 <rt>  Ken Thompson </rt></ruby> 和 <ruby> 丹尼斯·里奇 <rt>  Dennis Ritchie </rt></ruby> 一起的工作而广为人知。他对 Unix 的发展做出了重大贡献。

不仅如此，布莱恩·克尼汉还提出了 “Unix” 这个名字，并创造了 “Hello, world” 作为程序的测试短语。

他也是《C 编程语言》一书的共同作者（另一位是丹尼斯·里奇）。因此，可以说他是你所知道的关于 Unix、Linux、BSD 和 C 编程语言的演变的重要组成部分。

而且，作为一位如今已 80 岁的老人家，他似乎投入了一些时间来为 AWK（一种他在上世纪 70 年代共同创造的脚本语言）增加了一个新的功能。

? 这真是妙极了，对吗？而且，听起真是鼓舞人心！

注：AWK 仍然是一个处理文本和提取数据的强大工具，忠实于它的最初目的。如果你感到好奇，你可以在 [freeCodeCamp](https://www.freecodecamp.org/news/the-linux-awk-command-linux-and-unix-usage-syntax-examples/) 上了解更多关于它的信息。

### 为 AWK 添加 Unicode 支持

最近，[The Register](https://www.theregister.com/2022/08/23/universal_unix_tool_awk_gets/) 通过一篇发表在 YouTube 上的近期采访，发现了这个功能的增加。

从技术上讲，这项贡献早在几个月前就有了，但现在它才得到人们的关注。

当然，这个功能的增加对很多人来说可能不是什么大事。但是，它背后的努力，以及谁贡献了它，就有了天壤之别。

此外，有趣的是，他并不完全了解 Git 的工作原理。所以，考虑到这一点，我认为他在这里的提交做得相当好。

在这个提交 “[附上 BWK 的邮件 - onetrueawk/awk@9ebe940](https://github.com/onetrueawk/awk/commit/9ebe940cf3c652b0e373634d2aa4a00b8395b636)” 中，他提到：

>
> 一旦我搞清楚了（并做了一些检查，我将尝试提交一个拉取请求。我希望我更了解 git，但尽管有你的帮助，我仍然没能正确地理解，所以这可能需要一段时间。
>
>
>

如果你对 Unix 的原始创造者和贡献者以及一路走来的许多重要创新有好奇心，我建议你观看上面链接的采访。

你也可以在 [普林斯顿大学网站](https://www.cs.princeton.edu/~bwk/) 上查看他的更多工作和最近的书籍。

? 那么，你对这位 80 岁的 Unix 传奇人物的代码贡献有何看法？你有什么特别佩服他的地方吗？请在下面的评论中分享你的想法。

---

via: <https://news.itsfoss.com/unix-awk-unicode/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[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/) 荣誉推出


在 Manjaro 和其他基于 Arch Linux 的发行版上安装 Spotify

Summary: Spotify 不需要介绍。它是最流行的音乐流媒体服务。

啊这。无言以对，安装官方仓库的软件也能写一大篇，牛逼。

虽然十分感谢译者的翻译，但是也非常真诚的建议选择一些更有深度的文章吧。

Spotify 不需要介绍。它是最流行的音乐流媒体服务。

>
> Spotify 不需要介绍。它是最流行的音乐流媒体服务。
>
>
>

![](/data/attachment/album/202208/25/133643nz8h58cl5ly8y6ly.jpg)

你可以 [在 Web 浏览器中播放 Spotify](https://open.spotify.com/)，但如果你经常使用它，使用桌面应用会是一个更好的选择。

为什么呢？因为你可以用媒体键控制播放，得到歌曲的通知，而且不需要担心不小心关闭浏览器标签或窗口。桌面客户端给人一种完整的体验。

Spotify 为 Ubuntu 和 Debian [提供了一个仓库](https://www.spotify.com/us/download/linux/)。但在 Arch Linux 上安装 Spotify 呢？

实际上，在 Arch Linux 上获得 Spotify 的桌面应用更加简单。只需使用这个命令：

```
sudo pacman -Syu spotify-launcher

```

这就是在基于 Arch 的 Linux 发行版上安装 Spotify 的众多方法之一，如 Manjaro、[Endeavour OS](https://endeavouros.com/)、[Garuda Linux](https://garudalinux.org/) 等。

在本教程中，我将讨论以下安装 Spotify 的方法：

* 使用 [pacman](https://wiki.archlinux.org/title/Pacman)（你已经在上面看到了，但我们会更深入地挖掘）。
* 使用 [Pamac](https://wiki.manjaro.org/index.php/Pamac)（Manjaro的软件包管理器）进行安装
* 使用 [Flatpak](https://itsfoss.com/what-is-flatpak/)（通用打包格式）进行安装
* 使用 Snap（Spotify 团队的官方包）。

### 方法 1：使用 pacman 安装 Spotify

Spotify 可在 Arch Linux 的社区仓库中 [找到](https://archlinux.org/packages/community/x86_64/spotify-launcher/)。它实际上是 Spotify 提供的 APT 仓库的 Rust 实现。

打开你的终端，按以下方式 [使用 pacman 命令](https://itsfoss.com/pacman-command/)：

```
sudo pacman -Syu spotify-launcher

```

安装后，从应用菜单中启动它，并登录开始收听。

![Spotify on Arch Linux](/data/attachment/album/202208/25/133645cs3nb4sbsb4e1s4n.png)

输入下面的命令，将其连同其依赖关系和配置文件一起删除。

```
sudo pacman -Rns spotify-launcher

```

### 方法 2：使用 Pamac 安装 Spotify

如果你使用 Manjaro 或者 [在你的系统中安装了 Pamac](https://itsfoss.com/install-pamac-arch-linux/)，你可以用它来图形化安装 Spotify。

从应用菜单中打开添加/删除软件。点击左上角的搜索图标，搜索 Spotify。然后，选择名为 `spotify-launcher` 的软件包，并点击应用进行安装，如下图所示。

![Using Pamac to install Spotify](/data/attachment/album/202208/25/133646f2qzug7jh5uj7r0u.png)

你也可以在安装后取消选择该软件包，并点击应用来删除它。

#### 使用 Pamac CLI

是的，Pamac 也有一个命令行界面，你可以通过以下方式使用它来获得 Spotify。

```
pamac install spotify-launcher

```

要删除，使用：

```
pamac remove spotify-launcher

```

### 方法 3：使用 Flatpak 安装 Spotify

许多用户喜欢使用 Flatpak 安装专有应用，因为它提供了沙盒。

在终端输入以下命令来更新你的系统并安装 Flatpak（如果你还没有）。

```
sudo pacman -Syu flatpak

```

然后，使用下面的命令启用 [Flathub 仓库](https://flathub.org)。

```
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

```

现在，通过输入下面的命令安装 Spotify。

```
flatpak install spotify

```

要删除 Spotify 的 Flatpak 包，你可以使用下面的命令。

```
flatpak remove spotify

```

### 方法 4：使用 Snap 安装 Spotify

我知道很多人对 Snap 打包格式的“封闭性”非常反感。然而，Spotify 官方提供了一个 Snap 包。你可以从 Spotify 的开发者那里得到它。

如果你的系统支持 Snap 包，请使用以下命令：

```
sudo snap install spotify

```

如果你以后想删除它，使用这个命令：

```
sudo snap remove spotify

```

### 总结

第一个方法中讨论的 Arch 包是由 [kpcyrd](https://github.com/kpcyrd) 开发和维护的。你可以在 [这里](https://github.com/kpcyrd/spotify-launcher) 查看源代码。

如果你喜欢 Arch Linux 并想支持它，请考虑向该项目捐款。所有的工作都是由社区成员完成的，他们是无偿的志愿者。

如果你在 Arch 上安装 Spotify 有任何问题，请告诉我。

---

via: <https://itsfoss.com/install-spotify-arch/>

作者：[Anuj Sharma](https://itsfoss.com/author/anuj/) 选题：[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/) 荣誉推出


硬核观察 #739 Python 虽然是最受欢迎的编程语言，但是找工作还是要会点 SQL

Summary: • Python 虽然是最受欢迎的编程语言，但是找工作还是要会点 SQL • 微软发现一个 ChromeOS 的高危漏洞 • 利用手机陀螺仪窃取物理隔离系统的数据

![](/data/attachment/album/202208/25/190509qhoorw1jjo65h6vm.jpg)

![](/data/attachment/album/202208/25/190518l4t4884544hgr6k4.jpg)

### Python 虽然是最受欢迎的编程语言，但是找工作还是要会点 SQL

在 IEEE 的最新年度调查榜单中，Python 名列榜首，然后是三种 C 语言的变体（C、C++ 和 C#），接着是 Java、SQL 和 JavaScript。但涉及到找工作时，SQL 爬到了列表的顶端，其次是 Java、Python。该榜单的编辑称，“SQL 信号的强度并不是因为有很多雇主只寻找 SQL 程序员，……他们想要一种特定的语言加上 SQL。”

>
> **[消息来源：The Register](https://www.theregister.com/2022/08/24/ieee_python_language/)**
>
>
>

>
> 老王点评：复杂的 SQL 不会，简单的 SQL 总是会一点的，所以，请在简历上大大的写上 SQL。
>
>
>

![](/data/attachment/album/202208/25/190531dh8a4h122r8w9v3b.jpg)

### 微软发现一个 ChromeOS 的高危漏洞

微软在 ChromeOS 中发现了一个漏洞，并给它打出了 9.8 的评分。在报告给谷歌后，该漏洞不到一周就得到了修复，只用了一个月就提供给了用户。这个问题源于 D-Bus，它是 Linux 中使用的一种进程间通信机制，使用了一个标准库中的典型的危险函数 `strcpy()`，稍有安全经验的 C 程序员都知道这个函数容易出现缓冲区溢出安全漏洞。这个漏洞为安全研究人员得到了 25000 美元的奖金。比较有趣的是，以往经常是谷歌的 Project Zero 团队提醒微软的产品漏洞，并且，如果在三个月内没修复就会不管不顾地公开漏洞细节。有时候让微软特别上火。

>
> **[消息来源：The Register](https://www.theregister.com/2022/08/23/microsoft_chromeos_bug/)**
>
>
>

>
> 老王点评：居然会犯这么低级的错误，这钱也太好挣了吧 —— 我寻思是不是写个扫描器，当这些有钱的企业的代码一旦发布，就触发对这种经典漏洞的扫描。
>
>
>

![](/data/attachment/album/202208/25/190546sx93sabzrmkrncs8.jpg)

### 利用手机陀螺仪窃取物理隔离系统的数据

物理隔离在物理上是隔离的，用于对安全要求特别高的环境中，它无法与其他计算机或网络设备进行无线或物理连接。之前有研究利用物理隔离系统上的扬声器发出特定频率的声波，从而通过手机接受声波而窃取数据。现在安全专家发现陀螺仪也可用于此用途。陀螺仪用于检测智能手机的旋转速度，被广泛认为是一种安全的传感器，因而 iOS 或 Android 没有提供阻止访问的选项。安全专家利用这种方法，可以在“几米远”的范围内从物理隔离的计算机中窃取敏感信息。这些听不见的频率会让陀螺仪产生微小机械振荡，从而将其转换为数据。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2022/08/24/gairoscope-air-gap-attack/)**
>
>
>

>
> 老王点评：真是无孔不入，我觉得这种物理隔离环境就不该让人带手机进去。?
>
>
>


深入了解 EPUB 文件

Summary: EPUB 文件是使用开放格式发布内容的好方法。

EPUB 文件是使用开放格式发布内容的好方法。

![](/data/attachment/album/202208/25/223832eo3gq2o32uz0u0ll.jpg)

>
> EPUB 文件是使用开放格式发布内容的好方法。
>
>
>

电子书提供了一种随时随地阅读书籍、杂志和其他内容的好方法。读者可以在长途飞行和乘坐火车时享受电子书打发时间。最流行的电子书文件格式是 EPUB 文件，它是“<ruby> 电子出版物 <rt>  electronic publication </rt></ruby>”的缩写。 EPUB 文件受到各种电子阅读器的支持，并且是当今电子书出版的有效标准。

EPUB 文件格式基于 XHTML 内容和 XML 元数据的开放标准，包含在 zip 存档中。由于一切都基于开放标准，我们可以使用通用工具来创建或检查 EPUB 文件。让我们探索一个 EPUB 文件以了解更多信息。《[C 编程技巧和窍门指南](https://opensource.com/downloads/guide-c-programming)》，于今年早些时候在 [Opensource.com](http://Opensource.com) 上发布，提供 PDF 或 EPUB 格式。

因为 EPUB 文件是放在 zip 文件中的 XHTML 内容和 XML 元数据，所以你可以用 `unzip` 命令在命令行检查 EPUB：

```
$ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub
Archive: osdc_Jim-Hall_C-Programming-Tips.epub
Length Date Time Name
--------- ---------- ----- ----
20 06-23-2022 00:20 mimetype
8259 06-23-2022 00:20 OEBPS/styles/stylesheet.css
1659 06-23-2022 00:20 OEBPS/toc.xhtml
4460 06-23-2022 00:20 OEBPS/content.opf
44157 06-23-2022 00:20 OEBPS/sections/section0018.xhtml
1242 06-23-2022 00:20 OEBPS/sections/section0002.xhtml
22429 06-23-2022 00:20 OEBPS/sections/section0008.xhtml
[...]
9628 06-23-2022 00:20 OEBPS/sections/section0016.xhtml
748 06-23-2022 00:20 OEBPS/sections/section0001.xhtml
3370 06-23-2022 00:20 OEBPS/toc.ncx
8308 06-23-2022 00:21 OEBPS/images/image0011.png
6598 06-23-2022 00:21 OEBPS/images/image0009.png
[...]
14492 06-23-2022 00:21 OEBPS/images/image0005.png
239 06-23-2022 00:20 META-INF/container.xml
--------- -------
959201 41 files

```

这个 EPUB 包含很多文件，但其中大部分是内容。要了解 EPUB 文件是如何组合在一起的，请遵循电子书阅读器的流程：

1、电子书阅读器需要验证 EPUB 文件是否真的是 EPUB 文件。他们通过检查 EPUB 存档根目录中的 `mimetype` 文件来验证文件。该文件仅包含一行描述 EPUB 文件的 MIME 类型：

```
application/epub+zip

```

2、为了定位内容，电子书阅读器从 `META-INF/container.xml` 文件开始。这是一个简短的 XML 文档，指示在哪里可以找到内容。对于此 EPUB 文件，`container.xml` 文件如下所示：

```
<?xml version="1.0" encoding="UTF-8"?>
  <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
    <rootfiles>
      <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
  </rootfiles>
</container>

```

为了使 `container.xml` 文件更易于阅读，我将单行拆分为多行，并添加了一些间距来缩进每行。XML 文件并不关心新行和空格等额外的空白，因此这种额外的间距不会影响 XML 文件。

3、`container.xml` 文件表示 EPUB 的根从 `OEBPS` 目录中的 `content.opf` 文件开始。OPF 扩展名是因为 EPUB 基于 “<ruby> 开放打包格式 <rt>  Open Packaging Format </rt></ruby>”，但 `content.opf` 文件实际上只是另一个 XML 文件。

4、`content.opf` 文件包含一个完整的 EPUB 内容清单，以及一个有序的目录，以及查找每一章或每一节的引用。这个 EPUB 的 `content.opf` 文件很长，因此我将在此仅展示一小部分作为示例。

XML 数据包含在 `<package>` 块中，该块本身具有 `<metadata>` 块、`<manifest>` 数据和包含电子书目录的 `<spine>` 块：

```
<?xml version="1.0" encoding="UTF-8"?>
<package unique-identifier="unique-identifier" version="3.0" xmlns="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:opf="http://www.idpf.org/2007/opf">
  <metadata>
    <dc:identifier id="unique-identifier">osdc002</dc:identifier>
    <dc:title>Tips and Tricks for C Programming</dc:title>
    <dc:creator>Jim Hall</dc:creator>
    <dc:language>English</dc:language>
    <meta property="dcterms:modified">2022-06-23T12:09:13Z</meta>
    <meta content="LibreOffice/7.3.0.3$Linux_X86_64 LibreOffice_project/0f246aa12d0eee4a0f7adcefbf7c878fc2238db3 (libepubgen/0.1.1)" name="generator"/>
  </metadata>
  <manifest>
    ...
    <item href="sections/section0001.xhtml" id="section0001" media-type="application/xhtml+xml"/>
    <item href="images/image0003.png" id="image0003" media-type="image/png"/>
    <item href="styles/stylesheet.css" id="stylesheet.css" media-type="text/css"/>
    <item href="toc.ncx" id="toc.ncx" media-type="application/x-dtbncx+xml"/>
    ...
  </manifest>
  <spine toc="toc.ncx">
    <itemref idref="section0001"/>
    <itemref idref="section0002"/>
    <itemref idref="section0003"/>
    ...
  </spine>
</package>

```

你可以把数据匹配起来，看看在哪里可以找到每个部分。EPUB 阅读器就是这样做的。例如，目录中的第一项引用了 `section0001`，它在清单中被定义为位于 `sections/section0001.xhtml` 文件中。该文件的名称不需要与 `idref` 条目相同，但 LibreOffice Writer 的自动程序就是这样创建该文件的。（你可以在元数据中看到，这个 EPUB 是在 Linux 上用 LibreOffice 7.3.0.3 版本创建的，它可以将内容导出为 EPUB 文件。）

### EPUB 格式

EPUB 文件是一种使用开放格式发布内容的好方法。EPUB 文件格式是 XML 元数据与 XHTML 内容，包含在一个 zip 文件内。虽然大多数技术作家使用工具来创建 EPUB 文件，因为 EPUB 是基于开放标准，意味着你可以使用其他方式创建自己的 EPUB 文件。

---

via: <https://opensource.com/article/22/8/epub-file>

作者：[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/) 荣誉推出


Fedora 37 新功能披露

Summary: 关于 Fedora 37 及其新特性、发布细节等等。

非常的期待，期待跳票

什么时候能像Debian Gnu/Linux 那样提供一套完整的全组件ISO,我才觉得她是真正的彻头彻尾的自由软件！！！<br />
虽然Debian Gnu/Linux包含了一些non-free的软件，但从ISO发布的角度看，她把所有的软件组件都给了用户。无法获得本身就是一种不自由！！！

关于 Fedora 37 及其新特性、发布细节等等。

![](/data/attachment/album/202208/26/000924lz0vl82vsq2zf0v7.jpg)

>
> 关于 Fedora 37 及其新特性、发布细节等等。
>
>
>

Fedora 37 的开发工作已经结束，Beta 测试版即将来临。在这个阶段，Fedora 37 的功能和软件包已经最终确定。

在这篇常规的功能指南页面中，我总结了你应该知道的关于 Fedora 37 的基本功能，让你对预期的功能有一个概念。但是在这之前，先看看暂定的时间表：

* 测试版的发布日期是 2022 年 9 月 13 日。后备日期是 2022 年 9 月 20 日。
* Fedora 37 最终版计划于 2022 年 10 月 18 日发布。后备日期是 2022 年 10 月 25 日。

![Fedora 37 Workstation with GNOME 43](/data/attachment/album/202208/26/000956e3wou3icqptkxwbs.jpg)

### Fedora 37 的主要新功能

#### 内核

首先是构成核心的关键项目。Fedora 37 采用了 Linux 内核 5.19，这是目前最新的主线内核。Linux 内核 5.19 带来了一些基本功能，比如修复了 Retbleed 漏洞、支持 ARM、支持苹果 M1 NVMe SSD 控制器以及许多此类功能，你可以在我们的 [内核功能指南](https://www.debugpoint.com/linux-kernel-5-19/) 中了解更多。

使用最新内核的好处是，你可以保证你使用的是此时此刻最新、最好的硬件支持。

其次，桌面环境在这个版本中得到了更新。

#### 桌面环境

Fedora 37 是第一个带来令人惊叹的 GNOME 43 桌面的发行版，它带来了一些优秀的功能，比如：

* [重新改版后的快速设置功能](https://www.debugpoint.com/gnome-43-quick-settings/)，带有药片式按钮
* 移植了 GTK4 和 libadwaita 的文件管理器 v43（nautilus）
* 带有橡皮筋、徽章、响应式侧边栏等功能的文件管理器
* 更新了 GNOME Web，支持 WebExtension API

还有许多你期待了多年的功能。请查看我的 [GNOME 43 功能指南](https://www.debugpoint.com/gnome-43/) 以了解更多。

Fedora 37 带来了 KDE Plasma 5.26 桌面环境，包括大量的新功能、性能改进和错误修复。KDE Plasma 桌面最值得注意的功能包括：

* 一个更新的概览屏幕
* 深色和浅色主题的动态墙纸
* 更新的 KDE 框架和应用程序

由于轻量级桌面 LXQt 更新了稳定版 1.1.0，它来到了 Fedora 37 中。LXQt 1.1.0 为深色主题带来了一个外观统一的默认调色板、应用程序菜单的两个变体（简单和紧凑）和重新排列的 GTK 设置。此外，LXQt 1.1.0 也开始了 Qt 6.0 桌面组件移植的初始工作。所有这些 bug 修复和增强功能都在 Fedora LXQt 版本中出现。

此外，其他主要的桌面版本由于没有重要的新的更新到来，仍然保持在当前版本，即 Xfce 4.16 和 MATE 1.24 用在各自的 Fedora 定制版中。

让我们看看这个版本中影响所有 Fedora 定制版的系统级变化是什么。

#### 系统级的变化

最重要的变化是对树莓派 4 的正式支持。得益于多年来的努力，你现在可以在最喜欢的树莓派上享受到开箱即用的 Fedora 37 了。

Fedora Linux 一直是推动技术发展的先锋，在其他发行版之前就采用了最新的功能。因此，现在在 KDE Plasma（和 Kinoite）和不同的定制版中，SDDM 显示管理器默认采用了 Wayland。这样，从 Fedora 发行版方面就完成了 Wayland 各个定制版的过渡。

正如我 [之前的报道](https://debugpointnews.com/fedora-37-anaconda-web-ui-installer/)，Fedora Linux 37 计划为我们提供 Anaconda 的网页安装程序的预览镜像。它可能不会在发布后立即可用，但它应该在发布后的几天内出现。

其他值得注意的功能包括将默认的主机名从 `fedora` 改为 `localhost`，以避免一些第三方系统配置检测问题。

除此之外，Fedora Core OS 被打造为 Fedora 官方版本，现在与服务器版、物联网版和云计算版同列，以便你可以更好地发现和采用它。最小资源占用的 Fedora Core OS 主要用于容器工作负载，并带来了自动更新和额外的功能。

遵循传统，这个版本也有一个 [全新的墙纸](https://debugpointnews.com/fedora-37-wallpaper/)，有夜间和白天两个版本。我必须得说，它看起来很棒（见上面的桌面图片）。

最后，在这个版本中，Fedora 删除了 32 位的 Java 包，包括 JDK 8、11 和 17，因为使用率很低。此外，openssl 1.1 软件包也被弃用。

工具链、应用程序和编程栈更新如下：

* Glibc 2.36 和 Binutils 2.38
* Node.js 18.x
* Perl 5.36
* Python 3.11

### Fedora 37 功能摘要

那么，这个版本的功能就到此为止了。下面是对 Fedora 37 功能的总结：

* Linux 内核 5.19
* GNOME 43
* KDE Plasma 5.26
* Xfce 4.16
* MATE 1.24
* LXQt 1.1.0
* 新的基于网页的安装程序的预览镜像
* SDDM 显示管理器默认采用 Wayland（在 KDE Plasma 和其他桌面环境中）。
* 官方支持树莓派 4
* Fedora Core OS 成为官方版本
* 一些关键软件包放弃了 32 位支持
* 还有相关的工具链和编程语言更新。

如果你有空闲时间，你可以 [体验一下](https://dl.fedoraproject.org/pub/fedora/linux/development/37/Workstation/x86_64/iso/)。虽然，它是非常不稳定的，不推荐运行测试版之前的开发版。

**那么，这个版本中你最喜欢的功能是什么？请在评论区告诉我**。

---

via: <https://www.debugpoint.com/fedora-37/>

作者：[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/) 荣誉推出


硬核观察 #740 密码管理软件 LastPass 承认遭到黑客入侵

Summary: • 密码管理软件 LastPass 承认遭到黑客入侵 • iPhone 的锁定模式会导致被识别 • 微软称 80% 勒索软件攻击都是由于服务器错误配置导致

![](/data/attachment/album/202208/26/210658bzgslcrqiupuabxw.jpg)

![](/data/attachment/album/202208/26/210712onieiequi69iui33.jpg)

### 密码管理软件 LastPass 承认遭到黑客入侵

全球用户数超过 3300 万的密码管理软件公司 LastPass 表示，最近一名黑客在侵入其开发系统后窃取了部分源代码和一些专有信息。LastPass 将密码存储在“加密的保险箱”中，只有使用客户的主密码才能解密。LastPass 表示在这次网络攻击中主密码没有被泄露，用户不需要采取行动来保护他们的账户。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/lastpass-developer-systems-hacked-to-steal-source-code/)**
>
>
>

>
> 老王点评：理论上客户的主密码不会被泄露，因为 LastPass 也没有。但是其软件的源代码被泄露，或许一些潜在的缺陷就会被利用。总之，这个事情可能还需要进一步评估。
>
>
>

![](/data/attachment/album/202208/26/210751j18hphbu7eubbbb1.jpg)

### iPhone 的锁定模式会导致被识别

iPhone 的“锁定模式”禁用了一系列可用于入侵 iPhone 用户的功能。但是，如果用户打开锁定模式，他们将很容易被打上指纹和识别。据一位开发者说，他创建了一个概念验证网站，可以检测你是否启用了锁定模式。任何网站或在线广告都可以检测到一些常规功能是否缺失，比如加载自定义字体，这是锁定模式禁用的功能之一。

>
> **[消息来源：VICE](https://www.vice.com/en/article/epzpb4/websites-can-identify-if-youre-using-iphones-new-lockdown-mode)**
>
>
>

>
> 老王点评：这是安全和隐私之间的一个权衡，选择了极致安全却丢失了隐私。也许，会有更好的权衡方案。
>
>
>

![](/data/attachment/album/202208/26/210806s4m1e2eu2hi7hjhi.jpg)

### 微软称 80% 勒索软件攻击都是由于服务器错误配置导致

微软最近发布的《[Cyber Signals](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE54L7v)》报告指出，勒索软件即服务（RaaS）日益猖獗，但是常规的软件设置就能应对，可以阻止大部分勒索软件攻击。此外，报告中还发现客户错误配置云服务、依赖不可靠的安全软件，以及通过默认宏设置的流量勒索软件，这导致微软制造了某种勒索软件攻击，即人为操作的勒索软件。

>
> **[消息来源：Onmsft](https://www.onmsft.com/news/80-of-ransomware-attacks-are-due-to-misconfigured-servers-says-microsoft)**
>
>
>

>
> 老王点评：问题是，依靠人总是有各种疏漏，所以如何用软件或机制来保障这 80% 的情况才是最重要的。
>
>
>


将 Docker 命令转化为 Docker Compose 文件

Summary: 使用 Composerize 从 docker run 命令创建 Docker Compose 文件

![](/data/attachment/album/202208/27/150501vw3eqx2xkexemmkc.jpg)

>
> 使用 Composerize 从 `docker run` 命令创建 Docker Compose 文件
>
>
>

如果你每天在正式或个人系统中使用 Docker，你应该知道有一个有用的应用叫 **Composerize**。在这个简短的指南中，我们将了解什么是 Composerize，以及如何使用 Composerize 在 Linux 中**将 `docker run` 命令转换为 Docker Compose 文件**格式。

### 什么是 Composerize？

[Docker Compose](https://ostechnix.com/introduction-to-docker-compose/) 是一个用于定义和运行多容器 Docker 应用的工具。Docker Compose 只是一个 YAML 文件，我们在其中为 Docker 应用定义服务、网络和卷。

不是每个人都擅长写高效的 Docker Compose 文件。你们中的一些人可能会发现，甚至写一个简单的 Docker Compose 文件都很困难。不用担心! 看下 Composerize，它可以帮助你从 `docker run` 命令中创建 Docker Compose 文件。

Composerize 是一个命令行和基于网络的工具，可以将 `docker run` 命令转换成 Docker Compose 文件。

无论 `docker run` 命令是简单、简短还是冗长、复杂，都没有关系。你所要做的就是把命令传给 Conposerize。Composerize 会立即将 `docker run` 命令变成 Docker Compose 文件！

### 在 Linux 中安装 Composerize

Composerize 是作为一个网络服务提供的。所以你不需要在你的系统上安装它。如果你因为任何原因想在本地安装它，请继续阅读。

Composerize 可以用 npm 安装。确保你的系统中已经安装了 Nodejs。如果没有安装，请按照下面的链接来安装 Nodejs。

* **[如何在 Linux 上安装 NodeJS](https://ostechnix.com/install-node-js-linux/)**

安装完 Nodejs 后，运行以下命令来安装 Composerize：

```
$ npm install composerize

```

该命令将只为当前用户安装 Composerize。

如果你想在全局（全系统）安装它，请运行上述命令并加上 `-g` 选项，如下所示。

```
$ npm install composerize -g

```

### 用 Composerize 将 Docker 命令转换为 Docker Compose 文件

要将 `docker run` 命令转换为 Docker Compose 格式，只需用 Composerize 运行它，如下所示：

```
$ composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

```

它将以 Docker Compose 文件格式生成内容。

示例输出：

```
version: '3.3'
services:
    portainer:
        ports:
            - '9000:9000'
        volumes:
            - '/var/run/docker.sock:/var/run/docker.sock'
        image: portainer/portainer

```

![Convert Docker Run Commands Into Docker-Compose Files With Composerize](/data/attachment/album/202208/27/150610mh2g9xf2w9f952f0.png)

现在在你的 `docker-compose.yml` 文件中复制上面几行。就这么简单！

正如我所说，你也可以使用 Composerize 网络服务将 `docker run` 命令转换成 Docker Compose 格式。

进入 <https://www.composerize.com/>，将 `docker run` 命令粘贴到框中，你就会立即得到 `docker-compose.yml` 文件！

![Turn Docker Run Commands Into Docker-compose Files Using Composerize](/data/attachment/album/202208/27/150611wws7rk5ekrzokksz.png)

将命令转换为 Docker Compose 文件后，到你保存 `docker-compose.yml` 文件的位置，运行以下命令来启动 Docker 应用：

```
$ docker-compose up

```

Composerize 是对 Docker 用户有用的工具之一。你现在可以安全地告别漫无边际的 Docker 命令了。

资源：

* [Composerize GitHub 仓库](https://github.com/magicmark/composerize)

---

via: <https://ostechnix.com/convert-docker-run-commands-into-docker-compose-files/>

作者：[sk](https://ostechnix.com/author/sk/) 选题：[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/) 荣誉推出


从用户到贡献者到 CTO 的开源之旅

Summary: 任何考虑在开源领域发展的人都具有无限的可能性。下面是我的故事。

任何考虑在开源领域发展的人都具有无限的可能性。下面是我的故事。

![](/data/attachment/album/202208/27/154503q9yw0rewy2ge2r8f.jpg)

>
> 任何考虑在开源领域发展的人都具有无限的可能性。下面是我的故事。
>
>
>

当人们问我最喜欢开源的什么时，我的回答很简单：那就是 *开放性* 。在开源中，社区开发者和贡献者所做的工作是在公共领域的，所有人都能看到并从中受益。我对这一理念爱不释手。

有多少人可以对他们的劳动成果这样说？有多少人，也许在 50 年后，可以回过头来说：“看看我那天写的代码，有几百/几千/几万人从中受益。”我觉得这比从事那些对世界上大多数人来说都是隐秘的软件工作更令人无比兴奋。

我很幸运，我的工作使我置身于一个开源和企业交叉的有趣领域中。如今，我是 [OpenNMS 集团](https://www.opennms.com/) 的首席技术官，这家公司负责维护 [OpenNMS 项目](https://www.opennms.com/)。OpenNMS 是一个领先的开源网络监控和管理平台。

虽然我现在的角色让我牢牢扎根于开源领域，但我是以用户和贡献者身份开始的。

2007 年，我得到了我的第一份真正的技术工作，在加拿大蒙特利尔的电信服务提供商 Datavalet 技术公司从事网络分析。在五年的时间内，我成长为解决方案架构师，任务是帮助公司选择网络管理解决方案。我们选择了 OpenNMS，正是通过这次经历，我认识到了开源的真正力量。

在平台上线时，我们发现了一些缺失的功能，这些功能将有助于优化我们的体验。一位来自 OpenNMS 集团的代表在现场帮助我们进行部署，并建议我参加社区即将举行的 DevJam，与核心开发人员一起建立我们需要的功能。

在 DevJam 期间，我很快就融入了团队和社区。我们卷起袖子，开始编码，以创建 Datavalet 所需的增强功能。在几天之内，这个附加的功能就准备好了。这是一次令人惊叹的变革性经历，让我真正看到了开源的力量。

一年后，我离职了，在康科迪亚大学全日制学习数学。正是在那里，我再次有机会与 OpenNMS 团队合作，这一次是在该年的谷歌代码之夏的一个项目上。在这个年度计划中，参与者的目标是成功完成开源软件开发项目。

代码之夏对我来说是一次改变职业生涯的经历。OpenNMS 的两位负责人参加了我们的项目演示，一年后，OpenNMS 团队邀请我作为一名全栈开发人员加入。

我努力工作，迅速晋升，并在 2015 年被任命为首席技术官。我认为这是一项个人成就，也再次验证了开源世界的特别之处。如果你喜欢与社区合作，热爱你所做的工作，你的贡献很快就会得到认可。

开源精神也影响了我从个人贡献者到首席技术官的发展，我现在领导着一个由 50 多人组成的产品开发团队。社区本质上是平等的，我与社区贡献者一起工作的经验教会了我如何在环境中领导，而不是控制。

我经历了一段奇妙的开源旅程，从用户到贡献者，再到一家开源公司的高管。开源方法超越了技术，因为专有开发环境中经常存在的障碍的进入和增长可以通过协作、透明和社区来克服。因此，对于任何考虑在开源领域工作的人来说，可能性是无限的。我就是证明。

我们生活在一个人们正在深刻审视自己的生活及其对世界的影响的时代。在开源公司工作特别有意义，因为我可以直接与用户社区互动并影响他们。终端用户和开发人员之间的经典屏障被打破了，我可以确切地看到我的工作如何改变人们的日常生活，或者激励人们为项目做出贡献。通过对一个项目的共同热爱来建立社区，建立持续一生的联系。

我知道这对我来说都是真实的，这也是为什么我对我的工作如此热情。我是一个彻头彻尾的开源极客，并以此为荣。

---

via: <https://opensource.com/article/22/8/my-open-source-career-story>

作者：[Jesse White](https://opensource.com/users/jwhite-0) 选题：[lkxed](https://github.com/lkxed) 译者：[aftermath0703](https://github.com/aftermath0703) 校对：[wxy](https://github.com/wxy)

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


想帮助改善 GNOME 吗？这个新工具给了你这个机会！

不想帮助 GNOME，讨厌 dconf。

代码里是否有错误？应该是gnome-info-collect写成了gnome-info-connect

来自江西赣州的 Chrome Mobile 104.0|Android 12 用户

看了下原文，原文也是这样写的，盲猜又是机翻 + 人工粗略校对。

从项目的 README 来看，正确的是 sudo snap install --classic gnome-info-collect

谢谢指正

哪个项目的改善需要收集这么多个人信息

更何况，gnome什么时候在乎过用户的意见

完全不知道工具的作者是出于什么心态发布的

>
> 这个新的工具，使 GNOME 用户能够提供他们的配置和使用意见，以帮助改善用户体验。
>
>
>

![想帮助改善 GNOME 吗？ 这个新工具给了你机会！](/data/attachment/album/202208/27/162051b2ghagbkqk1zfe29.jpg)

GNOME 带来了一个工具，可以让用户匿名提供他们的配置、扩展和 GNOME 调整设置等方面的意见。

这应该有助于 GNOME 了解更多的用户偏好，并做出更好的增强用户体验的决定。

有趣的是，是红帽公司的一名实习生（Vojtech Stanek）创造了这个工具。

### GNOME 信息收集：准备好安装了吗？

![gnome info collect terminal](/data/attachment/album/202208/27/162051vssef8fzk0g5vrns.png)

该工具（`gnome-info-collect`）是一个简单的终端程序，你需要下载、安装并运行它来与 GNOME 分享数据。

以下是该工具需要从你的 GNOME 系统中收集的内容：

* 硬件信息（包括制造商和型号）。
* 系统设置（包括工作区配置、共享功能、SSH 等）。
* 安装并启用的 GNOME shell 扩展。
* 应用程序信息（如已安装的应用程序和收藏的应用程序）。
* Linux 发行版和版本。
* Flatpak 和 Flathub 状态。
* 默认浏览器。
* 机器 ID + 用户名的 [加盐哈希](https://en.wikipedia.org/wiki/Salt_(cryptography))。

你可以在其 [GitLab 页面](https://gitlab.gnome.org/vstanek/gnome-info-collect/) 上找到适合你的发行版的软件包和收集数据的更多细节。

如果你有一个基于 Ubuntu 的发行版，你可以通过输入以下内容来安装它：

```
sudo snap install --classic gnome-info-collect

```

安装完毕后，在终端使用以下命令将其启动：

```
gnome-info-collect

```

接下来，它会显示它打算与 GNOME 共享的数据。所以，如果你觉得没问题，你可以选择将数据上传到 GNOME 的服务器上。

![](/data/attachment/album/202208/27/162052s6ommqbufq4z467f.png)

考虑到这些数据是匿名的，它应该可以帮助 GNOME 了解他们的用户喜欢什么，并随着时间的推移专注于这些改进。

>
> **[下载 gnome-info-collect](https://gitlab.gnome.org/vstanek/gnome-info-collect/)**
>
>
>

你对 GNOME 的这个新的数据收集工具有什么看法？请在下面的评论中分享你的想法。

---

via: <https://news.itsfoss.com/gnome-improve-tool/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[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/) 荣誉推出


硬核观察 #741 推特创始人说他最大的遗憾是推特成为一家公司

Summary: • 推特创始人说他最大的遗憾是推特成为一家公司 • RHEL 10 将取消 GTK2 工具包支持，最大绊脚石可能是 GIMP • Heroku 宣布取消免费计划

悔创阿里杰克马。我现在去注册个嘀嘀司机或美团骑手，功成名就后也能说我最后悔的就是成立这家公司，还没干嘀嘀痛快，能游览整个城市美景。

我弃用 GIMP (转用 Krita) 的重要原因就是它还在用 GTK2，和 GTK3、QT5 的主题风格统一不了，看着丑死了。

目前还有一些较常用的软件在用 GTK2，以 Arch Linux 为参考：rduino, hexchat, LXDE 部分软件, steam-native-runtime, screensaver, hexchat......

杠精，看了标题就开喷的吧

来自湖北武汉武汉大学测绘学院的 Firefox 104.0|GNU/Linux 用户

脑残，猪脑子理解不了就骂人吧

看了下，GIMP 最新开发版没有用 GTK2 了，不错，打算换回去了。

![](/data/attachment/album/202208/27/204356sfq50u5sbc3e5p40.jpg)

![](/data/attachment/album/202208/27/204405hyq9mtms91t1tc0t.jpg)

### 推特创始人说他最大的遗憾是推特成为一家公司

在回答关于“推特是否变成了他所设想的那样”的问题时，推特创始人 Jack Dorsey 说，“最大的问题和我最大的遗憾是它变成了一家公司”，他进一步说，这应该是“一种协议”，推特不应该由国家或其他公司拥有。如果它是一种协议，那么推特的运作就会很像电子邮件，它不受一个中央实体的控制，使用不同电子邮件供应商的人能够相互沟通。

>
> **[消息来源：路透社](https://www.reuters.com/business/media-telecom/jack-dorsey-says-he-believes-twitter-should-not-be-owned-by-state-company-2022-08-25/)**
>
>
>

>
> 老王点评：这是真正有开放情怀的人的想法，虽然未必是一条成功之路。不过，已经有类似的“协议”出现，也许真的会出现一个这样的去中心化的推特。
>
>
>

![](/data/attachment/album/202208/27/204422uz81p83bzo565gp0.jpg)

### RHEL 10 将取消 GTK2 工具包支持，最大绊脚石可能是 GIMP

虽然 GTK2 工具包在 Linux 应用程序中已经使用了很久，但 GTK3 已经推出了十多年，连 GTK4 也已经推出了两年。大多数著名的 Linux 软件已经从 GTK2 移植到 GTK3 或 GTK4，但也有少数例外，包括 GIMP 和它酝酿已久的 GIMP 3.0 版本仍在使用 GTK2。GTK 最初是来自于 GIMP 项目的一个副产品，是 GIMP 本身的底层框架。红帽称，“这个工具包为我们提供了很好的服务，但在现代技术方面，如 Wayland、HiDPI 屏幕、HDR 和其他方面，它开始显示出它已经开始老化。”RHEL 10 计划在 2025 年推出稳定版。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/RHEL-10-No-GTK2)**
>
>
>

>
> 老王点评：这应该对大部分使用 GTK 的图形应用没有什么影响，基本上都使用了较新的 GTK 了。但是有趣的是，GIMP 这么多年一直抱着老旧的 GTK2 不升级，反而成为升级换代的最大绊脚石。难怪 GIMP 这么多年还那个样子。
>
>
>

![](/data/attachment/album/202208/27/204445wonnyz4scwxnzxw8.jpg)

### Heroku 宣布取消免费计划

在提供了十多年的服务后，Heroku 本周宣布，它将取消所有的免费服务。Heroku 是一个支持多种编程语言的云平台，允许程序员使用 Java、PHP、Scala 和 Go 等编程语言构建、运行和扩展应用程序。它是最早的云平台之一，其声称被用于开发了 1300 万个应用程序。Heroku 将免费服务的消亡归咎于“滥用”，将于 10 月底开始删除不活跃的账户和超过一年的账户的相关存储，并在 11 月底停止提供免费产品计划，并关闭免费数据服务。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2022/08/25/heroku-announces-plans-to-eliminate-free-plans-blaming-fraud-and-abuse/)**
>
>
>

>
> 老王点评：又一个免费服务的消失，但是根本原因还是找不到免费服务的生存价值，或者说，免费服务不能给他们带来足够的潜在利益。
>
>
>


3 个可在 Linux 上玩旧 NES 游戏的 NES 模拟器

补充几个。

+ higan: higan-emu.com

+ Nestopia: 0ldsk00l.ca/nestopia

+ Mesen: github.com/SourMesen/Mesen

+ puNES: github.com/punesemu/puNES

+ PPSSPP 似乎也能玩 NES 游戏

+ 搜索引擎搜索 "NES online emulator"

![](/data/attachment/album/202208/28/162533h41z1kynkyn5n53q.jpg)

>
> 快速了解一下在 Linux 中玩老式 NES 游戏的 3 个 NES 模拟器。此外，我们也提供了安装指南和特性介绍。
>
>
>

如果你想在最新的 Ubuntu、Linux Mint 版本中玩超级马里奥、口袋妖怪等老式复古游戏，有很多可用的模拟器。如果你想玩老式复古游戏，可以尝试以下三个模拟器。

### 1、ZSNES

[ZSNES](http://www.zsnes.com/) 是一个 [超级任天堂](https://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System) 模拟器，可以在 Windows、Linux、FreeBSD 和 DOS 上运行。它作为 GUI 界面运行，你可以在其中加载 NES 游戏的 ROM。

这是在 Ubuntu、Debian 和 Linux Mint 中安装 ZSNES 的方法。从终端运行以下命令：

```
sudo apt install zsnes

```

对于 Fedora，在 [使用这个指南设置 RPM fusion](https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/) 后运行以下命令进行安装。因为它需要一些 Fedora 官方发行版没有提供的模块。

```
sudo dnf install zsnes

```

安装后，从 Dash 中搜索 ZSNES 或在终端中输入 zsnes。

![ZSNES Main](/data/attachment/album/202208/28/162536updpfdad07fzd7e2.png)

![Play old NES games using ZSNES in Ubuntu](/data/attachment/album/202208/28/162537bdqoguyi7qgdisid.png)

### 2、Higan

higan 是 Nintendos SNES、NES、Gameboy、Gameboy Color 和 Gameboy Advance 的模拟器。它以前被称为 bsnes，并且 SNES 仿真特别完整和完善。

higan 努力提供最忠实的硬件仿真。它专注于准确性和简洁的代码，而不是速度和特殊功能。它旨在作为参考仿真器来记录底层硬件的工作原理。

这是从命令行安装 higan 的方法。

```
sudo apt install higan

```

![Higan Running in Ubuntu](/data/attachment/album/202208/28/162537jr4mqe9142ll2rg1.png)

### 3、GFCEU

GNOME FCE Ultra（gfceu）是用于 GNOME 桌面的 FCE Ultra 任天堂娱乐系统的图形前端。 Gfceu 简化了用户的游戏体验，并提供了干净、简单和直观的界面。

从终端运行以下命令，为 Ubuntu、Linux Mint 和相关发行版安装 gfceu。

```
sudo apt install gfceu

```

对于 Fedora，运行以下命令进行安装。请确保在运行此命令之前 [使用这个指南设置 RPM fusion](https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/)。因为它需要某些官方 Fedora 发行版未提供的软件包。

```
sudo dnf install gfceu

```

![gfceu running in Ubuntu](/data/attachment/album/202208/28/162538kwgwoteqim8qjitq.png)

### 下载游戏 ROM

有数百个网站提供 NES ROM。这里有几个你可以下载 NES ROM 的地方。下载后，解压缩并从模拟器菜单中打开。

* <https://romsmania.cc/roms/nintendo>
* <https://romsmode.com/>
* [www.emuparadise.me](http://www.emuparadise.me/Nintendo_Entertainment_System_ROMs/13)

使用这些模拟器享受和玩旧 NES 游戏。请让我知道你最喜欢哪一个。

---

via: <https://www.debugpoint.com/3-nes-emulators-to-play-old-nes-games-in-linux/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[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 Mint 21

我选择用 Mint 的上游发行版 + Cinnamon 桌面。

![](/data/attachment/album/202208/28/172913lzqsmfll8snzblbs.jpg)

>
> 这是一个周期性的更新指南，主要用于将现有的 Linux Mint 升级安装到一个新的可用版本。
>
>
>

在这篇文章中有三个部分，分别向你展示 Linux Mint 的不同的主要版本之间的升级步骤:

* 第 1 部分是关于从 Linux Mint 20.3 升级到 Linux Mint 21（GUI 升级工具）
* 第 2 部分是关于从 Linux Mint 19.3 升级到 Linux Mint 20（基于命令行的升级程序）
* 第 3 部分是关于从 Linux Mint 18.3 升级到 Linux Mint 19（假设一些人仍然在使用它）

你可以依据你的当前的 Linux Mint 版本和需要来执行适当的步骤。

这是一个周期性的更新指南，主要用于将现有的 Linux Mint 升级安装到一个新的可用版本。

这篇指南已经更新，追加从 Mint 20.3 升级到 Linux Mint 21 的步骤。Linux Mint 现在有一个 GUI 工具来升级到最新的版本。

### 在你升级到 Linux Mint 21 之前需要知道的事情

在你继续升级到 Linux Mint 21 之前，你应该考虑下面的事情：

* 你真的需要升级吗？Linux Mint 20.x 还有好几年的支持期限。
* 你将需要高速互联网连接来下载大约 14 GB 的升级数据。
* 它可能将花费几个小时的时间来完成升级过程，当然这主要取决于你的互联网速度。你必须有耐心。
* 制作一个 Linux Mint 21 的 <ruby> 实况 USB <rt>  Live USB </rt></ruby> 并在一次<ruby> 实况会话 <rt>  Live session </rt></ruby> 中尝试它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题，因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。
* 全新的安装总是比主要版本升级的更好，但是从零开始安装 Linux Mint 21 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。
* 尽管大部分的升级是安全的，但是它也不会是 100% 的成功。你必须要有系统快照和真正的备份。
* 你只能从 Linux Mint 20.3 的 Cinnamon 、Xfce 和 MATE 版本升级到 Linux Mint 21 。首先 [检查你的 Linux Mint 版本](https://itsfoss.com/check-linux-mint-version/) 。如果你正在使用 Linux Mint 20.2 或 20.1 ，你需要先使用更新管理器来升级到 20.3 。如果你正在使用 Linux Mint 19 ，我建议你选择进行一次的全新安装，而不是选择进行数次的升级 Mint 版本。

在你知道你将要做什么后，让我们看看如何升级到 Linux Mint 21 。

### 从 Linux Mint 20.3 升级到 Linux Mint 21

检查你的 Linux Mint 版本，并确保你正在使用 Mint 20.3 。你不能从 Linux Mint 20.1 或 20.2 升级到 Linux Mint 21 。

#### 步骤 1: 通过安装任意可用的更新来更新你的系统

使用 <ruby> 菜单 <rt>  Menu </rt></ruby> -> <ruby> 系统管理 <rt>  Administration </rt></ruby> -> <ruby> 更新管理器 <rt>  Update Manager </rt></ruby> 来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新，先安装所有的软件包更新。

![Check for Pending Software Updates](/data/attachment/album/202208/28/172919we5lkyzbryeveklr.png)

针对这一步骤，你也可用在终端中使用这一个命令：

```
sudo apt update && sudo apt upgrade -y

```

#### 步骤 2: 在外部的磁盘上备份你的文件 [可选，但是建议]

Timeshift 是一个创建系统快照的好工具，但它却不是一个针对文档、图片和其它那些非系统的、个人文件的理想工具。我建议你在一块外部磁盘上进行备份。它只是为了数据安全。

当我说在一块外部磁盘上进行一次备份时，我的意思是将你的图片、文档、下载和视频目录简单地复制和粘贴到一块外部的 USB 磁盘上。

如果你没有那样大的磁盘，至少复制那些你不可丢失的最重要的文件。

#### 步骤 3: 安装升级工具

现在，你的系统已经更新，你已经准备好升级到 Linux Mint 21 。Linux Mint 开发组提供一个名称为 [mintupgrade](https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade) 的 GUI 工具，用于从 Linux Mint 20.3 升级到 Linux Mint 21 。

你可用使用下面的命令来安装这个工具：

```
sudo apt install mintupgrade

```

#### 步骤 4: 从终端中运行这个 GUI 工具

你不能在应用程序菜单列表中找到这个新的 GUI 工具。为启动它，你需要在终端中输入下面的命令：

```
sudo mintupgrade

```

这个简单且全面工具将带领你完成升级过程。

![Mint Upgrade Tool Home Page](/data/attachment/album/202208/28/172919hw4owm5mrhd5qtdo.png)

在一些初始化的测试后，它将提示进行一次 Timeshift 备份。如果你已经创建了一次备份，你已经准备好下一步了。

![Upgrade Tool Prompting No Timeshift Snapshots](/data/attachment/album/202208/28/172919fxohxkx52x23vloh.png)

否则，你需要在这里 [创建一个备份](https://itsfoss.com/backup-restore-linux-timeshift/) ，因为这是强制继续的。

![Taking Snapshot With Timeshift](/data/attachment/album/202208/28/172920fu0yrfzowtw11599.png)

一些 PPA 可能已经适用于 Ubuntu 22.04 ，因此也适用于 Mint 21 。但是，如果 PPA 或存储库不适用于新的版本，它可能会因为依赖关系的打断而影响升级过程。在升级工具中也会同样的提示你。

![Kazam PPA Does Not Support Jammy](/data/attachment/album/202208/28/172920oiid3id0xf13747i.png)

在这里，我将通过 Kazam 其 PPA 来使用其 [最新版本](https://itsfoss.com/kazam-screen-recorder/) 。其 PPA 仅被支持到 Impish ，因为 Linux Mint 21 是基于 Jammy 的，所以它会显示错误。

你可以在升级工具中通过软件源来指定禁用 PPA 的选项。

![Disable Unsupported PPAs in Software Sources](/data/attachment/album/202208/28/172920x49dfh6fc645w6dr.png)

在禁用该 PPA 后，该软件包会变成 “<ruby> 陌生的 <rt>  foreign </rt></ruby>”，因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。因此，你需要将软件包降级到存储库中一个可用的版本。

![Downgrade Package to Avoid Conflicts](/data/attachment/album/202208/28/172921i6h1nmh5551ooliz.png)

升级工具现在列出需要执行更改。

![List Changes That Need to be Done](/data/attachment/album/202208/28/172921sj0s2g18hiai7hc2.png)

在接受后，该工具将开始下载软件包。

![Phase 2 – Simulation and Package Download](/data/attachment/album/202208/28/172921cj3jq0gg3tvbeaf6.png)

![Package Downloading](/data/attachment/album/202208/28/172922bekseake1eejenar.png)

![Upgrading Phase](/data/attachment/album/202208/28/172923rmndem5o66on45x5.png)

它将列出孤立的软件包，这可以被移除。你可以通过按下 <ruby> 修复 <rt>  Fix </rt></ruby> 按钮来移除整个建议的软件包，也可以保留某些软件包。

#### 保留某些孤立的软件包

为保留来自孤立的软件包列表中软件包，你需要从左上角的汉堡菜单转到 <ruby> 首选项 <rt>  Preferences </rt></ruby>。

![Selecting Orphan Packages You Want to Keep with Preferences](/data/attachment/album/202208/28/172923j6mc8m7kjstg5m1g.png)

在首选项对话框中，你需要转到 “<ruby> 孤立的软件包 <rt>  Orphan Packages </rt></ruby>” 并使用 “+” 符号来通过名称添加软件包。

![Specify Name of the Package to Keep](/data/attachment/album/202208/28/172923e44439m44i2e13c1.png)

在完成后，它将继续升级，在一段时间后，将会向你提示一条成功更新的通知。

![Upgrade Successful](/data/attachment/album/202208/28/172923jhh2h78o4zhvq98t.png)

此时，你需要重新启动你的系统。在重新启动后，你将进入到新的 Linux Mint 21 。

![Neofetch Output Linux Mint 21](/data/attachment/album/202208/28/172924s0oigydmg0b1mlfa.png)

### 如何升级到 Linux Mint 20

在你继续升级到 Linux Mint 20 之前，你应该考虑下面的事情：

* 你真的需要升级吗？Linux Mint 19.x 将会支持到 2023 年。
* 如果你 [有一款 32 位系统](https://itsfoss.com/32-bit-64-bit-ubuntu/)，你不能安装或升级到 Mint 20 。
* 你将需要高速互联网连接来下载大约 1.4 GB 的升级。
* 它可能将花费几个小时的时间来完成升级过程，当然这主要取决于你的互联网速度。你必须有耐心。
* 制作一个 Linux Mint 20 的 <ruby> 实况 USB <rt>  Live USB </rt></ruby> 并在一次实况会话中查看它是否与你的硬件系统兼容会是一个好主意。较新的内核可能与较旧的硬件系统有兼容性问题，因此在真正升级或安装之前来对其进行测试可能会为你省去很多麻烦。
* 全新的安装总是比主要版本升级的更好，但是从零开始 [安装 Linux Mint](https://itsfoss.com/guide-install-linux-mint-16-dual-boot-windows/) 20 可能意味着丢失你的现有的数据。你必须在外部的外部磁盘上进行备份。
* 尽管大部分的升级是安全的，但是它也不会是 100% 的成功。你必须要有系统快照和真正的备份。
* 你只能从 Linux Mint 19.3 的 Cinnamon 、Xfce 和 MATE 版本升级到 Linux Mint 20 。首先 [检查你的 Linux Mint 版本](https://itsfoss.com/check-linux-mint-version/) 。如果你正在使用 Linux Mint 19.2 或 19.1 ，你需要先使用更新管理器来升级到 19.3 。如果你正在使用 Linux Mint 18 ，我建议你选择进行一次的全新安装，而不是选择进行数次的升级 Mint 版本。
* 升级过程是通过命令行实用程序来完成的。如果你不喜欢使用终端和命令，不要升级，并进行一次全新的安装。

在你知道你将要做什么后，让我们看看如何升级到 Linux Mint 20 。

#### 步骤 1: 确保你有一款 64 位系统

Linux Mint 20 是一款仅提供 64 位的操作系统。如果你安装了一款 32 位的 Linux Mint 19 ，你不能升级到 Linux Mint 20 。

在一个终端中，使用下面的命令来查看你是否正在使用 64 位操作系统。

```
dpkg --print-architecture

```

![Mint 20 Upgrade Check Architecture](/data/attachment/album/202208/28/172924oqyhv5fk500nyn9l.jpg)

#### 步骤 2: 通过安装一些可用的更新来更新你的系统

使用 <ruby> 菜单 <rt>  Menu </rt></ruby> -> <ruby> 系统管理 <rt>  Administration </rt></ruby> -> <ruby> 更新管理器 <rt>  Update Manager </rt></ruby> 来启动更新管理器。查看是否有一些可用的软件包更新。如果有可用的更新，先安装所有的软件包更新。

![Check for pending software updates](/data/attachment/album/202208/28/172924au3ugzhzuiyyihu3.jpg)

针对这一步骤，你也可用在终端中使用这一个命令：

```
sudo apt update && sudo apt upgrade -y

```

#### 步骤 3: 使用 Timeshift 创建一个系统快照 [可选，但是建议]

如果你遇到升级过程中断或你遇到其它的一些重大问题，[使用 Timeshift 创建一个系统快照](https://itsfoss.com/backup-restore-linux-timeshift/) 将会解救你于水火之中。**你甚至可以使用这种方法恢复到 Mint 19.3 。**

假设你因为意外断电导致升级失败，或因为其它一些原因，你最终得到一个残缺的不稳定的 Linux Mint 19 。你可以插入一个 Linux Mint 实况 USB ，并从该实况环境中运行 Timeshift 。它将会自动地定位你的备份位置，并将允许你恢复你残缺的 Mint 19 系统。

这也意味着你应该随时携带一个 Linux Mint 19 实况 USB ，以防在极少数升级失败的情况下，你不能用一台工作的计算机创建 Linux Mint 实况 USB 。

![Create a system snapshot in Linux Mint](/data/attachment/album/202208/28/172924v3c3x6cgxzclgcvj.jpg)

#### 步骤 4: 在一块外部的磁盘上备份你的文件 [可选，但是建议]

Timeshift 是一个创建系统快照的好工具，但它却不是一个针对文档、图片和其它那些非系统、个人文件的理想工具。我建议你在一块外部磁盘上进行备份。它只是为了数据安全。

当我说在一块外部磁盘上进行一次备份时，我的意思是将你的图片、文档、下载和视频目录简单地复制和粘贴到一块外部的 USB 磁盘上。

如果你没有那样大的磁盘，至少复制那些你不可丢失的最重要的文件。

#### 步骤 5: 禁用 PPA 和第三方存储库 [可选，但是建议]

不出意外的话，你可能已经使用一些 [PPA](https://itsfoss.com/ppa-guide/) 或其它的存储库来安装了一下应用程序。

一些 PPA 可能已经适用于 Ubuntu 20.04 ，因此也适用于 Mint 20 。但是，如果 PPA 或存储库不适用于新的版本，它可能会因为依赖关系的打断而影响升级过程。

对此，建议你禁用 PPA 和第三方存储库。你也可以删除通过这样的外部源安装的应用程序，如果你这样做的话，不会导致配置数据的丢失。

在 <ruby> 软件源 <rt>  Software Sources </rt></ruby> 工具中，禁用附加的存储库、禁用 PPA 。

![Disable Ppa Mint Upgrade](/data/attachment/album/202208/28/172924gytorv7kwktrkt4k.jpg)

你也可以在维护标签页中 **降级** ，**移除可用的外部的软件包** 。

例如，我使用一个 PPA 来安装 Shutter 。我在禁用它的 PPA 后，现在该软件包会变成 “<ruby> 陌生的 <rt>  foreign </rt></ruby>”，因为来自存储库中可用版本会与来自 Mnit 存储库中可用版本不匹配。

![Foreign Package Linux Mint](/data/attachment/album/202208/28/172924ik6e4fhhwyavnkyv.jpg)

#### 步骤 6: 安装升级工具

现在，你的系统已经更新，你已经准备好升级到 Linux Mint 20 。Linux Mint 开发团队提供一个名称为 [mintupgrade](https://github.com/linuxmint/mintupgrade/blob/master/usr/bin/mintupgrade) 的命令行工具，其唯一的目的是将 Linux Mint 19.3 升级到 Linux Mint 20 。

你可用使用下面的命令来安装这个工具：

```
sudo apt install mintupgrade

```

#### 步骤 7: 运行一次升级设备健康检查

`mintupgrade` 工具将会让你通过模拟升级的初始化部分来运行一次设备健康检查。

你可以运行这次检查来查看对你的系统做出何种更改，哪些软件包将会升级。它也将会显示不能升级和必须移除的软件包。

```
mintupgrade check

```

在这里，它不会在你的系统上做出任何真正的更改（即使感觉上它正在进行做一些更改）。

这一步骤是非常重要的，有助于准确评估出你的系统是否可以升级到 Mint 20 。

![Mint Upgrade Check](/data/attachment/album/202208/28/172924wwk5idnwzmlbhdch.jpg)

如果这一步骤中途失败，输入 `mintupgrade restore-sources` 来返回到你原始的 APT 配置。

#### 步骤 8: 下载软件包升级

在你对 `mintupgrade`` 的检查输出感到满意后，你可以下载 Mint 20 升级软件包。

取决于你的互联网连接速度，它可能会在下载这些升级方面消耗一些时间。确保你的硬件系统接通到强电电源。

在软件包的下载期间，你可以继续使用你的系统进行常规工作。

```
mintupgrade download

```

![Mint 20 Upgrade Download](/data/attachment/album/202208/28/172924prueyub2772jrqpp.jpg)

注意，这行命令将把你的操作系统指向 Linux Mint 20 存储库。在使用这行命令后，如果你想降级到 Linux Mint 19.3 ，你仍然可以使用命令 `mintupgrade restore-sources` 来做到。

#### 步骤 9: 安装升级 [不可回退]

现在，万事俱备，你可以使用这行命令来升级到 Linux Mint 20 ：

```
mintupgrade upgrade

```

给它一些时间来安装新的软件包和升级你的 Mint 到相对较新的版本。在升级过程完成后，它将要求你重新启动。

![Linux Mint 20 Upgrade Finish](/data/attachment/album/202208/28/172924dsksx76hyjjrse9r.jpg)

#### 享受 Linux Mint 20

在你重新启动你的系统后，你将看到 Mint 20 欢迎屏幕。享受新的版本。

![Welcome To Linux Mint 20](/data/attachment/album/202208/28/172925vfsyfy6xwwd8sfyd.jpg)

### 从 Mint 18 升级到 Mint 19

从 Linux Mint 18.3 升级到 Linux Mint 19 的步骤与你在升级到 Linux Mint 20 中所看到的步骤非常类似。唯一的变化是检查显示管理器。

我将在这里快速地提及这些步骤。如果你想要更多的信息，你可以参考 Mint 20 升级过程。

**步骤 1：** 使用 Timeshift 创建一个系统快照 [可选，但是建议]

**步骤 2：** 在一块外部的磁盘上备份你的文件 [可选，但是建议]

**步骤 3：** 确保你正在使用 LightDM

对于 Mint 19 ，你必须使用 [LightDM 显示管理器](https://wiki.archlinux.org/index.php/LightDM) 。为检查你正在使用哪种显示管理器，输入命令：

```
cat /etc/X11/default-display-manager

```

如果结果是 `/usr/sbin/lightdm`，那么你就有 LightDM ，你就可以继续前进了。

![LightDM Display Manager in Linux Mint](/data/attachment/album/202208/28/172925o186q5q4s2kfj51u.jpg)

在另一个方面，如果结果是 `/usr/sbin/mdm`，你需要安装 LightDM ，[切换到 LightDM](https://itsfoss.com/switch-gdm-and-lightdm-in-ubuntu-14-04/) 并移除 MDM 。使用这行命令来安装 LightDM ：

```
apt install lightdm lightdm-settings slick-greeter

```

在安装期间，它将要求你选择显示管理器。你需要选择 LightDM 。

在你设置 LightDM 作为你的显示管理器后，使用下面这些命令来移除 MDM 并重新启动：

```
apt remove --purge mdm mint-mdm-themes*
sudo dpkg-reconfigure lightdm
sudo reboot

```

**步骤 4: 通过安装一些可用的更新来更新你的系统**

```
sudo apt update && sudo apt upgrade -y

```

**步骤 5: 安装升级工具**

```
sudo apt install mintupgrade

```

**步骤 6: 检查升级**

```
mintupgrade check

```

**步骤 7: 下载软件包升级**

```
mintupgrade download

```

**步骤 8: 应用升级**

```
mintupgrade upgrade

```

享受 Linux Mint 19 。

### 你升级到 Linux Mint 21 了吗？

升级到 Linux Mint 20 可能不会是一种友好的体验，但是，使用新的专用 GUI 升级工具来升级到 Mint 21 变得简单多了。

我希望你发现这篇教程有帮助。你是选择升级到 Linux Mint 21 ？还是现在一次全新的安装？

如果你遇到一些重要问题，或者你有一些关于升级过程的问题，请在评论区随时询问。

---

via: <https://itsfoss.com/upgrade-linux-mint-version/>

作者：[Abhishek Prakash](https://itsfoss.com/) 选题：[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/) 荣誉推出


Linux 优先的 AI 图像提升器 Upscayl 发布了第一个版本

Summary: 你不是每天都能遇到一个采用 “Linux 优先” 方式的应用程序。

Windows 和 macOS 已经支持了。

你不是每天都能遇到一个采用 “Linux 优先” 方式的应用程序。

>
> 你不是每天都能遇到一个采用 “Linux 优先” 方式的应用程序。
>
>
>

![Linux-First AI Image Upscaler Upscayl Released its First Version](/data/attachment/album/202208/28/180226jam8sfflyysfqzmq.png)

你是不是有一张世纪初的像素化、低分辨率的图片？由于人工智能的进步，你可以轻松地将像素化的图像提升为分辨率更好的图像。

使用普通的图像编辑器需要人工的努力来提升图像。

有大量的在线人工智能图像提升器，但是你不能信任它们对你的数据的处理。

一个新的项目试图解决这个问题，为你提供一个简单的桌面应用程序，让你在一次点击中增强低分辨率照片。

它的第一个版本已经发布。

### Upscayl 的功能

[Upscayl](https://github.com/TGS963/upscayl) 是一个跨平台的应用程序，以 Linux 优先的理念构建。

这仅仅意味着 Linux 的构建得到优先考虑，但其他平台也会得到支持。

Upscayl 使用 Python 和 JavaScript 开发，给出了一个简单的界面，你可以选择输入图片和输出文件夹，然后点击 “Upscayl” 按钮来增强图片。

### 使用 Upscayl

我的电脑上没有太多模糊的照片。并不是说我是一个优秀的摄影师，只是懒得在成千上万的照片中寻找它们。

不过，我还是设法弄到了一张 2011 年的模糊的老照片（那是 11 年前的照片，现在可以说是老照片了）。

![厨房的模糊老照片](/data/attachment/album/202208/28/180227owm665vhv54qzv5q.jpg)

不要因为我随手拍了一张厨房柜台的照片而对我做出评价。一定有一个很好的理由（或者我觉得）。

无论如何。我试着用 Upscayl 对图片进行放大。

![使用 Upscayl](/data/attachment/album/202208/28/180228dszomezhesbqrv2e.png)

这需要相当大的处理能力，但我的 8 核、第 11 代 i7 处理器和 16GB 内存可以轻松应对。

![Upscayl 工作时 CPU 的使用情况](/data/attachment/album/202208/28/180229hq01bq0ntxtut10w.png)

单张图片的处理花了大约 4 分钟，435KB 的图片最终变成了 24MB 的图片。说实话，我几乎没有注意到明显的差异。

![由 Upscayl 放大的图像](/data/attachment/album/202208/28/180230xn9qe9fqyyomewf6.png)

我想把最后的结果嵌入这里的文章中。但是上传一张 24MB 的图片对我的服务器和你的浏览器来说都有点过分。

### 安装 Upscayl

不过，我这个不怎么成功的实验不应该阻止你自己去尝试它。

目前，该应用程序可用于 Linux。对 Windows 和 macOS 的支持正在计划中。

你可以得到 Upscayl 的 AppImage 和 Flatpak 软件包。我使用的是 AppImage 版本，你可以使用你喜欢的任何一种。

这些文件可以在发布页面上找到。

>
> **[下载 Upscayl](https://github.com/TGS963/upscayl/releases)**
>
>
>

如果你喜欢这个项目，别忘了在 GitHub 上给它加星。

>
> **[GitHub - TGS963/upscayl](https://github.com/TGS963/upscayl)**
>
>
>

---

via: <https://news.itsfoss.com/upscayl-version-1-release/>

作者：[Abhishek](https://news.itsfoss.com/author/abhishek/) 选题：[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/) 荣誉推出


硬核观察 #742 Debian 考虑改变其处理非自由固件的方式

Summary: • Debian 考虑改变其处理非自由固件的方式 • 数万个 WordPress 网站使用了恶意插件 • GIMP 2.99.12 发布：“迈向 GIMP 3.0 的巨大里程碑”

2022-07-29 07:51 《Debian 可能会考虑在官方版本中包含非自由固件》<br />
linux.cn/article-14873-1.html

are you kidding me? GIMP 3.0 是基于 GTK3 的，2020-11-06 发布的开发版 (2.99.2) 明确说了基于 GTK3。

gimp.org/news/2020/11/06/gimp-2-99-2-released

最新的开发版编译时无需依赖 GTK2。

![](/data/attachment/album/202208/28/193458ordbrshguvcbmvxa.jpg)

![](/data/attachment/album/202208/28/193508zz1fnr5xnd5d1c2n.jpg)

### Debian 考虑改变其处理非自由固件的方式

Debian 目前在其系统上默认不加载非自由固件，“即使这意味着，没有这些二进制组件就没有硬件支持/加速能力。不加载非自由固件也可能意味着错过安全更新或解决可用性问题。”现在，Debian 社区正在讨论关于未来如何处理非自由固件的不同做法，包括默认提供并启用非自由固件，取代现有镜像或增加新的带非自由固件的镜像等等。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Debian-Non-Free-Firmware-GR)**
>
>
>

>
> 老王点评：终于，连对“自由”非常固执的 Debian 也只能向现实“低头”了。
>
>
>

![](/data/attachment/album/202208/28/193521lj7n07qmp5d3nd8q.png)

### 数万个 WordPress 网站使用了恶意插件

研究人员在 24931 个 WordPress 网站上发现了 47337 个恶意插件，每一个被攻击的网站都有两个或更多被感染的插件。而且，这些插件中有 94% 仍在积极地感染新的网站。研究还发现，这些恶意插件要么是在公开市场上出售的，要么是从盗版网站上传播的，通过利用漏洞注入网站，或者在大多数情况下，在插件被添加到网站后被感染。恶意软件会攻击网站上的其他插件来传播感染，他们的数据集中有超过 4 万个插件被证明是在部署后感染的。

>
> **[消息来源：Gatech](https://www.cc.gatech.edu/news/eight-year-study-shows-dark-side-wordpress-plugins)**
>
>
>

>
> 老王点评：通过插件的互相传染，所以，不要轻易下载任何不可靠的插件，尤其是盗版的。
>
>
>

![](/data/attachment/album/202208/28/193534lsue6tfl3nat7uul.jpg)

### GIMP 2.99.12 发布：“迈向 GIMP 3.0 的巨大里程碑”

GIMP 2.99.12 今天发布，它自我描述为“迈向 GIMP 3.0 的一个巨大里程碑。许多缺失的部分正在整合，尽管它仍然是一项正在进行的工作。”

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/GIMP-2.99.12-Released)**
>
>
>

>
> 老王点评：为什么专门提到这条，是因为前两天 RHEL 10 计划放弃对 GTK2 的支持，我们提到，等待了很久的 GIMP 3.0 依旧是基于 GTK2 的。
>
>
>


如何在 Linux 中更改 GRUB 主题

Summary: 在 Linux 中安装和应用现代的漂亮的 GRUB 主题。

在 Linux 中安装和应用现代的漂亮的 GRUB 主题。

![](/data/attachment/album/202208/29/114710py8bi78opi2t7oop.jpg)

>
> 在 Linux 中安装和应用现代的漂亮的 GRUB 主题。
>
>
>

**GRUB** ，意即 <ruby> 大统一引导程序 <rt>  GRand Unified Bootloader </rt></ruby> ，它是大多数 Linux 操作系统的默认引导加载程序。GRUB 引导加载程序是计算机启动时运行的第一个程序。正如你可能注意到的，GRUB 菜单的默认主题是朴素的。它只有一个黑色的背景和一些白色的字符。你们中的一些人可能不喜欢默认的 GRUB 主题。在这篇教程中，我将演示如何 **更改 GRUB 主题** 或应用华丽的主题，以使你的 GRUB 菜单在 Linux 中更加精美。

数年前，我们发布了一篇指南，阐释了如何在 Ubuntu 中 [配置 GRUB2 引导加载程序设置](https://ostechnix.com/configure-grub-2-boot-loader-settings-ubuntu-16-04/) 。在这篇文章中，我们将向你展示如何更改 GRUB 背景。

但是，只更改背景不是真正的自定义。在这篇指南中，我们不仅会更改壁纸，也会更改 GRUB 的字体、主题和整体的设计。

>
> **免责声明：** 安装 GRUB 主题可能会破坏你的系统。我强烈建议你在一个虚拟机中尝试和测试一个主题来查看它是否没有正常工作。然后再在实际的系统上安装主题。
>
>
>

### 介绍

在互联网上可以找到很多社区开发的 GRUB 主题。然而，它们却散落在不同的网站上。因此，找到一个好的 GRUB 主题可能会事倍功半。

GRUB 主题的一个重要的贡献者是 **Pling** 网站。但是，Pling 中的大部分主题是非常简单的或过时的。

幸运的是，我遇到一个名称为 **Gorgeous GRUB** 的项目，它是一个可以找到各种精美的 GRUB 主题的地方。相信我，作者付出了巨大的努力来收集这些主题，肯定会你喜欢的主题。

### Gorgeous GRUB：一个可以找到很棒的 GRUB 主题的地方

**Gorgeous GRUB** 是一个由不同用户所创建的质量上乘的 GRUB 社区主题的收藏集合。这个项目的开发者从 **Pling** 、**/r/unixporn** 和其它很多的论坛中手工挑选漂亮的 GRUB 主题，并将它们放置到一起，以便用户可以很容易的浏览它们。

如上所述，在 Pling 中的很多主题都是粗糙和过时的。Gorgeous GRUB 的作者翻遍了 Pling 和其它一些论坛的整个 GRUB 部分，并将所有令人满意的 GRUB 主题放置到一个地方。

它们不是一些粗制滥造的主题。他们付出了大量的努力来将定制的背景、字体和颜色等融合在一起。

请注意，Gorgeous GRUB 并不是一个安装你最喜欢的 GRUB 主题的应用程序。它只是一个良好工作的 GRUB 主题的展览列表。

这个项目托管在 GitHub 中。如果你有一些很酷的 GRUB 主题，你也可以将其添加到 Gorgeous GRUB 主题列表之中。

### 如何更改 GRUB 主题

应用或更改 GRUB 主题并不难。

转到 [Gorgeous GRUB 的 GitHub 网页](https://github.com/jacksaur/Gorgeous-GRUB) ，单击任意你想要应用的主题的标题。接下来，你将会被带到该主题的实际主页。一些主题托管在 **Pling** 之中，一些主题托管在 **GitHub** 之中。我将会看看如何安装来自 Pling 或 GitHub 的 GRUB 主题。

首先，让我们看看如何应用 “Descent” 主题，它托管在 Pling 中。

#### 1、从 Pling 安装 GRUB 主题

如果主题托管在 Pling 网站，遵循这些操作说明。

在主题主页，单击 <ruby> 文件 <rt>  Files </rt></ruby> 标签页。你将会在图像预览的下方找到这个标签页。单击文件链接来下载它。

![Download GRUB Theme From Pling](/data/attachment/album/202208/29/114727duysyczelkezfu5l.png)

转到下载位置并提取存档文件：

```
$ tar xzf 173860-20150926\ descent.tar.gz

```

存档文件的内容将被提取到当前工作目录中一个名称为 `descent` 目录中。

使用下面的命令复制 `descent` 目录到 `/boot/grub/themes/` 目录：

```
$ sudo cp -r descent/ /boot/grub/themes/

```

如果 `themes` 目录不存在，只需要创建它：

```
$ sudo mkdir /boot/grub/themes

```

并给 `themes` 目录分配适当的权限：

```
$ sudo chown $USER /boot/grub/themes/

```

接下来，如上所述复制 `descent` 目录中内容到 `themes` 目录。

现在，你应该在 `themes` 目录中有一个以主题名称命名的文件夹：

```
$ ls /boot/grub/themes/
descent

```

并且，这个主题文件夹（例如 `descent`）应该包含 `theme.txt` 和该主题附带的其它一些相关的文件（例如，背景图像、自定义文件）。

```
$ ls /boot/grub/themes/descent/
background1280x800.png    descent_score_14.pf2  menu_ne.png  menu_s.png         progresshigh_c.png  scrollframe_c.png   scroll_thumb_n.png
background_original.jpg   descent_score_18.pf2  menu_n.png   menu_sw.png        progresshigh_e.png  scrollframe_n.png   scroll_thumb_s.png
copyright                 menu_c.png            menu_nw.png  menu_w.png         progresshigh_w.png  scrollframe_s.png   select_os.png
descent_logo_bold_18.pf2  menu_e.png            menu_se.png  progressbar_c.png  readme              scroll_thumb_c.png  theme.txt

```

在复制下载的主题到 `/boot/grub/themes/` 目录后，编辑 `/etc/default/grub` 文件：

在进行任意更改前，请备份 `grub` 文件，以防万一：

```
$ sudo cp /etc/default/grub /etc/default/grub.bak

```

现在，使用你喜欢的编辑器编辑文件：

```
$ sudo nano /etc/default/grub

```

找到 `GRUB_THEME=` 代码行，并添加路径到你想要使用的主题的 `theme.txt` 。并且，也要取消 `GRUB_GFXMODE=` 代码行的注释，输入背景图像的分辨率。通常，背景图像的文件名称包含其分辨率（例如 `background1280x800.png`）。

```
[...]
GRUB_THEME=/boot/grub/themes/descent/theme.txt
GRUB_GFXMODE=1280x800
[...]

```

![Enter Theme Txt File Path And Background Image Resolution](/data/attachment/album/202208/29/114728lwmzaljjofm2mt8l.png)

再强调一次，如果这些代码行不存在，简单地添加它们。按下 `CTRL+O` 组合键 和 `CTRL+X` 组合键（LCTT 校注：这是 nano 中的快捷键，如果你使用 Vi/Vim，请使用相应的快捷键）来保持更改并关闭文件。

现在，应用更改到 GRUB ，使用命令：

```
$ sudo update-grub

```

示例输出：

```
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found theme: /boot/grub/themes/descent/theme.txt
Found linux image: /boot/vmlinuz-5.15.0-41-generic
Found initrd image: /boot/initrd.img-5.15.0-41-generic
Found linux image: /boot/vmlinuz-5.15.0-39-generic
Found initrd image: /boot/initrd.img-5.15.0-39-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done

```

![Update GRUB](/data/attachment/album/202208/29/114728lon3fa6iai5fozoa.png)

如果你是在基于 RPM 的系统上（例如 Fedora），运行下面的命令来更新 GRUB ：

```
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg instead

```

重新启动你的系统。你就会看到更新后的 GRUB 主题。如果 GRUB 菜单没有出现。在打开硬件系统的电源时，立即按下 `ESC` 按键，直到启动菜单出现。

这是我的 Ubuntu 22.04 LTS 桌面的默认 GRUB 菜单。

![Ubuntu Default Grub Menu](/data/attachment/album/202208/29/114729f03t4ioxt6z06sob.png)

这是更新后的带有复古主题的 GRUB 菜单。

![Updated GRUB Menu With Descent Theme](/data/attachment/album/202208/29/114730ltuv419vv7qv1wws.png)

很酷，是吧？

##### 移除 GRUB 主题

为移除一个主题，简单地删除主题文件夹：

```
$ sudo rm -fr /boot/grub/themes/descent/

```

接下来，编辑 `/etc/default/grub` 文件：

```
$ sudo nano /etc/default/grub

```

移除下面的代码行：

```
[...]
GRUB_THEME=/boot/grub/themes/descent/theme.txt
GRUB_GFXMODE=1280x800
[...]

```

保存文件并关闭它。

最后，应用更改到 GRUB ，并重新启动你的系统：

```
$ sudo update-grub

```

```
$ sudo reboot

```

#### 2、从 GitHub 安装 GRUB 主题

如果一个 GRUB 主题托管在 GitHub 中，它很可能有安装程序脚本和卸载程序脚本。让我们以 [Modern GRUB Themes](https://github.com/vinceliuice/grub2-themes) 为例。它托管在 GitHub 中。

使用 Git 复刻项目的 GitHub 存储库：

```
$ git clone https://github.com/vinceliuice/grub2-themes.git

```

转到项目的文件夹：

```
$ cd grub2-themes/

```

运行安装程序脚本：

```
$ sudo ./install.sh

```

选择你喜欢的 GRUB 主题背景（例如 tela）。

![Choose GRUB Theme Background](/data/attachment/album/202208/29/114730thygoalstyaswsta.png)

选择图标样式：

![Choose Icon Style](/data/attachment/album/202208/29/114731kuz33vhhihhsvuvh.png)

选择你的显示分辨率。

![Choose Display Resolution](/data/attachment/album/202208/29/114732t7h0q7e5haq86lzv.png)

现在选择将会安装和应用的 GRUB 主题。

```
Checking for the existence of themes directory...

 Installing tela color 1080p theme...

 Setting tela as default...

 Updating grub config...

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/tela/theme.txt
Found linux image: /boot/vmlinuz-5.15.0-41-generic
Found initrd image: /boot/initrd.img-5.15.0-41-generic
Found linux image: /boot/vmlinuz-5.15.0-39-generic
Found initrd image: /boot/initrd.img-5.15.0-39-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done

 * All done!

 * At the next restart of your computer you will see your new Grub theme: 'tela'

```

![Install Tela Modern Grub Theme](/data/attachment/album/202208/29/114733lfuyjbjfx7f4ujab.png)

重新启动你的系统来查看更改。

![Tela GRUB Theme](/data/attachment/album/202208/29/114734jl7zxee7bj3c7lbj.png)

这是一个漂亮的 GRUB 主题，前所未见。

你也可以明确地给定主题的名称和屏幕分辨率，像下面一样。

```
$ sudo ./install.sh -t whitesur -s 1080p

```

这将应用一个名称为 “Whitesur” 的主题，使用 1080p 屏幕分辨率。你可能会提及到其它的分辨率，例如 `2k` 、`4k` 、超宽（`ultrawide`）、超宽 2k（`ultrawide2k`） 。如果你不提及分辨率，将默认采用 `1080p` 。

安装 Tela 主题到 `/boot/grub/themes` 文件夹：

```
$ sudo ./install.sh -b -t whitesur

```

重新启动你的系统来查看更改。

![Whitesur GRUB Theme](/data/attachment/album/202208/29/114735zw2riu8f18522f1q.png)

##### 移除 GRUB 主题

为移除已安装的一个主题，转到项目的复刻目录：

```
$ cd grub2-themes/

```

随后，运行：

```
$ sudo ./install.sh -r -t tela

```

使用你已安装的主题的名称来替换 `tela` 。

请注意，每个主题的安装说明可能有所不同。详细地参考每个项目的 GitHub 页面，并相应地安装主题。

### 总结

有些人喜欢使用艺术化的 Linux 发行版。他们以美化其 Linux 发行版而感到高兴和自豪。如果你是他们中的一员，你可以看看 Gorgeous GRUB 项目来美化你的 GRUB 菜单。

转到 Gorgeous GRUB 主题网站，从列表中选择你最喜欢的主题，并按照每个项目的主页说明来安装和应用 GRUB 主题。

### 资源

>
> **[Gorgeous GRUB 的 GitHub 存储库](https://github.com/jacksaur/Gorgeous-GRUB)**
>
>
>

---

via: <https://ostechnix.com/change-grub-theme-in-linux/>

作者：[sk](https://ostechnix.com/author/sk/) 选题：[lkxed](https://github.com/lkxed) 译者：[robsean](https://github.com/robsean) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


Wii U 模拟器 Cemu 走向开源对仿真技术意义重大

![](/data/attachment/album/202208/29/152146nvs93gzs720ftfy8.jpg)

Wii U 模拟器 Cemu 的开发者上周二宣布了一个重要的 2.0 版本发布，首次交付了 Linux 上的二进制文件，并开源了他们八年的成果。Cemu 是一个 Wii U 模拟器，并于 2017 年创造了历史 —— 每个月可以通过 Patreon 获得支持其发展的数千美元赞助。Cemu 以其在 Patreon 上曾短暂达到 25,000 美元的最高收入而为人所知，这引起了人们对“仿真是否道德”的关注，特别是它被用来换取金钱，而项目却是“闭源的”而不是“开源”的 —— 也就是说源代码没有向公众开放。

仿真社区保护自己免受法律诉讼的主要方式之一是向公众提供其源代码，允许像任天堂这样的“诉讼公司”检查它，并验证在反向工程过程中没有使用他们的专有代码。

据 Exzap 称，Cemu 对 Linux 的支持“仍然相当粗糙”，但他相信随着更多的模拟器开发者熟悉 Cemu，并开始为该项目做出贡献，这种情况将迅速改变。Cemu 以前只兼容 Windows，但现在支持 Linux，可以在 Steam Deck 上快速安装。在 Cemu 引入 Flatpak 支持一键安装之前，在 Deck 上使用它并不那么简单，不过这个话题已经在 GitHub 上讨论过了。

Cemu 的作者利用 2.0 发布公告简要地讨论了该模拟器的历史；在该模拟器的大部分历史中，他们是唯一的开发者，他们声称过去两年对项目的压力特别大。

Exzap 将继续做出贡献，但预计拥有其他开发者将有助于创建几个重要的功能，如暂停和恢复仿真的能力，以及提高在旧硬件上的性能。

“我已经在 Cemu 上工作了近 8 年，看着这个项目从一个似乎不可行的实验，发展到在其高峰期有超过一百万人使用的东西，”Exzap 在上周二的公告中写道，“即使在今天，当 Wii U 已经被大部分人遗忘的时候，我们每个月仍然有 25 万次下载。仍然有这么多人在用 Cemu 享受 Wii U 游戏，我将永远感激让我有机会以积极的方式影响这么多人的生活，哪怕只是一丁点。”

---

via: <https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/>

作者：[Laveesh Kocher](https://www.opensourceforu.com/author/laveesh-kocher/) 选题：[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/) 荣誉推出


硬核观察 #743 微软发行的“最重”的软件重逾 18 公斤

Summary: • 微软发行的“最重”的软件重逾 18 公斤 • 谷歌开源识别各种加密产品漏洞的 Paranoid • Ubuntu 22.10 禁用 GNOME 43 中的设备安全提示功能

![](/data/attachment/album/202208/29/164641gqjhphw7cmms52jm.jpg)

![](/data/attachment/album/202208/29/164647ntovxwrshjnolkfp.jpg)

### 微软发行的“最重”的软件重逾 18 公斤

在互联网并不发达的时候，软件的分发主要依赖于软盘或者 CD，并且其中会附有详细的纸质文档，这些文档可以达到数千页，因此导致软件非常重。据微软披露，它至今发行的最大软件是 1992 年发行的 Microsoft C/C++ 编译器及 Windows SDK，重逾 18 公斤，该软件放在一个长度超过 60 厘米的盒子里。

>
> **[消息来源：PCMag](https://www.pcmag.com/news/microsofts-largest-piece-of-software-weighed-more-than-40-pounds)**
>
>
>

>
> 老王点评：这软件果然“重量级”。不过现在的软件都没有了介质，你是否“拥有”一个软件有时候并不确定，比如说云软件、订阅软件。还真是怀念当年计算机爱好者们背着几盒软盘彼此交流的时候。
>
>
>

![](/data/attachment/album/202208/29/164659q2jdsww1224qzxx2.jpg)

### 谷歌开源识别各种加密产品漏洞的 Paranoid

[Paranoid](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fgoogle%2Fparanoid_crypto) 项目可以检测任意加密产品，甚至包括那些源代码没有公开的系统生成的加密产品。它支持测试数字签名、通用伪随机数和公钥等多种类型的加密产品，可以识别由编程错误或使用弱专有随机数生成器引起的问题。谷歌使用 Paranoid 从证书透明度项目中检查了超过 70 亿个证书的加密产品，并发现了数千个受到严重和高严重性 RSA 公钥漏洞影响的项目。

>
> **[消息来源：谷歌](https://security.googleblog.com/2022/08/announcing-open-sourcing-of-paranoids.html)**
>
>
>

>
> 老王点评：这让我想起来前两天现代汽车中使用硬编码的示例密钥进行加密的事情，要是经过了 Paranoid 的检查，想必不会出现这种低级错误了吧。
>
>
>

![](/data/attachment/album/202208/29/165104rtqbsibcqmfri2lu.jpg)

### Ubuntu 22.10 禁用 GNOME 43 中的设备安全提示功能

GNOME 43 中提供了一个“设备安全”提示功能，可以对是否启用了安全启动、TPM 等设备安全功能给出警告。正在开发中的 Ubuntu 22.10 会采用 GNOME 43，但开发者表示将先禁用这个“设备安全”提示功能。这是因为要获得最高的安全级别 3 需要英特尔 BootGuard、TPM 重建、IOMMU 保护、启动前 DMA 保护、英特尔 CET、暂停到闲置、加密内存等功能，而 Ubuntu 22.10 目前只能达到安全级别 1。甚至如果用户试图调整系统达到更高的安全性，也可能会破坏系统。因此，Ubuntu 可能会在以后才支持该功能。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Ubuntu-No-GNOME-Device-Security)**
>
>
>

>
> 老王点评：虽然说过于理想化的安全设置可能不切实际，但是这些安全功能可以在现代的 Windows 上正常运行，而在 Ubuntu 上却无法很好的工作。这说明，虽然我们觉得 Windows 安全性不好，但是很可能实际上并非如此 —— 只是用的人多罢了。
>
>
>


如何列出连接到 Linux 系统的 USB 设备

Summary: 我将向你展示可用于列出连接到系统的 USB 设备的各种工具和命令。

我将向你展示可用于列出连接到系统的 USB 设备的各种工具和命令。

![](/data/attachment/album/202208/30/094927nu106ijzz0iiiwj1.jpg)

你如何列出 Linux 中的 USB 设备？

这个问题可以有两种含义。

* 你的系统上有（检测到）多少个 USB 端口？
* 系统安装（插入）了多少个 USB 设备/磁盘？

大多数情况下，人们有兴趣了解哪些 USB 设备连接到系统。这可能有助于对 USB 设备进行故障排除。

最可靠的方法是使用这个命令：

```
lsusb

```

它显示了网络摄像头、蓝牙和以太网端口以及 USB 端口和挂载的 USB 驱动器。

![list usb with lsusb command linux](/data/attachment/album/202208/30/094930wejj6vcjyvyjilis.png)

但是理解 `lsusb` 的输出并不容易，当你只想查看和访问已挂载的 USB 驱动器时，你可能不需要那么复杂。

我将向你展示可用于列出连接到系统的 USB 设备的各种工具和命令。

除非另有说明，在我的例子中连接了一个 2GB 的 U 盘、1TB 的外置硬盘、通过 MTP 连接的 Android 智能手机，以及 USB 鼠标。

让我从桌面用户最简单的选项开始。

### 以图形方式检查连接的 USB 设备

你的发行版的文件管理器可以用来查看连接到你的计算机的 USB 存储设备。正如你在下面的 Nautilus（GNOME 文件管理器）的截图中看到的那样。

连接的设备显示在边栏中（此处仅显示 USB 存储设备）。

![Nautilus showing connected USB devices](/data/attachment/album/202208/30/094930o6ndrdittnttomzx.png)

你还可以使用 GNOME “<ruby> 磁盘 <rt>  Disks </rt></ruby>” 或 Gparted 等 GUI 应用来查看、格式化和分区连接到计算机的 USB 存储设备。默认情况下，大多数使用 GNOME 桌面环境的发行版都预装了 GNOME “磁盘”。

这个应用也可以用作一个非常好的 [分区管理器](https://itsfoss.com/partition-managers-linux/)。

![Use GNOME Disks to list mounted USB devices](/data/attachment/album/202208/30/094930p9i9xri9cn99dtid.png)

图形工具足够了。让我们讨论可用于列出 USB 设备的命令。

### 使用 mount 命令列出挂载的 USB 设备

`mount` 命令用于挂载 Linux 中的分区。你还可以使用相同的命令列出 USB 存储设备。

通常，USB 存储挂载在 `media` 目录中。因此，在媒体上过滤 `mount` 命令的输出将为你提供所需的结果。

```
mount | grep media

```

![](/data/attachment/album/202208/30/094931lde2vsruwpzjesuv.png)

### 使用 df 命令

[df 命令](https://linuxhandbook.com/df-command/) 是一个标准的 UNIX 命令，用于了解可用磁盘空间的大小。你还可以使用此命令列出已连接的 USB 存储设备。

```
df -Th | grep media

```

![Use df command to list mounted USB drives](/data/attachment/album/202208/30/094931d5025u2gnlka22k2.png)

### 使用 lsblk 命令

`lsblk` 命令用于列出终端中的块设备。因此，这里也通过过滤包含 `media` 关键字的输出，你可以获得所需的结果，如下面的截图所示。

```
lsblk | grep media

```

![Using lsblk to list connected USb devicesUsing blkid to list connected USb devices](/data/attachment/album/202208/30/094931y8q1d8v2ys8tl274.png)

如果你想知道，也可以使用 `blkid` 命令了解 UUID、标签、块大小等。

此命令提供更多输出，因为你的内部驱动器也被列出。因此，你必须参考上述命令来识别你希望了解的设备。

```
sudo blkid

```

![Using blkid to list connected USb devices](/data/attachment/album/202208/30/094931y8q1d8v2ys8tl274.png)

### 使用 fdisk

`fdisk` 是一款不错的老式命令行分区管理器，它还可以列出连接到你计算机的 USB 存储设备。这个命令的输出也很长。因此，通常连接的设备会列在底部，如下所示：

```
sudo fdisk -l

```

![Use fidsk to list usb devices](/data/attachment/album/202208/30/094932ig4vu49ds111gu36.png)

### 检查 /proc/mounts

通过检查 `/proc/mounts` 文件，你可以列出 USB 存储设备。如你所见，它向你显示了文件系统使用的挂载选项以及挂载点。

```
cat /proc/mounts | grep media

```

![](/data/attachment/album/202208/30/094932p2sogvggtgzswsga.png)

### 使用 lsusb 命令显示所有 USB 设备

我们重新审视有名的 `lsusb` 命令。

Linux 内核开发人员 [Greg Kroah-Hartman](https://en.wikipedia.org/wiki/Greg_Kroah-Hartman) 开发了这个方便的 [usbutils](https://github.com/gregkh/usbutils) 程序。这为我们提供了两个命令，即 `lsusb` 和 `usb-devices` 来列出 Linux 中的 USB 设备。

`lsusb` 命令列出系统中有关 USB 总线的所有信息。

```
lsusb

```

如你所见，此命令还显示了我已连接的鼠标和智能手机，这与其他命令（只能列出 USB 存储设备）不同。

![](/data/attachment/album/202208/30/094932c2230jsliyior2il.png)

第二个命令 `usb-devices` 提供了更多详细信息，但未能列出所有设备，如下所示。

```
usb-devices

```

![](/data/attachment/album/202208/30/094933lhlus4ucogha08hi.png)

Greg 还开发了一个名为 [usbview](https://github.com/gregkh/usbview) 的小型 GTK 应用。此应用向你显示连接到计算机的所有 USB 设备的列表。

该应用可在大多数 Linux 发行版的官方仓库中找到。你可以使用发行版的 [包管理器](https://itsfoss.com/package-manager/) 轻松安装 `usbview` 包。

安装后，你可以从应用菜单启动它。你可以选择任何列出的设备以获取详细信息，如下面的截图所示。

![](/data/attachment/album/202208/30/094933ez2m4pr6f22nz8mk.png)

### 总结

这里列出的大多数方法仅限于 USB 存储设备。只有两种方法可以列出其他外围设备； usbview 和 usbutils。 我想我们应该感谢 Linux 内核开发人员 Greg 开发了这些方便的工具。

我知道还有很多方法可以列出连接到系统的 USB 设备。 欢迎你提出建议。

---

via: <https://itsfoss.com/list-usb-devices-linux/>

作者：[Anuj Sharma](https://itsfoss.com/author/anuj/) 选题：[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/) 荣誉推出


中国操作系统到底有没有角力世界舞台的实力？

Summary: 如今国内开源操作系统遍地开花，我们到底有没有角力国际舞台的实力呢？

官话套话一大堆，坐井观天

来自江西南昌的 Chrome Mobile iOS 104.0|iOS 15.6 用户

一，“2022年4月13日起，GitHub 开始封锁受美国制裁公司的俄罗斯开发者账户。”<br />
二，“软硬件生态”

没戏阿，还没怎么搞就各种激活出来了，所谓生态也不是开发开源的新软件取代现有的，而是兼容win下的主流软件，那作为普通个人，我干吗不继续用win

来自211.91.60.61的 Chrome 105.0|GNU/Linux 用户

github国内就能正常浏览吗？这个还真不知道谁封谁，现在十次有一次能浏览就不错了

来自111.25.100.203的 Chrome Mobile 74.0|GNU/Linux 用户

对开发者而言不是问题

量；质。

主持人的一句，逐渐摆脱了对国际的依赖， 你是笑呢，还是笑呢？还是？

linux还有激活码？随便找个不需要激活的。实在不行自己lfs一个。

赞同

看到要激活，要吐了。

你好歹等有一定规模用户群再来整呀

赞同

看到要激活，要吐了。

你好歹等有一定规模用户群再来整呀

不会有戏，就uos安装完成后需要手机注册那一条，我就不会在搭理，在这deepin私改库文件，搞不兼容，就不会被linux世界接受

如今国内开源操作系统遍地开花，我们到底有没有角力国际舞台的实力呢？

![](/data/attachment/album/202208/30/173755f6h1493ixw6yjcl5.jpg)

操作系统是计算机的灵魂所在，更是现代社会数字经济转型的关键。随着国内科技力量的壮大，当出现如 CentOS 停服等机遇时，会进一步助推国内操作系统发展。如今国内开源操作系统遍地开花，我们到底有没有角力国际舞台的实力呢？在 2022 开放原子全球开源峰会上，讨论了“**中国操作系统到底有没有角力世界舞台的实力**”这一话题，以下为内容实录：

**本次圆桌主持人及嘉宾如下：**

>
> 王兴宇（主持人）：Linux 中国开源社区创始人
>
>
> 杨勇：龙蜥社区技术委员会主席、阿里云操作系统技术总监
>
>
> 杨继国：龙蜥社区理事、Intel 技术总监
>
>
> 王洪虎：龙蜥社区技术委员、龙芯中科操作系统研发总监
>
>
> 陈鲍孜：龙蜥社区技术委员、飞腾操作系统负责人
>
>
> 王戍靖：中科方德高级副总裁
>
>
>

![](/data/attachment/album/202208/30/172328gpvz30zpiynzzmpc.png)

*（图从左到右依次为：王兴宇、杨勇、王洪虎、杨继国、陈鲍孜、王戍靖）*

##### 王兴宇：

**如今国内的各个开源操作系统百花齐放，但是与国际厂商相比，大家认为我们目前的强项在哪里，弱项在哪里？**

##### 王戍靖：

近年来国内操作系统开源社区发展迅速，但发展时间短，与国际社区相比有一定差距。**操作系统社区基于大量基础技术**，包括芯片、编译、开发工具等基础技术领域，也包括大数据、人工智能、云计算等新兴技术方向，需要长期培育积累和技术创新。

**有利条件是中国开源处于快速发展阶段，中国开发者数量增长快**，据 GitHub 2021 年数据统计，中国开发者数量已增至 **700 多万**，排名全球第二，贡献了 **550 万**个开源项目；另外，我国数字经济转型升级推动信息产业持续增长，新兴技术领域也在迅速发展。以上都为国内开源操作系统社区发展提供了坚实的基础和动力。

##### 陈鲍孜：

从主导具体的开源项目看，国内操作系统社区的发展还是有欠缺的，毕竟我们参与的时间比较短。但国内的开发人员不管从数量还是活跃程度方面，在国际上即使不是最好的，也算处在了第一梯队之上。我和国外开发者进行过一些交流。他们有一个观点，即如果一个国家制造业强大，那么制造业就是做操作系统或者系统软件的动力。**从这个层面来看，我认为我们的潜力和需求动力并不比国际差**。

##### 杨继国：

中国现在的操作系统社区处于高速发展的时期，说到不足的地方，**第一点：**因为我们的发展时间没有那么久，所以缺乏创新积累。**一个操作系统社区能够长期发展的很重要的一点就是原创，需要有自己的特色。**中国有一个很大的优势就是开发者很多，对开源来说开发者是一个整个社区开源创新的基石。我看过相关报道，中国开源开发者从数量上来讲在世界上处于一个比较领先的地位，**我们怎么样把这些开发者转化成开源社区持续创新的动力**，这是很重要的一个问题，我觉得还需要时间。

**第二点：**国际上游社区对我们的影响。因为操作系统有上游和下游的关系，上游社区会带动一些科技的发展包括创新。同时下游社区不仅仅兼容上游的技术，很多时候也能反过来影响上游社区，像国际上大的厂商有能力能够去影响上游开源，**中国的操作系统开源社区也可以通过不断创新去扩大影响力**。因为我们有能源、电力、金融等各行各业的参与，有非常强而切实的需求，所以我相信我们能把这些需求的影响代入到上游社区。

##### 王洪虎：

我觉得这个问题应该从**两个方面来看**，首先，相对国外来说我们的时机和发展历程确实相对短一些，客观来讲确实存在一些差距。但是另一方面，我们也应该看到一些希望，比如今天演讲中讲到我们**提升了原创**的东西，国内的社区已经**具备这种创新能力**，**还不止是局部一个点**，而是各个层面都有。说明我们至少在有短板的前提下，在有差距的情况下也能够发现一些局部的创新。随着国内多元化市场的不断实践，在这个过程中会产生大量的创新基石和土壤。未来，我相信随着国内各行各业的蓬勃发展，我们在上游社区的声音和力量会越来越强大。

##### 杨勇：

我简单说一下观察到的一个现象，CNCF 中国人孵化的项目非常多，比如说国内 PingCAP 这样优秀的项目，包括阿里也有一些项目在 CNCF 中，包括像龙蜥社区参与的 Nydus 项目和 Confidential Containers 项目。**所以新的领域、新的机会、新的需求不断出现的时候，这是我们难得的机会，也是一个很好的突破点**。但在内核领域或者编译器等发展比较成熟的领域，我们的顶尖人才保有量确实是不够的，原因是历史积累造成的，因为过去这个产业基本上发展得不够，但是今天国内无论对芯片还是操作系统整体产业的投入是比前几年要大得多的。“板凳要坐十年冷的精神”要坚持下去，我认为新一代程序员会快速成长起来。

##### 王兴宇：

**感谢各位老师的发言，总结下来我们确实在有些地方还发展得比较慢，但是长处在于我们确实有大量的程序员，根据调查来看中国在 GitHub上的注册用户比例相当高。同样我们拥有更广阔的用户市场，就会有更多的行业需求，这样的发展趋势下我国的规模优势就会发挥出来。目前来看确实如几位老师所说，我们在尖端的项目上还缺少足够有影响力的话语权，但是现在已经在逐渐多点开花，多点释放，未来可期。**

##### 杨勇：

吸引国际厂商合作，我觉得对龙蜥社区来说是一个很大的命题。我们能看到龙蜥把芯片、云厂商、OSV 厂商等拉到一起去发生合作，最近又把服务器厂商拉了进来，实际上这是一个滚雪球的过程。这件事情本质上是需求和供给，合作的本质也是双赢，社区需要思考清楚几个问题**“****世界领先厂商加入到社区他想要获得什么，以及我们社区能给到什么**”，这是一个很重要的话题。我认为社区合作一方面要有自己的商业本质在里面，因为今天这个市场里的开发者以机构为主，以组织为主；另一方面是社区文化，社区还是要有一个比较开放透明的机制，整体社区的运作是非常开放平等的，这个很重要。**总结来说，第一点是内在的驱动力，第二点是阻力摩擦力小。**

##### 王洪虎：

从芯片角度讲，能够吸收国际厂商的参与，一方面需要对方对我们的创新感兴趣，并且从我们这儿能得到他想要得到的东西，这是吸引力。另外一方面，从龙芯角度讲，我们提供一个新的架构支持，这本身就是创造一个新的需求，要在龙蜥社区有支撑的架构，这里面方方面面的事情是非常多的。**随着将来龙蜥架构走向国际，自然会有更广范围的爱好者和机构参与**，这里面也会产生对国际爱好者开发者的需求。

##### 杨继国：

像龙蜥社区能吸引国际参与者保持比较强的兴趣，有几个方面原因，**第一个我们能继续保持透明、开放、公正的原则，这点是非常重要的**，无论从技术发展还是从社区的推广治理角度来说，这点是能保持和国际社区接轨，吸引众多人参与的重要原因。当然龙蜥社区做得非常好，第一次参加理事会就发现这个社区保持非常好的传统，一直发扬下去。

**第二点中国开发者的人群非常大**，我们希望通过努力能把更多的开发者吸引到社区里来，能保持这个社区的多样性，鼓励大家多多创新。

**第三点我想对于这个社区的开发者来说**，我们在做这个社区的开发包括架构设计，一定要有一个社区文化，比如在 Intel，我们在做架构设计的时候应该考虑到用户的架构设计应该能适应更多的架构，而且有更多的包容性，不仅仅只做芯片。对整个社区发展来说，更加中立更加有包容性的社区是很重要的，这一点我觉得是国际社区发展的成功关键，实际上能对中国社区也是如此。

##### 陈鲍孜：

我认为社区的发展，本质上在于参与社区的开发者解决自己的问题。**每一个社区项目都是由社区的开发者驱动。**开发者首先自己要能够长期地生存并发展下去。只有当社区开发者在解决自己问题，他才有源源不断的动力来维系这个项目。当社区开发者解决的自身问题是共性问题的时候，自然就能吸引到那些有着相同兴趣爱好或者相同诉求的人一起参与到这个项目里来。这时候，如果我们的**社区有比较好的机制、比较开放的文化、比较好的规则的话**，我认为无论开发者是来自国际还是国内，**社区自然会自发地运作起来**。实现这个目标，我觉得一方面是需要有过程，另一方面也取决于当前需要做的事情自身的难点和所解决的痛点，取决于当前事情是否具有普适性。从时间的角度，如果项目能做得足够长，那总有一天会解决大家共有的痛点，届时开发者自然会参与进来。

##### 王戍靖：

大家都提到**社区开放和公正**，这是运营社区的一个基础条件。一个开源社区能获得包括国际开源社区在内的各界广泛关注，我认为不仅在于社区自身影响力大，**SIG 组的技术创新方向的设立也是一个关键因素**。社区如果基于产业和市场需求，关注有哪些重要的技术问题亟需解决，主动引导、推进 SIG 组设立，这样参与社区的机构和个人会有内在驱动力去投入，为技术创新做贡献。

##### 王兴宇：

**感谢各位老师的意见分享。我觉得如何吸引国外的开源社区，国外的厂商参与我们，首先，固然我们要有开放包容的状态。其次，我们要更加的接纳国外开源社区人员的习惯，比如他们用的语言，我们是不是有更国际化的语言。最后，还有刚才王戍靖老师说的 SIG 组情况，我们一般把 SIG 翻译成“专门兴趣”，但是也有另外一种说法是“特别利益”，第二种说法这里面确实关乎他的利益，如果我们能给他提供关乎他利益的东西，他自然会参与。**

**除了要“请进来”还要“走出去”，中国的操作系统要有中国的特色，但也应该是一个国际的操作系统，不仅能满足国内的用户，而且也能满足东亚地区人群需求，甚至中欧地区人群需求。这种情况下，我们如何能让中国开源社区发展起来，具有国际影响力，并得到国际市场的欢迎呢？**

##### 王戍靖：

中国处于数字经济转型升级阶段，信息产业蓬勃发展，涌现了大量行业需求和市场空间，给国内操作系统开源社区提供了发展特定技术方向并引领技术发展的机遇。比如，**龙蜥社区定位在要打造云计算的原生生态社区**，以此为目标，**可以聚拢大批软硬件生态厂商，逐步形成社区特色、并推动形成有影响力的软硬件行业标准**，实现与国际相关标准接轨、兼容。随着中国开源社区持续发展，社区开源版本以及针对特定地区需求衍生的操作系统商业发行版在国内、国际市场上不断推广应用，中国操作系统开源社区在国内、国际上影响力会不断提升。

##### 陈鲍孜：

我觉得走出去这件事可分几步看。一方面，当社区吸引了足够多海外开发者时，它基本就能算走出去了。从另一个角度看，我们的衍生发行版是不是能走出去，**取决于我们衍生出来的发行版所在行业是不是能够有效地走出去。**我们所说的操作系统大多数时候是一个宽泛的概念。如果我们不专门讨论操作系统内核或者操作系统其他某个特定的技术模块时，操作系统更多时候是泛指支撑应用的载体。如果我们的应用能走出去，同时我们的衍生版本能够贴合应用场景，满足应用需求，那么届时我们的基础软件社区也就走出去了。

##### 杨继国：

我想我们中国的操作系统包括社区能走出去，我想有三点，**第一点我们要有自己的特色**，取代 CentOS 只是第一步，顺应环境的发展，本身社区要有自己的长远发展，包括操作系统的架构设计、能够解决一些痛点的业务等。

**第二点是生态**，因为国外生态和中国生态有很多不一样的地方，如果我们想走向国际舞台，很重要的一方面是要能吸引更多的国外厂商参与，比如 OSV，因为欧洲和美国都不一样，每个地区都有自己的 OSV 也好，SV 也好，包括 VEM，这些国际化厂商的生态伙伴的加入，对于国际化很重要，因为每一个生态伙伴都覆盖了相当大的范围，只不过是不同类型的。

**第三点与国际上游社区的紧密合作**，这个也是非常重要的一点。因为国家的科技发展对第三社区有很大的依赖性。

##### 王洪虎：

关于走出去，我想有三个方面要重点考虑，**第一要能走出去首先要具备走出去的能力**，第一个操作系统是社区发行版，这个发行版应该具备发行版所应该具备的基本能力，比如稳定性，因为我们做一个面向云计算的操作系统社区版，稳定性和长期维护性对用户来说是非常重要的一项。

**第二个方面我们要走出去，实际上要落实到一个一个的软件包，以一个的具体软件的形式走出去。**像刚才杨总讲地要往上游社区贡献相当多的自己的原创性的优化的补丁，自己原创性的软件，要走到国际性的像内核这样的社区去，随着这个进程走出去的软件包越来越多，自然发行版社区也就走出去了。走出去是为了要解决用户的需求，我们走出去用户发现没有任何作用，实际上也是走不出去的。我们走出去首先要考虑用户对我的需求是什么，用户的痛点是什么，比如 CentOS 停服全世界面临同样的问题，我们既然能在国内解决这个问题，国际上也能解决这个问题，从我们自己的发展来讲，我们能满足用户的需求能力。

**第三方面还要考虑刚才上一个话题里聊到的开放协作、创新、平等**，这正好也是龙蜥社区的理念，我们以这种理念走出去，世界才能接受我们。

##### 王兴宇：

**其实说起“走出去”的话题，我印象中比较深刻的就是龙芯，龙芯近一两年不断向上游向内核，比如向 GCC 提交自己的补丁，也得到了国际社区的认可，能支持、能理解、能看到你的东西，这是很好的。另外像王戍靖老师说的，我们确实要针对它的需求做下游的发行版，可能中国人对这方面的需求或者认知跟其他国家不一样，能不能给它做不同的下游发行版。**

**下面最后一个问题，对于如今中国开源操作系统市场大家又竞争又合作，这种情况称之为“竞合”，如何能开展良性竞争生态？**

##### 杨勇：

如果是没有竞争的市场，要么你是新进来的先驱者，要么这个市场里已经看不到机会了。我觉得有竞争不是坏事。国内操作系统的生态都是 Linux 的生态，大家在这个大的生态里面有一些共同的合作基础。我相信不管有多少社区，我们要做的事情是让我们的生态伙伴和开发者，以更低的成本接入到这个大的生态合作中来。**我认为龙蜥社区在合作方面将来要把标准和有利于大家共同利益的东西推到上游，或者变成一个行业标准**。这方面是一个非常的的合作机会。我认为因为云计算存在很多的不确定性，就必然带来竞争，竞争就带来大家高水平的成长和发展。在这种不确定性下我觉得多一种的竞争对整个产业是有利的，因为谁都不知道未来会演进向哪里。

##### 王洪虎：

竞争在各行各业都存在着，IT 行业尤其激烈，竞争可以使行业内取长补短，相互促进，假如说没有竞争会怎样，估计肯定不会发展到现在这个样子。

从龙蜥社区本身来讲，我们是一个技术社区，并不是一个商业组织，更多是从技术层面考虑问题。**怎么样解决技术层面能解决的问题，这是龙蜥社区要考虑的**，比如解决行业云计算领域或者 CentOS 停服这类的技术问题。从这个角度讲技术本身没有限定一家使用，刚才杨总讲的是提交到内核社区里的，我们龙芯也是提交到内核社区里的，提交出去之后并不是说这个补丁仅限于某个社区使用，其他不能使用，没有那么狭隘。再一个从龙芯开放协作的发展理念讲，我们发展竞争合作关系都是从局部来讲，但是在大的方向上我们在共同推进技术的进步，这是一个更大的格局。

##### 杨继国：

现在从中国的操作系统来看更多推动这个市场进一步扩大。因为我自己做操作系统做了二十几年，我们都是做这行做了很久，我们刚开始做这个行业的时候很多的工作，包括做了很多的开发也好，大家对技术管线没那么关注。现在突然赶上这个时期，行业的需求突然增加了，大家对操作系统、基础软件各行业关注非常大，我们在无论是互联网行业还是政企，还是运营商电信行业，操作系统处在非常快速的发展时期。有些标志就是会有投资公司给你递名片，说明资本已经关注这个行业，这个行业处在一个起飞的前沿。当下，我们社区应该怎么样把蛋糕做大，**能把 Linux 操作系统基础软件精准推广是重中之重。**回到竞争的话题，其实技术上永远有竞争，国际上也是这样的。从 Linux 的发展来看技术竞争，本质是共同推动技术的发展，以前技术受到时代局限性，新的技术会取代旧技术，不同公司通过不断演进合作和竞争都能促进发展，这个对整个的操作系统发展是有利的。

##### 陈鲍孜：

开源软件不仅是技术架构，其发展模式也存在层次。不同的发行版会根据自身定位以及需求选择不同层面的重点**。社区的发展是以技术驱动为主的**。不同发行版之间在发展技术上并没有太大的矛盾。大家目的都是为了把整个 Linux 大生态做好。所以从技术方面说，我不认为国内存在很多排他性竞争。更多情况大家是在相互促进。从市场竞争结果来看，**不同发行版的发展也会根据所处行业及需求去进行选择，从而提供更丰富的多样性，**而不是产生排他性。现在几乎行行业业都在使用 Linux 发行版，我们不能要求每一个用户都采用相同的平台或者相同的技术路线。那样不太现实。这就给大家留出了足够的空间去开发多样性的内容，在宏观上也能促进整个 Linux 大生态的发展。

##### 王戍靖：

目前国内处在操作系统开源社区快速发展阶段，竞争和合作必然存在。**国内开源操作系统社区基于不同定位逐步形成社区特色**，社区基础版的发行版本在满足用户需求和服务用户过程中，也会进一步发展出社区的技术优势。通过社区之间的相互借鉴、交流合作，可以共同推动国内操作系统技术和产业进步。

##### 王兴宇：

经过多年的努力，这些问题确实能得到完善，能看到以当前为主的操作系统已经很完善了，目前已经覆盖很多的行业，逐渐摆脱了对国际的依赖，我们现在在服务器上有相当多的进步，距离国际舞台还是有一段的距离。像前面提到的，我们在一些基础性的尖端性的重要的地方还是有一些欠缺，还需要国内各大操作系统厂商和社区形成合力，更多的厂商加入到发展行业中，共同上演中国操作系统技术逆袭世界的创举。

（本次圆桌访谈内容到处结束）