蚊章汇 - 2020年10月
type: channel
link: https://linuxcn.bwsl.wang/2020/10/
description: Linux中国社区镜像站，没有大保镖。
items: Linux 黑话解释：什么是显示管理器？
items: 使用 curl 从命令行访问互联网
items: 《代码英雄》第二季（9）：特别篇 - 开发者推广大使圆桌会议
items: 用这个创建可引导 USB 的工具在电脑上尝试 Linux
items: 我的第一次开源贡献：做出决定
items: 使用 Ansible 的 Kubernetes 模块实现容器编排自动化
items: Kubernetes 复杂吗？可以不复杂
items: Fedora 33 正式发布了
items: Linux 5.10 终于抛弃了造成了安全隐患的老函数
items: MellowPlayer：一款用于各种流媒体音乐服务的桌面应用

Linux 黑话解释：什么是显示管理器？
type: item
date: 2020-10-31T20:51:00+08:00
description: 在这篇 Linux 黑话解释中，你将了解 Linux 中的显示管理器。它是桌面环境的一部分吗？它的作用是什么？什么是 Linux 中的显示管理器？简单来说， 显示管理器 display manager （DM）是一个为你的 Linux 发行版提供图形登录功能的程序。它控制用户会话并管理用户认证。显示管理器会在你输入用户名和密码后，立即启动显示服务器并加载桌面环境。显示管理器通常是登录界面的代名词。毕竟它是可见的部分。然而，可见的登录屏幕，也叫 欢迎页 greeter ，只是显示管理器的一部分。像各种桌面环境和显示服务器一样，也有各种显示管理器。我们来看看它们。不同的显示管理器有些人认为显示管理器是桌面环境的一部分，但事实并非如此。它是一个独立的程序。桌面环境可能会推荐某个显示管理器，但这并不意味着它不能与其它一些显示管理器一起工作。如果你曾经在同一个系统中安装过不止一个桌面环境，你会记得，登录界面（即显示管理器）允许你切换桌面环境。虽然显示管理器不是桌面环境本身的一部分，但它往往与桌面环境由同一个开发团队开发。它也成为桌面环境的代表。例如，GNOME 桌面环境开发了 GDM（GNOME Display Manager），光看登录界面就会想到 GNOME 桌面环境。一些流行的显示管理器有：GDM（ GNOME 显示管理器 GNOME Display Manager ）：GNOME 的首选。SDDM（ 简单桌面显示管理器 Simple Desktop Display Manager )：KDE 首选。LightDM：由 Ubuntu 为 Unity 桌面开发。显示管理器可以定制有这么多的桌面环境可供选择，它们都有自己的显示管理器吗？不，不是这样的。正如我之前提到的，可见的登录屏幕被称为欢迎页。这个欢迎页可以进行自定义来改变登录屏幕的外观。事实上，许多发行版和/或桌面环境都制作了自己的欢迎页，以给用户提供一个类似于他们品牌的登录屏幕。例如，Mint 的 Cinnamon 桌面使用了 LightDM，但有自己的欢迎页来给它更多的 Mint 式（或者我应该说是 Cinnamon）的外观。来看看 Kali Linux 的登录界面：如果你喜欢编码和调整，你可以根据自己的喜好修改或编码自己的欢迎页。改变显示管理器如果你愿意，可以更改显示管理器。你需要先安装显示管理器。安装时你会看到切换显示管理器的选项。如果当时没有做切换，那么以后可以通过手动配置来改变显示管理器。不同的发行版重新配置显示管理器的方法略有不同，这不在本文讨论范围内。结语希望大家对 Linux 中的显示管理器这个术语有一点了解。本黑话解释系列的目的是用非技术性的语言解释常见的 Linux 俗语和技术术语，而不涉及太多的细节。欢迎大家提出意见和建议。via: https://itsfoss.com/display-manager/作者：Abhishek Prakash 选题：lujun9972 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

使用 curl 从命令行访问互联网
type: item
date: 2020-10-31T08:06:15+08:00
description: 下载我们整理的 curl 备忘录。要在不使用图形界面的情况下从互联网上获取所需的信息，curl 是一种快速有效的方法。curl 通常被视作一款非交互式 Web 浏览器，这意味着它能够从互联网上获取信息，并在你的终端中显示，或将其保存到文件中。从表面看，这是 Web 浏览器，类似 Firefox 或 Chromium 所做的工作，只是它们默认情况下会渲染信息，而 curl 会下载并显示原始信息。实际上，curl 命令可以做更多的事情，并且能够使用多种协议与服务器进行双向传输数据，这些协议包括 HTTP、FTP、SFTP、IMAP、POP3、LDAP、SMB、SMTP 等。对于普通终端用户来说，这是一个有用的工具；而对于系统管理员，这非常便捷；对于微服务和云开发人员来说，它是一个质量保证工具。curl 被设计为在没有用户交互的情况下工作，因此与 Firefox 不同，你必须从头到尾考虑与在线数据的交互。例如，如果想要在 Firefox 中查看网页，你需要启动 Firefox 窗口。打开 Firefox 后，在地址栏或搜索引擎中输入要访问的网站。然后，导航到网站，然后单击要查看的页面。对于 curl 来说也是如此，不同之处在于你需要一次执行所有操作：在启动 curl 的同时提供需要访问的互联网地址，并告诉它是否要将数据保存在终端或文件中。当你必须与需要身份验证的网站或 API 进行交互时，会变得有点复杂，但是一旦你学习了 curl 命令语法，它就会变得自然而然。为了帮助你掌握它，我们在一个方便的备忘录中收集了相关的语法信息。使用 curl 下载文件你可以通过提供指向特定 URL 的链接来使用 curl 命令下载文件。如果你提供的 URL 默认为 index.html，那么将下载此页面，并将下载的文件显示在终端屏幕上。你可以将数据通过管道传递到 less、tail 或任何其它命令：$ curl "http://example.com" | tail -n 4 Example Domain This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission. More information... 由于某些 URL 包含特殊字符，shell 通常会将其解释，因此最安全的做法用引号将 URL 包起来。某些文件无法很好的在终端中转换显示。你可以使用 --remote-name 选项使文件根据服务器上的命名进行保存：$ curl --remote-name "https://example.com/linux-distro.iso" $ ls linux-distro.iso 或者，你可以使用 --output 选项来命名你想要下载的内容：curl "http://example.com/foo.html" --output bar.html 使用 curl 列出带有远程目录的内容因为 curl 不是交互式的，所以很难浏览页面上的可下载元素。如果你要连接的远程服务器允许，可以使用 curl 来列出目录的内容：$ curl --list-only "https://example.com/foo/" 继续中断下载如果你正在下载一个非常大的文件，你可能会发现有时候必须中断下载。curl 非常智能，可以确定下载从何处中断并继续下载。这意味着，下一次当你下载一个 4GB 的 Linux 发行版的 ISO 出现问题时，就不必重新开始了。--continue-at 的语法有点不寻常：如果你知道下载中断时的字节数，你可以提供给 curl；否则，你可以使用单独的一个破折号（-）指示 curl 自动检测：$ curl --remote-name --continue-at - "https://example.com/linux-distro.iso" 下载文件序列如果你需要下载多个文件而不是一个大文件，那么 curl 可以帮助你解决这个问题。假设你知道要下载的文件的位置和文件名模式，则可以使用 curl 的序列标记：中括号里是整数范围的起点和终点。对于输出文件名，使用 #1 表示第一个变量：$ curl "https://example.com/file_[1-4].webp" --output "file_#1.webp" 如果你需要使用其它变量来表示另一个序列，按照每个变量在命令中出现的顺序表示它们。例如，在这个命令中，#1 指目录 images_000 到 images_009，而 #2 指目录 file_1.webp …

《代码英雄》第二季（9）：特别篇 - 开发者推广大使圆桌会议
type: item
date: 2020-10-30T22:41:00+08:00
description: 代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。什么是《代码英雄》 代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽（Red Hat）精心制作的原创音频播客，讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。本文是《代码英雄》系列播客第二季（9）：特别篇 - 开发人员拥护者圆桌会议的音频脚本。导语： 开发者推广大使 developer advocate 在开源社区中起到的作用是举足轻重的。我们邀请了几位这样的推广大使来到本期节目中，以向我们揭示他们的工作方式，并阐述这份工作背后的意义。来自 Mozilla 的 Sandra Persing、Twilio 的 Ricky Robinett 与 红帽的 Robyn Bergerron 将在此接受 Saron 的采访，分享他们的工作内容、他们支持社区的方式，以及他们对 2019 年的展望。00:00:06 - Saron Yitbarek：大家好，我是 Saron Yitbarek，这里是红帽的原创播客节目《 代码英雄 Command Line Heroes 》的特别篇。我们的节目在第 2 季去了很多地方。我们探索了编程语言、数据大爆炸、安全危机以及无服务器时代的到来，我们甚至去了火星。00:00:28：但是在结束了第 2 季之后，我们还有一个地方要去。我们要走进推广大使和思想领袖们的认识当中，他们帮着塑造了开发人员所做的全部工作。有时，他们被称为 开发者推广大使 developer advocate ，或者说他们担任开发者关系的职位，或开发者布道师。00:00:50：从开发人员的角度来看，无论他们的具体头衔是什么，他们似乎都做着许多相同的事情。你在会议上见过他们发表主题演讲。你在播客上听过他们接受采访，就像在本期节目中一样。你可能还阅读过他们的博文。但是他们是谁呢？他们到底在用自己的声音做了些什么？00:01:10：为了迎接 2019 年的到来，我们为大家召集了一个优秀人物的圆桌会议。尽管他们的头衔各不相同，但他们的目的是一致的。他们来到这里，是为了帮助开发人员，并确保其声音和需求能被大众听到。这些人都是典型的代码英雄。00:01:29：来自 湾区 Bay Area 的 Sandra Persing 是 Mozilla 的 全球策略师 Global Strategist ，也是 DevRel 峰会的创始人。00:01:38 - Sandra Persing：嗨， Saron。00:01:39 - Saron Yitbarek：你好。还有同样来自旧金山的 Ricky Robinett。他是 Twilio 的开发人员网络总监。00:01:47 - Ricky Robinett：你好。00:01:49 - Saron Yitbarek：从凤凰城外和我一起来的是 Robyn Bergeron，Red Hat 的社区架构师。00:01:55 - Robyn Bergeron：嗨！你好吗？00:01:56 - Saron Yitbarek：我很好。00:01:57 - Robyn Bergeron：看到你真高兴。00:01:57 - Saron Yitbarek：在不同的地方，这份工作的践行者被冠以不同的头衔。有 开发者推广大使 Developer Advocate 、 开发者布道师 Developer Evangelist 、 开发者关系 Developer Relations ；对于新事物来说，基本定义非常重要。因此，我认为一个好的起点是来定义这些东西是什么，尤其是定义你可以在这个领域做什么。所以，你能告诉我你的头衔以及这个头衔实质上的含义吗？ Ricky，让我们从你开始吧。00:02:22 - Ricky Robinett：好的，听起来很棒。我的头衔是 开发者网络总监 Director of the Developer Network 。我有幸供职于一个开发者关系专家团队。我们有一个布道师团队、一个教育团队和一个社区团队。因此，这绝对是一个大杂烩，有你听说过的各种不同的头衔，我们将其汇集在这个团队之中。00:02:43 - Saron Yitbarek：厉害啊。Sandra，你呢？00:02:45 - Sandra Persing：我在 Mozilla 担任活动和赞助的 全球策略师 Global Strategist ，并与 Mozilla 新兴技术小组的开发者拓展团队合作。我通常会将我的日常活动解释为大量的研究、交流和探索，而这都将最终影响我们评估…

用这个创建可引导 USB 的工具在电脑上尝试 Linux
type: item
date: 2020-10-30T20:21:59+08:00
description: Fedora Media Writer 是创建临场版 USB 以尝试 Linux 的方便方法。Fedora Media Writer 是一个小巧、轻量、全面的工具，它简化了 Linux 的入门体验。它可以下载 Fedora 的 Workstation 或 Server 版本并写入到一个可以在任何系统上引导的 USB 驱动器上，使你无需将其安装到硬盘上就可以试用 Fedora Linux。Media Writer 工具可以用来创建一个 临场体验的 Live 、可引导的 USB 驱动器。在你的平台上安装 Fedora Media Writer 应用后，你可以下载并烧录最新的 Fedora Workstation 或 Server 稳定版，也可以选择烧录你下载的任何其他镜像。而且它并不局限于英特尔 64 位设备。它还可以用于 ARM 设备，如树莓派，这些设备日益变得更加强大和有用。安装 Fedora Media Writer安装 Fedora Media Writer 有几种方式。你可以通过 GitHub 从源码编译、下载 MacOS 或 Windows 版本、使用 dnf 或 yum 安装 RPM 包，或者以 Flatpak 的形式获得。在 Fedora 上：$ sudo dnf install mediawriter 最新版本请参见 GitHub 仓库的发布部分。准备好你的媒体介质首先，你需要一个 USB 驱动器来安装你的 Linux 操作系统。这就是 Fedora Media Writer 要烧录的设备。这个驱动器必须是空白或可擦除的，因为 该 USB 驱动器上的所有数据都会被删除。如果有任何数据，哪怕只是一个文件，如果你不想丢失，那么你必须在继续之前备份它！确认你的 USB 驱动器是可擦除的之后，将它插入你的电脑并启动 Fedora Media Writer。使用 Fedora Media Writer当你启动 Fedora Media Writer 时，你会看到一个页面，提示你从互联网上获取一个可引导的镜像，或者从你的硬盘上加载一个自定义镜像。第一个选择是 Fedora 的最新版本。Workstation 版本适用于台式机和笔记本电脑，Server 版本适用于虚拟化、机架服务器或任何你想作为服务器运行的情况。如果你选择了 Fedora 镜像，Media Writer 会下载一个光盘镜像（通常称为 “iso”，文件扩展名为 .iso），并将其保存到你的下载文件夹中，这样你就可以重复使用它来烧录另一个驱动器。另外还有 Fedora Spins，这是来自 Fedora 社区的镜像，它旨在满足小众的兴趣。例如，如果你是 MATE 桌面的粉丝，那么你会很高兴地发现 Media Writer 提供了 MATE spin。它有很多，所以请滚动查看所有的选择。如果你是 Linux 的新手，不要被吓到或感到困惑：这些额外的选项是为老用户准备的，这些用户除了默认的选项外，还发展出了自己的偏好，所以对你来说，只使用 Workstation 或 Server 选项就行，这取决于你是想把 Fedora 作为一个桌面还是作为一个服务器操作系统来运行。如果你需要一个与你当前使用的 CPU 不同架构的镜像，从窗口右上角的下拉菜单中选择 CPU 架构。如果你已经将镜像保存在硬盘上，请选择“Custom Image”选项，并选择你要烧录到 USB 的发行版的 .iso 文件。写入 USB 驱动器当你下载或选择了一个镜像，你必须确认你要将该镜像写入驱动器。驱动器选择下拉菜单只显示了外部驱动器，所以你不会意外地覆盖自己的硬盘驱动器。这是 Fedora Media Writer 的一个重要功能，它比你在网上看到的许多手动说明要安全得多。然而，如果你的计算机上连接了多个外部驱动器，除了你想覆盖的那个，你应该将它们全部移除，以增加安全性。选择你要安装镜像的驱动器，然后单击“Write to Disk”按钮。稍等一会儿，镜像就会被写入到你的驱动器，然后可以看看 Don Watkins 对如何从 USB 驱动器启动到 Linux的出色介绍。开始使用 LinuxFedora Media Writer 是一种将 Fedora Workstation 或 Server，或任何 Linux 发行版烧录到 USB 驱动器的方法，因此你可以在安装它到设备上之前试用它。试试吧，并在评论中分享你的经验和问题。via: https://opensource.com/article/20/10/fedora-media-writer作者：Sumantro Mukherjee 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

我的第一次开源贡献：做出决定
type: item
date: 2020-10-30T19:24:01+08:00
description: 一位新的开源贡献者告诉你如何加入到开源项目中。先前，我把我的第一次开源贡献的拖延归咎于冒牌综合症。但还有一个我无法忽视的因素：我做出决定太艰难了。在成千上百万的开源项目中选择时，选择一个要做贡献的项目是难以抉择的。如此重负，以至于我常常不得不关掉我的笔记本去思考：“或许我改天再做吧”。错误之二是让我对做出决定的恐惧妨碍了我做出第一次贡献。在理想世界里，也许开始我的开源之旅时，心中就已经有了一个真正关心和想去做的具体项目，但我有的只是总得为开源项目做出贡献的模糊目标。对于那些处于同一处境的人来说，这儿有一些帮助我挑选出合适的项目（或者至少是一个好的项目）来做贡献的策略。经常使用的工具一开始，我不认为有必要将自己局限于已经熟悉的工具或项目。有一些项目我之前从未使用过，但由于它们的社区很活跃，或者它们解决的问题很有趣，因此看起来很有吸引力。但是，考虑我投入到这个项目中的时间有限，我决定继续投入到我了解的工具上去。要了解工具需求，你需要熟悉它的工作方式。如果你想为自己不熟悉的项目做贡献，则需要完成一个额外的步骤来了解代码的功能和目标。这个额外的工作量可能是有趣且值得的，但也会使你的工作时间加倍。因为我的目标主要是贡献，投入到我了解的工具上是缩小范围的很好方式。回馈一个你认为有用的项目也是有意义的。活跃而友好的社区在选择项目的时候，我希望在那里有人会审查我写的代码才会觉得有信心。当然，我也希望审核我代码的人是个和善的人。毕竟，把你的作品放在那里接受公众监督是很可怕的。虽然我对建设性的反馈持开放态度，但开发者社区中的一些有毒角落是我希望避免的。为了评估我将要加入的社区，我查看了我正在考虑加入的仓库的 议题 issue 部分。我要查看核心团队中是否有人定期回复。更重要的是，我试着确保没有人在评论中互相诋毁（这在议题讨论中是很常见的）。我还留意了那些有行为准则的项目，概述了什么是适当的和不适当的在线互动行为。明确的贡献准则因为这是我第一次为开源项目做出贡献，在此过程中我有很多问题。一些项目社区在流程的文档记录方面做的很好，可以用来指导挑选其中的议题并发起拉取请求。 Gatsby 是这种做法的典范，尽管那时我没有选择它们，因为在此之前我从未使用过该产品。这种清晰的文档帮助我们缓解了一些不知如何去做的不安全感。它也给了我希望：项目对新的贡献者是开放的，并且会花时间来查看我的工作。除了贡献准则外，我还查看了议题部分，看看这个项目是否使用了“ 第一个好议题 good first issue ”标志。这是该项目对初学者开放的另一个迹象（并可以帮助你学会要做什么）。总结如果你还没有计划好选择一个项目，那么选择合适的领域进行你的第一个开源贡献更加可行。列出一系列标准可以帮助自己缩减选择范围，并为自己的第一个拉取请求找到一个好的项目。via: https://opensource.com/article/19/11/my-first-open-source-contribution-mistake-decisions作者：Galen Corey 选题：lujun9972 译者：chenmu-kk 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

使用 Ansible 的 Kubernetes 模块实现容器编排自动化
type: item
date: 2020-10-29T05:19:13+08:00
description: 将 Kubernetes 与 Ansible 结合实现云端自动化。此外，还可以参照我们的 Ansible 的 k8s 模块速查表。Ansible 是实现自动化工作的优秀工具，而 Kubernetes 则是容器编排方面的利器，要是把两者结合起来，会有怎样的效果呢？正如你所猜测的，Ansible + Kubernetes 的确可以实现容器编排自动化。Ansible 模块实际上，Ansible 本身只是一个用于解释 YAML 文件的框架。它真正强大之处在于它丰富的模块，所谓 模块 module ，就是在 Ansible 剧本 playbook 中让你得以通过简单配置就能调用外部应用程序的一些工具。Ansible 中有模块可以直接操作 Kubernetes，也有对一些相关组件（例如 Docker 和 Podman）实现操作的模块。学习使用一个新模块的过程和学习新的终端命令、API 一样，可以先从文档中了解这个模块在调用的时候需要接受哪些参数，以及这些参数在外部应用程序中产生的具体作用。访问 Kubernetes 集群在使用 Ansible Kubernetes 模块之前，先要有能够访问 Kubernetes 集群的权限。在没有权限的情况下，可以尝试使用一个短期在线试用账号，但我们更推荐的是按照 Kubernetes 官网上的指引，或是参考 Braynt Son 《入门 Kubernetes》的教程安装 Minikube。Minikube 提供了一个单节点 Kubernetes 实例的安装过程，你可以像使用一个完整集群一样对其进行配置和交互。下载 Ansible k8s 速记表（需注册）在安装 Minikube 之前，你需要确保你的环境支持虚拟化并安装 libvirt，然后对 libvirt 用户组授权：$ sudo dnf install libvirt $ sudo systemctl start libvirtd $ sudo usermod --append --groups libvirt `whoami` $ newgrp libvirt 安装 Python 模块为了能够在 Ansible 中使用 Kubernetes 相关的模块，你需要安装以下这些 Python 模块：$ pip3.6 install kubernetes --user $ pip3.6 install openshift --user 启动 Kubernetes如果你使用的是 Minikube 而不是完整的 Kubernetes 集群，请使用 minikube 命令在本地创建一个最精简化的 Kubernetes 实例：$ minikube start --driver=kvm2 --kvm-network default 然后等待 Minikube 完成初始化，这个过程所需的时间会因实际情况而异。获取集群信息集群启动以后，通过 cluster-info 选项就可以获取到集群相关信息了：$ kubectl cluster-info Kubernetes master is running at https://192.168.39.190:8443 KubeDNS is running at https://192.168.39.190:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. 使用 k8s 模块Ansible 使用 k8s 这个模块来实现对 Kubernetes 的操作，在剧本中使用 k8s 模块就可以对 Kuvernetes 对象进行管理。这个模块描述了 kubectl 命令的最终状态，例如对于以下这个使用 kubectl 创建新的命名空间的操作：$ kubectl create namespace my-namespace 这是一个很简单的操作，而对这个操作的最终状态用 YAML 文件来描述是这样的：- hosts: localhost tasks: - name: create namespace k8s: name: my-namespace api_version: v1 kind: Namespace state: present 如果你使用的是 Minikube，那么主机名（hosts）应该定义为 localhost。需要注意的是，所使用的模块也定义了可用参数的语法（例如 api_version 和 kind 参数）。在运行这个剧本之前，先通过 yamllint 命令验证是否有错误：$ yamlli…

Kubernetes 复杂吗？可以不复杂
type: item
date: 2020-10-29T04:15:00+08:00
description: 作为云原生的核心产品，Kubernetes 提供的编排和管理功能，能轻松完成大规模容器部署，但 Kubernetes 自身的复杂性也导致众多企业一直徘徊于容器服务之外。据调查，只有不足 10% 的用户表示使用 Kubernetes 时没有遇到阻碍。在 2019 年的一个关于容器技术的一个调查数据中，有 40% 的受访者表示计划采用容器。然而，据 UCloud 产品经理张鹏波透露说，在他们接触的用户当中，曾经在两年前表示有兴趣迁移到容器的用户，两年过去了，这些用户很多依旧“计划采用”容器服务。这让我好奇其中发生了什么。让我们一起来探寻一下其中的症结，以及是否可以将复杂的 Kubernetes变得不复杂。Kubernetes 复杂吗？自从 2017 年，Kubernetes 在容器编排三强争霸赛中胜出后，就成为了容器编排领域的事实标准，极大的助推了容器技术在业界的发展。作为企业级的容器服务编排系统，Kubernetes 从技术上是现在、乃至未来的主流。容器拥有很多优点，包括不可变环境、轻量级、快速启动等优势；而容器编排系统又在此基础上更进一步，提供了更加强大的功能，包括自动部署、快速扩容、故障自愈等等。然而，在这一系列令人神往的优势和功能背后，Kubernetes 也相应的引入了更多的复杂性。这些复杂性体现在多个方面，比如说：首先是 Kubernetes 架构，本质上，Kubernetes 是用来管理分布式系统的平台。而一说到分布式，复杂性是不可避免的，管理分布式系统的平台自然也不例外。另外是容器支持的网络，Kubernetes 支持的网络类型很多。很多用户对于 Kubernetes 的网络非常疑惑或者说很纠结，当业务要迁移到 Kubernetes 时，选择什么类型的网络是一个难以抉择的问题。特别是在业务迁移上去之后又遇到一些问题的话，排查起来会非常麻烦，这给用户带来很大负担。最后还有就是各种各样 Kubernetes 组件的配置，这些都是用户将业务迁移到 Kubernetes 的障碍。有什么解决方案吗？如上所述，并不是每个用户都能尝到桃子的美味的，还有很多渴望迁移到容器环境的用户被拒之门外。在这种情况下，全球各家云服务商，都纷纷推出自己的容器编排服务，在 Kubernetes上构建了自己的 Kubernetes发行版或定制产品。而作为中国第一家公有云科创板上市公司，UCloud 利用在 UK8S 产品的技术沉淀，推出新的容器管理服务产品 Cube：两步即可部署容器化应用；采用无服务器形态，不需要再维护底层基础设施；按秒后付费，无需预留资源；降低企业部署云原生产品的学习和技术门槛。为什么要推出 Cube？在容器和 Kubernetes 如火如荼发展的同时，UCloud 发现，在他们的 UK8S 上线大概两年多的时间里，之前曾经想把业务迁到 Kubernetes 的用户。在两年后的今天，他们还是说这个话，说我很想上 Kubernetes，还需要你们来做技术交流。UCloud 产品经理张鹏波说：这让我们一度很困惑，我们一开始也做了一些尝试，比如说做了很多线下的培训、线上的交流，尝试去推动用户把他们的业务迁移到 UK8S 里面来。但是发现这个过程非常缓慢，我们没有办法控制和推动用户的迁移流程。很多公司的业务在快速发展，运维和研发是没有办法做架构上的调整的。发现沟通、培训这条路实际上是走不通之后的。后来我们想，能不能换一条路，能不能基于 Kubernetes提供这样一个产品：这个产品只具有 Kubernetes 好处，掩盖了 Kubernetes 的复杂性，只提供类似于自动部署、快速扩容这样的特性，而用户不需要关心底层的 Kubernetes 架构，不需要再操心 Kubernetes 的网络了，也不需要去学习 Kubernetes 的各种 API 了。Cube 的设计思路沿着这个思路，UCloud 形成了自己的 Cube 产品。它的设计是从以下几个方面考虑的：首先，Kubernetes 里面哪些功能是会经常会用到的，比如 Deployment 控制多副本容器组的管理， Job 控制任务型容器组，Service 做服务发现，PVC可以用来抽象使用块存储以及文件存储。这是 Kubernetes 最核心的一些功能。UCloud 在设计 Cube 的时候，希望将这些功能全部保留。这意味着整个 Cube 是基于 Kubernetes 来实现的。把这些复杂性全部屏蔽掉，用户不需要维护 Kubernetes 集群，不需要操心 Kubernetes 网络方案，而是由 Cube 提供一个最优网络方案，把容器的网络和虚拟机的网络扁平化。其次，把业务迁移到 Kubernetes 的时候，把单体业务变成分布式业务、微服务的时候，用户一定需要考虑容器日志的统一收集…

Fedora 33 正式发布了
type: item
date: 2020-10-28T23:50:19+08:00
description: 本文译自 Fedora 官方发布公告。今天，我很兴奋地与大家分享数千名 Fedora 项目贡献者辛勤工作的成果：我们的最新版本 Fedora 33 来了! 这是一个有着很多变化的大版本，但我相信所有这些工作也会让您感到舒适，实现我们的目标：即为您带来最新的稳定、强大、健壮的自由和开源软件，并提供许多易于使用的产品。如果您不想耽误时间，直接体验，现在就去 https://getfedora.org/ 下载吧，欲了解详情请继续阅读！找到适合您的 Fedora 风味！Fedora Edition 是针对桌面、服务器和云环境中各种“体现”特定用途的目标产品，现在它也适用于物联网。Fedora Workstation 专注于桌面，尤其是面向那些想要“只管去用”的 Linux 操作系统体验的软件开发者。这个版本的特点是 GNOME 3.38，它一如既往地有很多很棒的改进。新增的 Tour 应用可以帮助新用户学习它们的操作方式。和我们所有其他面向桌面的变体一样，Fedora Workstation 现在使用 BTRFS 作为默认文件系统。这些发布的版本中带来了很多伟大的增强功能，这个先进的文件系统为之奠定了基础。为了您的视觉享受，Fedora 33 Workstation 现在默认提供了一个动画背景（它会基于一天中的时间变化）。Fedora CoreOS 是一个新兴的 Fedora 版本。它是一个自动更新的、最小化的操作系统，用于安全地、大规模地运行容器化工作负载。它提供了几个更新流，可以遵循大致每两周一次的自动更新。目前 next 流是基于 Fedora 33 的，testing 和 stable 流后继也会跟进。您可以从下载页面中找到关于跟随 next 流发布的工件的信息，并在 Fedora CoreOS 文档中找到关于如何使用这些工件的信息。新晋升为 Edition 状态的 Fedora IoT，为物联网生态系统和边缘计算用例提供了坚实的基础。在许多功能之外，Fedora 33 IoT 还引入了 平台抽象安全 Platform AbstRaction for SECurity （PARSEC），这是一个开源倡议，以平台无关的方式为硬件安全和加密服务提供了通用 API。当然，我们制作的不仅仅是“官方版本”，还有 Fedora Spin和 Lab。Fedora Spin 和 Lab 针对不同的受众和用例，包括 Fedora CompNeuro，它为神经科学带来了大量的开源计算建模工具，以及 KDE Plasma 和 Xfce等桌面环境。此外，别忘了我们还有备用架构：ARM AArch64、Power 和 S390x。在 Fedora 33 中提供的新功能，AArch64 用户可以使用 .NET Core 语言进行跨平台开发。我们改进了对 Pine64 设备、NVidia Jetson 64 位平台以及 Rockchip 片上系统（SoC）设备的支持，包括 Rock960、RockPro64 和 Rock64。（不过，有个最新的说明：在其中一些设备上可能会出现启动问题。从现有的 Fedora 32 升级是没问题的。更多信息将在常见错误页面上公布。）我们也很高兴地宣布，Fedora 云镜像和 Fedora CoreOS 将首次与 Fedora 33 一起在亚马逊的 AWS 市场 中提供。Fedora 云镜像在亚马逊云中已经存在了十多年，您可以通过 AMI ID 或点击一下来启动我们的官方镜像。该市场提供了获得同样东西的另一种方式，显著扩大了 Fedora 的知名度。这也将使我们的云镜像可以更快地在新的 AWS 区域中可用。特别感谢 David Duncan 让这一切成为现实！常规改进无论您使用的是哪种版本的 Fedora，您都会得到开源世界提供的最新版本。遵循我们的 First 原则，我们更新了关键的编程语言和系统库包，包括 Python 3.9、Ruby on Rails 6.0 和 Perl 5.32。在 Fedora KDE 中，我们沿用了 Fedora 32 Workstation 中的工作，默认启用了 EarlyOOM 服务，以改善低内存情况下的用户体验。为了让 Fedora 的默认体验更好，我们将 nano 设置为默认编辑器。nano 是一个对新用户友好的编辑器。当然，那些想要像 vi 这样强大的编辑器的用户可以自己设置默认编辑器。我们很高兴您能试用新版本! 前往 https://getfedora.org/ 并立即下载它。或者如果您已经在运行 Fedora 操作系统，请按照这个简单的升级说明进行升级。关于 Fedora 33 新特性的更多信息，请参见发布说明。关于安全启动的说明 安全启动 Secure Boot 是一种安全标准，…

Linux 5.10 终于抛弃了造成了安全隐患的老函数
type: item
date: 2020-10-28T05:50:00+08:00
description: 多年来，set\_fs() 一直是众所周知的麻烦，现在它终于消失了。Linus Torvalds 开启了 Linux 内核的又一个开发周期，宣布 5.10-rc1 发布了，而且这一次还有一个历史性的转折：新内核标志着一个几十年前的函数的落幕，这个函数在被发现会导致安全漏洞后早已成为多余的函数。随着长达两周的，每一次新的 Linux 内核迭代发布前的合并窗口的关闭，Torvalds 在 Linux 内核邮件列表上分享了他的感想，他认为“事情似乎相当顺利”。“合并窗口”是 Linux 新内核发布过程中的一个关键部分，在此窗口期间，每天有多达 1000 个由开发者社区提交的补丁被合并到 Torvalds 管理的主线仓库中。而审查过程会确保每个补丁都能实现理想的变化。这一次，Torvalds 提请大家注意移除了一个叫 set_fs() 的寻址函数，这个函数可以追溯到 Linux 的最初版本。“对我来说，这是最有趣的变化，set_fs() 被移除了，”他写道，“这不是一个巨大的变化，但很有趣，因为 set_fs() 指定用户空间副本是否真正进入用户空间或内核空间的这个模式，几乎可以追溯到 Linux 的最初版本。”正如 Torvalds 所解释的那样，set_fs() 函数可以通过取消用户空间和内核空间之间的分界来覆盖地址空间。该函数在管理英特尔早期 x86 处理器时被广泛使用，以控制非特权代码可以访问的虚拟地址范围。然而，2010 年，“常见漏洞和暴露”（CVE）详细披露了 set_fs() 带来的安全问题。通过绕过某些访问限制，证实该函数能够“覆盖任意内核内存位置”和“获得特权” —— 在某些情况下，这可以让用户空间覆盖内核数据。鉴于该工具的安全缺陷，包括 x86、PowerPC、s390 和 RISC-V 在内的一些架构已经取消了地址空间覆盖功能。但是，正如 Torvalds 写道：“我们仍然留着 set_fs()，因为并不是每个架构都已经转换为新的世界秩序。”除了这个久违的历史补救之外，5.10-rc1 版本和大多数内核版本一样，还伴随着无数的变化。Torvalds 统计了近 1700 人的近 1.4 万次提交，改动范围从支持自动驾驶汽车和机器人的 Nvidia SOC 芯片到支持任天堂 Switch 控制器。统计结果表明。大约新增了 70.4 万行代码和删除了 41.9 万行代码，这使得 5.10-rc1 的大小与 Linux 有史以来最大的内核 5.8 相当。“这看起来是一个比我预期的更大的版本，虽然合并窗口比 5.8 的窗口小，但也小不了多少，”Torvalds 说，“而 5.8 是我们有史以来最大的版本。”按照 Linux 典型的时间表，5.10-rc1 之后将有几个星期时间来提交修复问题的补丁，在预计 12 月发布稳定内核之前，将发布几个候选版本。via: https://www.zdnet.com/article/linux-5-10-finally-ditches-decades-old-tool-that-caused-security-bugs/ 作者：Daphne Leprince-ringuet 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

MellowPlayer：一款用于各种流媒体音乐服务的桌面应用
type: item
date: 2020-10-27T07:35:00+08:00
description: MellowPlayer 是一个自由开源的桌面应用，可以让你在 Linux 和 Windows 上整合基于网络的音乐流媒体服务。毋庸置疑，很多用户都喜欢使用流媒体服务来收听自己喜欢的音乐，而不是从商店购买单首音乐或者下载收藏。当然，流媒体服务可以让你探索新的音乐，帮助艺术家轻松传播到更多的听众。但是，由于有许多的音乐流媒体服务（Soundcloud、Spotify、YouTube Music、Amazon Music 等），因此当在使用电脑时，要有效地使用它们往往会变得很麻烦。你可以在 Linux 上安装 Spotify，但没有 Amazon Music 的桌面应用，所以，有可能你无法从单一门户管理流媒体服务。如果一个桌面应用可以让你同时在 Windows 和 Linux 上免费整合流媒体服务呢？在本文中，我将介绍这样一款应用：MellowPlayer。MellowPlayer: 集成各种流媒体音乐服务的开源应用MellowPlayer 是一款自由开源的跨平台桌面应用，它可以让你整合多个流媒体服务，并在一个界面上管理它们。你可以整合多个支持的流媒体服务。你还可以从每个服务中获得一定程度的控制权，来调整你的体验。例如，你可以设置在 YouTube 上自动跳过或静音广告。对 Windows 和 Linux 的跨平台支持绝对是一个加分项。除了能够管理流媒体服务外，它还将播放器与系统托盘整合在一起来轻松控制音乐。这意味着你可以使用键盘上的媒体键来控制音乐播放器。另外值得一提的是，你只要在应用内自己创建一个插件，就可以添加一个官方不支持的新服务。为了让你对它有更多的了解，下面就让我重点介绍一下所有的主要特点。MellowPlayer 的特点跨平台 （Windows 和 Linux）自由且开源基于插件的应用，让你可以通过创建一个插件来添加新的服务将服务作为本地桌面应用与系统托盘整合支持热键支持通知收听历史在 Linux 上安装 MellowPlayerMellowPlayer 是以 Flatpak 包的形式提供的。我知道这让一些人很失望，但它在 Linux 中只有 Flaptak，Windows 中只有一个可执行文件。如果你不知道，请按照我们的在 Linux 上使用 Flatpak 指南来开始使用。下载 MellowPlayer总结MellowPlayer 是一款方便的桌面应用，适合经常涉猎多种流媒体音乐服务的用户使用。尽管根据我的测试，它在 SoundCloud、YouTube 和 Spotify 上都能正常工作，但我确实注意到，当我试图重新调整窗口大小时，应用会崩溃，只是在此提醒一下。你可以在它的 GitLab 页面上了解更多关于它的内容。还有两个类似的应用，可以让你播放多个流媒体音乐服务。Nuvola 和 Nuclear Music Player。你可能会想看看它们。你试过 MellowPlayer 吗？欢迎在下方评论中分享你的想法。via: https://itsfoss.com/mellow-player/作者：Ankush Das 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出