2022年8月

微软再次改变对已知的 MSDT 漏洞的立场

尽管之前微软声称 DogWalk 漏洞不构成安全问题,但微软现在已经发布了一个补丁,以阻止攻击者积极利用该漏洞。该漏洞允许攻击者利用 Windows 微软支持诊断工具(MSDT)的一个弱点,以欺骗用户访问一个虚假的网站或打开一个恶意的文件,最终在被攻击的系统上获得远程代码执行。该漏洞在 2020 年 1 月首次被报告,影响到所有支持的 Windows 版本。但当时微软表示,它不认为该漏洞是一个安全问题。这是近几个月来微软第二次被迫改变对一个已知漏洞的立场,之前也曾拒绝承认另一个 MSDT 漏洞构成安全威胁,但在今年 6 月提供了补丁。

消息来源:Computer World
老王点评:其实有安全漏洞,对于微软的产品来说很正常,我好奇的是,微软为什么就不愿意承认,把 Bug 当功能呢?

百度获得中国首批完全无人驾驶出租车的服务许可证

据报道,中国首批完全自主的,没有安全司机的商业机器人出租车,即将在武汉和重庆对公众乘客开放。这两张新颁发的许可证允许百度在上述城市限定区域内提供无人驾驶收费出租车服务,每个区域将运行五辆第五代阿波罗汽车。如果车辆遇到任何棘手的情况,远程司机将会进行控制。之前,百度已经在中国一线城市使用相同的第五代汽车提供出租服务,但车上有备用司机。

消息来源:New Atlas
老王点评:看到百度能将资金和人力投入高科技行业是个好事,希望能转型成一家真正的高科技公司吧。

英特尔 x86 CPU 份额跌破七成

来自统计机构的最新数据显示,刚过去的二季度,桌面处理器销量创下 30 年来的新低,但 AMD 在移动笔记本、台式机、服务器以及整个 x86 市场的份额,都在继续增长。从整个 x86 处理器市场来看,AMD 的市场占比已经提高到 31.4%,也就是说英特尔的 x86 市场份额已不足七成。

消息来源:Tom's Hardware
老王点评:虽然可能只是暂时的波动变化,但是 AMD 似乎越来越得到市场青睐。

近日,CentOS 社区委员会成员 Brian Exelbierd 和 Thomas Oulevey,以及 Linux 中国开源社区创始人王兴宇,跨越多个时区,远程进行了一场对话,讨论了 CentOS 社区和操作系统领域的创新与发展趋势。

开源朗读者:淮晋阳

主持人:王兴宇,Linux 中国开源社区创始人

Brian Exelbierd,开源布道师,社区和开发者业务策略师

Thomas Oulevey,CentOS 社区委员会成员

注:Thomas 和 Brian 都是 CentOS 社区委员会成员。此外,Thomas 在欧洲核子研究组(CERN)工作,是控制组的系统工程师,更多请见他在 CentOS 社区官网上的 简历

现场翻译:璐璐,文字翻译:家驹,文字整理:老王

以下是本次访问内容:

Thomas:大家好,我叫 Thomas,我从 2012 年左右就在 CentOS 社区工作,从基础架构相关的工作开始,后来负责组织CentOS Dojo(译者注:CentOS Dojos 是一个为期一天,或偶尔为 2 天的活动,它将 CentOS 社区的人们聚集在一起,讨论系统管理、最佳实践和新兴技术),致力于帮助人们更好地融入社区,创造良好的氛围,让大家可以更开心的从事社区相关的工作。好,现在交给 Brian。

Brian:大家好,我叫 Brian,我参与社区的经历和 Thomas 差不多。我很积极地投入到企业级 Linux 社区的工作已经有六七年时间,在那之前我更多的是企业级 Linux 的被动使用者,作为社区贡献者偶尔也对企业 Linux 社区有些贡献。事实上现在我是在红帽工作,我负责 RHEL 的业务战略,但今天我出现在这里,是因为我的另一个身份是 CentOS 社区董事会的红帽联络员。同时,我也参与过大量的社区工作,包括做过 Fedora 社区架构师,积极地参与过 Fedora 项目以及 CentOS项目的很多活动。

王兴宇:两位好,各位参加会议的朋友你们好。首先非常感谢红帽公司搭建这个渠道,让我们 Linux 中国可以和 CentOS 社区的负责人进行面对面沟通,也非常感谢翻译璐璐做全程翻译,辛苦了。我是 Linux 中国开源社区的创始人王兴宇,从业互联网二十余年,曾经担任过中国电信的高级专家,这些年主要从事开源文化和开源技术的公益推广。

今天主要沟通的内容是关于后 CentOS 时代的一些话题。CentOS 停止维护,而以 CentOS Stream 替代的这两年来我们称之为“后 CentOS 时代”,这件事对开源服务器操作系统市场影响很大,业界和用户也存在一些误解和迷茫的地方,这也是我今天请两位来一起沟通的主要原因。以下是我们的一些提问,请两位发表你们的见解。

首先,我们来回顾一下两年前的历史背景。历史上 CentOS 和红帽的关系如何?CentOS 在红帽的产品线中的定位什么样?请两位帮忙回答一下。

Brian:我来回答一下这个问题,CentOS 项目,从红帽的角度来看,和我们有一个非常有趣的历史渊源。众所周知,大概 7 年前,我们收购了 CentOS 这个品牌,雇佣了 CentOS 项目的工程师,这就是红帽和 CentOS 项目的关系。我们这么做的目的是提供一个平台给某些特定的高级开发(比如虚拟化)、运行于操作系统之上的其它工具等组件开发,我们希望借此鼓励这些项目(虚拟化、其它工具)能够以开源项目的方式健康发展。

随着时间的推移,事情逐渐发生了一些变化,就像这个世界也在不断演进和发展一样,我们逐渐意识到那些上层项目越来越依赖于底层操作系统的变化。我们发现 CentOS 正好可以作为这个底层操作系统,是一个可以孵化其他项目的很好的地方。借此,我们可以在做 RHEL 开发的同时,也去做 RHEL 之上其他组件(虚拟化、工具等)的开发,与广大社区开发者一起,每个人都可以促进底层操作系统与上层组件的协调发展。这就是我们发展 CentOS 项目,并大概在 3 年前提出 CentOS Stream 的原因。

关于第二个问题,红帽对待 CentOS,始终保持着“一臂”的距离,这就意味着,红帽不去控制 CentOS 所做的事情,除非遇到一些挑战,比如法律相关的风险,我们只是为 CentOS 提供更多的资源,我们也不认为 CentOS 就是红帽产品线的一部分。从红帽产品线的视角来看,CentOS 不是红帽的产品,红帽不提供对 CentOS 的支持,我们不对 CentOS 提供保证,我们也不对 CentOS 使能。也就是说,CentOS 确实对红帽的产品很重要,因为我们所做的所有工作都是基于开源的代码库,所以我们需要这个项目,来产品化这部分代码。所以你可以看到,我们的 RHEL 就是基于 CentOS Stream 而制作出来的。

王兴宇:如上所述,CentOS 关闭或者说 CentOS 停止服务支持的这个决定,应该是 CentOS 社区自己做出来的。我想知道是什么原因促使 CentOS 社区做出来关闭 CentOS,并且发展出来 CentOS Stream 这样一个决定的?

Thomas:好,我会从 CentOS 社区的角度回答一下这个问题。我大概三年前加入 CentOS 董事会,当时大家在讨论如何提高对 CentOS 社区的参与度问题,如何给用户更好的使用体验,当时提出来很多提议,最后大家认为 CentOS Stream 是我们在未来的一个正确的努力方向,通过这种模式可以提高 CentOS 的社区参与度。CentOS Stream 的模式对社区版的企业级操作系统发展(译注:CentOS 是 Community Enterprise OS 的缩写)也至关重要。总体来讲,之所以会做出这样一个决定,就是想要改善社区的参与度。谢谢。

王兴宇:那么,我想知道,在做这样决定的时候,社区内部有没有反对意见?最大的反对意见是怎么样的?你们怎么平衡这样的反对意见的?

Brian:我来先回答一下,等一下 Thomas 再来补充一下。首先,我们了解一下 CentOS 社区的治理模式对回答这个问题很重要。CentOS 的治理模式和很多其他开源项目的运作模式有所不同。CentOS 有一个治理委员会(董事会),这个治理委员会需要每个人都对一个新的决策达成共识才可以,只是大多数人同意,有少部分人反对,是不行的。这个共识可以是 Yes,也可以是 No,甚至可以是中立的意见,都没问题,但是强调的一点是这个决议必须是董事会一致的共识。我本人当时也是在对话的房间当中的。

其实另外一个我想说的就是,我们在整个的对话沟通的环节当中,不会去探索董事会中的每一个个人的意见,总之我们最后要听的是董事会作为一个整体它的一个一致性决议是什么样的。另外我想说的就是,现在这个董事会其实还在进行提名,也就是说任何人对这个职位都是可以来申请的,只要你觉得你合适,你现在就可以申请。好,交给 Thomas。

Thomas:我也再说两句,我们的整个社区其实唯一有一个目的,也就是说,希望 CentOS Stream 的社区变得越来越开放,越来越好,真的实现我们完全意义上的开源的模式,所以在这样开放的讨论当中,包括开发者的讨论当中当然有一些人会有不同意见,这是很正常的事情。但是就像 Brian 刚刚说的,我们的目的是所有的董事会成员必须要达成一致意见,这个一致意见必须是对于整个社区未来有更好的或者说最佳的用户体验,所以我认为实际上这是非常重要的一点,我们也是从长期的角度来希望 CentOS Stream 代替了 CentOS Linux 以后,在未来可以让所有人都能够感到满意。

我们的使用者是非常、非常多的,而且每年我们也会开一些会议,不管这个会议是面对面的还是网上的。如果是面对面的,我们还会交换一些各地的美食,总之这是一个非常有意思的社区,也是非常好的一群人,可以在一起工作。至少截止到目前来看,我们觉得 CentOS Stream 这个模式是比之前更好了,有更多的人愿意向社区做出贡献,所以我们开的这个会议也都是完全透明的,如果你感兴趣的话,其实在 Youtube 上能看到我们讨论的是什么,以及如果大家感兴趣的话,非常乐意你们可以跟我们接洽,参与我们的讨论,我们也非常愿意把你纳入到这个社区当中的一员。谢谢。

王兴宇:我们看到在后 CentOS 时代,整个开源操作系统市场格局已经发生很大变化。在这种情况下,对于 CentOS,对于 RHEL 的产品迭代有没有影响?目前来说,把 CentOS 换成 Stream 以后,是否社区对 Stream 的贡献更多?RHEL 是否因此变得更好?

Thomas:好的,我先从社区的角度回答一下。再强调一下,因为我不是红帽的员工,所以从社区的角度讲一下。举个例子吧,CentOS Stream 9 是 RHEL 9 的上游,通过 CentOS Stream,你可以直接参与到 RHEL 的开发当中。比如,你可以通过 Bugzilla 提交问题,你也可以提交补丁。那么是不是你的补丁未经测试就可以加入到 CentOS Stream 里呢?不是的!与你一起工作的还有很多红帽的开发者,他们会和你一起检查代码,你写的补丁也要通过 RHEL 的测试流程,红帽会去看你的补丁是否满足 RHEL 的质量要求,而最终决定是否被加入到 CentOS Stream 里。但整个流程更开放了,你可以参与所有的讨论,通过 CentOS Stream,你可以直接参与对 RHEL 发展方向的讨论,你在 Stream 里所看到的就是即将发布的 RHEL。

Brian:Thomas 回答的非常好,我在这里想补充的是,从红帽的角度来看,最让我们激动的并不是对 Stream 的贡献。很多的贡献往往以这样的形式出现:观察红帽工程师所做的,然后提出建议 —— 你是不是需要考虑这个方面?我告诉你你的这个代码改动可能有这些潜在的问题,等等。而是我们看到 CentOS Stream 里有非常强有力的 SIG(特别兴趣小组),通过“特别兴趣小组”形成了 CentOS 项目的生态。特别兴趣小组的人们会提出很多想法,这些想法提出的初衷并不一定和 RHEL 相关,更多的是与社区参与者自己相关,或者说他们希望 RHEL 变成的样子。红帽也是以第三方观察者的身份去看这些想法如何在社区中酝酿、孵化,最终一些好的想法就会在 RHEL 的大版本中落地。

王兴宇:我们之前一直在宣传 Stream 这个模式会让社区更容易参与到 Stream 的贡献之中,我现在想进一步问,我们 CentOS Linux 8 去年底停止服务以后,Stream 出现以来,社区对 Stream 的贡献是不是更多了?从你们的管理层来说,有没有这样的一个数据或者图表可以证明这些东西?

Brian:我来回答一下,您说的这个数据如果是从统计学的角度来说,这种数据是很难拿到的,因为很多时候大家为了虚荣心(想要一些好看的数据),比如说浏览量、下载数据,但我觉得这些数据并不是您想要的。我看这个问题从两方面来看,一是贡献量的衡量,我们现在其实能够实实在在的看到越来越多的公司、个人都在直接的参与到对社区的贡献当中,这些贡献要么最终被收录到 RHEL 的代码当中,要么这些讨论依然保留在 SIG 里面。

另一方面,就是这种贡献的可能性,不是说讨论 Stream 出现以来是不是贡献量更多的问题,而是说,Stream 出现之前,你是没办法去贡献的。有了 Stream,才有了对 CentOS 项目贡献进而影响到 RHEL 的可能性。所以这不是“是不是更多”的问题,而是“从无到有”的问题。

要知道,之前对于 CentOS 项目贡献,只有两个途径:

第一个途径,就是你的代码先被上游社区接受,然后被 Fedora 集成,然后被 RHEL 集成,最后出现在 CentOS 里,这是一个漫长的路径,而且不是对 CentOS 贡献;

第二个途径,就是你必须是红帽的客户或合作伙伴,那么在打造 RHEL 的过程中,你的这个想法对于你的公司和红帽,都是一个高优先级的事情,那么会被优先加到 RHEL 里,然后出现在CentOS里。

有了 Stream,实际上是有了第三个途径,就是你通过 CentOS 社区,通过 Stream 项目直接把你的贡献集成到 RHEL 里

关于数据,其实你可以去看一下 GitLab,CentOS Stream 的代码日志都在那里。对于 CentOS Stream 8 来说,因为是处在 CentOS Linux 模式到 CentOS Stream 的模式转变的过程当中,你会发现所有的贡献基本都来源于红帽。但对于 CentOS Stream 9 来说,你可以通过 Git 日志看到所有的贡献(CentOS Stream 9 的代码提交日志和 RHEL 9 的代码提交日志是同一个)。对于每一个贡献,你可以去查看代码的修改轨迹、社区的讨论,Bugzilla 上的讨论,这是我对于如何获取关于社区贡献的数据的一点看法。

王兴宇:去年 CentOS Linux 8 停止更新以后,红帽或者 CentOS 接到的最多反馈是什么?你们做了哪些回应?

Brian:好的,我先来回答一下,然后我鼓励 Thomas 也再来回答一下。因为大家知道我是在红帽工作,那么我所听到的和 Thomas 从社区的角度听到的可能有所不同。确实有一些人的反馈是“你们怎么敢这样做?这让我很愤怒。”那么我们的回应是,“当你冷静下来,考虑一下 Fedora Linux 的价值主张的时候,考虑一下 CentOS Stream 价值主张的时候,我们是不是可以讨论一下 RHEL,或者很多其他的 Linux 发行版,看看如何选择一个合适的 Linux 发行版。”(译注:此处的 Brian 的意思可能是客户应该选择合适的发行版 —— 如果 CentOS Stream 不能满足期望时。)

RHEL 和它的衍生版如 CentOS 有很多用户。我们的客户和我们讨论的通常是 RHEL,事实上我们没有通过 CentOS 服务我们的客户,因为我们的产品是 RHEL。我们收到的客户反馈也通常是如何去影响 RHEL 的小版本发布,影响 RHEL 的小版本发布简直太难了,是不是在小版本发布时可以更多的听取广大用户的声音?我们有些客户,想尽早知道我们是如何在下一个小版本中修复 Bug 的,这样他就可以早一点将他的系统和红帽的操作系统做持续集成,而不必等到 RHEL 的下一个发布。

当然,早期我们也听到另一种声音,就是现在在我的桌子上就有一台 Linux 服务器,我一直使用的是 CentOS Linux,那么现在我该怎么办?那么,我们的回答是,您可以使用免费的 RHEL 的个人开发者版本,我们不是试图要您付费,也不是想借此扩大市场占有率,我们的目的只有一个,就是促进开源社区的发展。诚然,开源社区发展好了对我们的产品也有益,但出发点还是促进开源社区的发展。对您来说,我们给你提供了一个选择:这就是免费的 RHEL(个人开发者版本),正好适用于你的这种使用场景。

Thomas:接下来我从社区的角度回答一下。开始的时候我们确实也听到一些抱怨或担忧的声音,比如红帽是不是从源头上杀死了制作 CentOS 的可能性。关于这点我要澄清的是,任何人都可以按照 CentOS Linux 的做法制作 CentOS Linux,有一些人已经这样去做了。有些人已经和我们取得了联系,并且获得了我们的帮助。这其实是大家的自由,我们不去也没有办法阻止人们去做他们想做的事情,相反,我们也欢迎大家一起到 CentOS 社区上来讨论,给我们反馈,这些都是很好的。

另一点,就是关于 CentOS Stream 的稳定性。我自己的话,之前大量的使用了 CentOS Linux,我是把 CentOS Linux 用在了开发测试环境上。从我的经验来看,CentOS Stream 是稳定的。CentOS 是一个社区项目,其实你有充分的自由去决定 CentOS 用在什么场景上,这可能和你的公司的决策也有关系。

王兴宇:在做出 CentOS 停止服务这个决定之前,你们是否预料到如今会出现多个替代品。这些替代品既有像 Rocky Linux、Alma Linux 这样的 CentOS 的原位替代品,也有像中国的 openEuler、AnolisOS 这样的非原位替代品,但是从某种意义上可以取代原有 CentOS 市场占有的一些发行版。你对这两类发行版有什么看法?

Thomas:好的,我先来回答一下,像您刚才提到的这些,坦白讲我并不是对每一个发行版都特别清楚。它们如果是 RHEL 的衍生版的话,如果愿意和我们取得联系,我们很乐意提供帮助。我们是开放的,我们是开源的,开源社区就应该这样,所以从我的角度来说,我并不想从竞争者或者市场占有率这样的角度去看其他一些产品,没有关系的。以前 RHEL 是怎么制作的,你可能要和红帽签了 NDA 才可以看到,现在你连 NDA 都不用签,你可以通过 CentOS Stream 看到非常具体、非常细节的操作。现在一切都是开放的,所以实际说现在比起十年前如果有人想要打造一个我们的替代品,相当于更容易、更简单了,但我们一点也不怕这个,我觉得这是别人的自由、别人的权利,而且我们也非常希望看到这样一个发展的态势

Brian:我也来说两句,从红帽的角度来讲,我们对于有其他的一些替代品我们没有任何看法。其实这就是开源的本质。作为一个以开源开放模式制作企业软件的公司,我们深知任何人都可以拿到这个代码做他们想做的事情,这是很 Cool 的。我们希望的是,如果你拿到这个代码,你去添加了新的功能或修复了 Bug,你也像其他人一样,将你的改动回馈到社区里去。我不喜欢看到的是有一些人拿了这个代码以后他自己做了一些事,比如创新或者解决了一些问题,但是他一点都不想着曾经受益于的这个社区,这个是我不喜欢看到的。因为我觉得,尤其是当你发现了有一个 Bug,你发现了怎么给它打补丁,你发现了一个解决问题的方法,绝对不要把这个当一个秘密一样藏着掖着,一定要想着开放的告诉别人,因为你是从一个开源的社区拿到这些代码的,这个对我来讲非常重要。

从红帽的角度,我还想强调两点:

一是,我们在制作 RHEL 这个产品的时候,我们更多考虑的是我们客户群他们有什么样的特殊需求、特殊场景需要满足,解决他们的问题。如果我在做一个操作系统的选型,我会去首先测试它是否可以满足我的应用场景。可能操作系统提供的很多功能都不是我需要的,我关注的是我需要的功能它是否可以提供。那么 RHEL 就是以这样的思路去开发的一个操作系统 —— 心怀用户

二是,开源软件公司为客户提供的价值不仅仅是代码本身,更多的是位于代码之上的东西。因为代码是开源的,任何人都可以获取这个代码并使用它。所以我想鼓励人们去思考,当你在选择一个操作系统的时候,你最看重的它的价值是什么。因为在源代码之上有很多价值,比如解决问题的能力、服务能力。你提到很多版本像 Rocky Linux、Alma Linux、openEuler 等等,Rocky Linux 是在 CentOS 项目刚刚提出变更时就出现了,像 Thomas 所说的,我们鼓励在开源领域的任何创新

还有说到市场占有率,市场占有率实际上做衡量很困难。当然红帽我们有一些我们内部数据,但是在外部的数据,就比如说我知道 IDC 对于市场上的 Linux 的发行版的市场占有率做过一些调查,但是他们做的调查很多时候是用代理的方式来进行衡量。这个我觉得就会有一些挑战,什么样的挑战呢?就是说你很难去衡量这个不付费的发行版是一个什么样的程度,在这种情况下,你可能拿到的数据就像我刚才说的,通过代理它不是一个最最真实的市场占有率的数据。另外还有像我们 Fedora 这个项目当中的一些数据,这个包含了一些终端用户的自愿参与。既然是自愿参与,所以很多时候这个数据你也不能够拿到真正可以展示实质情况的数据,这是我对市场占有率的看法,谢谢。

王兴宇:前面 Brian 也分享过关于如何在产品环境中使用 Stream,我想知道,如果企业在自己的产品环境中要应用 Stream 作为他的基础操作系统,您这边有什么最佳实践可以分享给大家?

Thomas:好的,我先来回答一下,因为我们确实在我们的环境中使用了 CentOS Stream。我们首先要评估我们想要做的事情,特别是在一个大的公司里面,每个部门可能诉求都不尽相同。在我们的评估中,我倒是没有看到 CentOS Linux 和 CentOS Stream 的表现有什么不一样。对很多企业来说,你可能要使用一致的操作系统,满足安全要求,稳定性要求,这些在我看来,CentOS Stream 和 CentOS Linux 是一样的。对于用户来说,你可能有些特殊的工作负载,有特殊的工作流程,那么,你需要做好测试,确保操作系统能够满足你的要求。

王兴宇:作为这次的采访方,我们 Linux 中国是一家中国的开源社区,所以我想知道中国的开源社区或者中国的 CentOS 的用户对于 CentOS Stream 的参与程度怎么样?从 CentOS 社区来说,是不是对中国的开源社区增加一些关注或者支持,可以让中国的开源开发者更多参与到 CentOS 社区的建设中?

Brian:好的,您刚才说的对于中国社区增加一些关注,对的,我百分之一万,双脚双手赞同。确实,因为曾经我本人以前的工作,作为 Fedora 社区的架构师,当时我就是在想说,如何能够提高两个地区的参与度:一个是南美,还有一个就是亚洲。那么在亚洲,尤其我们指的就是中国。因为我们知道,在中国有很多的 IT 的人才和精英,而且我们知道他们特别感兴趣,但我们就是不知道到底怎么样可以让他们参与到我们的这个社区的环境当中来?所以其实在这里,我也希望老王能给我们一些建议。因为我们毕竟是在中国外部的,很多时候我们的视角,不能够非常的贴合中国发生的事情。

比如说,我就举一个简单的例子,社区的这些开发者有时候要开会,对吧?你比如说我住的这个地方,我开会、通勤只需要二十分钟,不过这二十分钟对我来讲都是很长很长的时间。但是我知道,在中国,你说不定赶到晚高峰的时候,光回家就得用两个小时。我都难以想象这两个小时,因为二十分钟的通勤时间对我来讲都是已经很长很长了。那么在这种情况下,可能就会发现中国的有一些社区的参加者,他可能就不太愿意去参加这种社区的活动或者会议。所以在这方面,我也是特别希望老王可以告诉我们,我们应该怎么做,我们确实是希望能够给中国的社区增加关注,但是很多时候这个外国人的视角不会像你们这么准确。

Thomas:好的,那我也再加一句,我们刚才也一直在表达,我们一直都是开放的,我们希望有更多的人加入。尤其是更多来自中国的。我们刚才也说了,管理委员会,或者说管理层,现在不是正在提名候选人吗?所以说,老王,如果您或者是在座的各位,如果知道谁在这个方面做的特别好,因为我们可能不知道谁在这方面的工作特别优秀,你们也可以给我们来说能够提名谁,我们都非常愿意,只要这个人是愿意给社区进行分享,回馈社区。我们每个月还会有一些报告来统计谁做了一些什么事儿,无论如何,我们的目标就是希望能够有更多的贡献者,尤其是来自中国社区的贡献者。因为这样我们可以把这个生态系统打造的越来越完善。所以,非常非常开放。如果您有一些提名候选人的想法,欢迎告诉我们。

王兴宇:好的,很抱歉,我可能提不出来太多的见解,只是简单的有几个建议。我也一直非常关注 CentOS 社区和国内的开源社区的情况。所以我对于 CentOS 如何在国内发展,有一点点思考:

首先,CentOS 在中国还是有非常多的受众和认知度的。几乎在中国国内传播 Linux 的文章,都会拿 CentOS 作为蓝本。而这一点跟国外比较差异大,国外拿 Ubuntu 作为蓝本比较多一些。

其次是,国内确实存在这样的情况,无论是我们的社区文化还有语言,其实造成中国的 CentOS 的爱好者,或者贡献者,很难跟国际的 CentOS 社区直接对接起来,这种情况下,确实存在一定的阻碍。所以我有几个建议:

1、建议 CentOS 国际社区可以支持中国的 CentOS 本地化社区的建设。包括像一些本地化的翻译这种类似的工作可以做起来。

2、国内的一些线上、线下的社区活动希望可以得到国际社区的支持。

3、CentOS 发生的一些事情,比如说社区的一些动态,或者社区的一些倡议、决策,可以及时的传达给中国本地的社区。这方面其实在我们国内,无论是交流平台,交流习惯,比如说国外用 Facebook、Telegram、Twitter 比较多一些,国内几乎这些是不可用的,我们反而用的微信、QQ 会比较多一些。而邮件列表这种比较传统的模式,其实说实话,在中国并不太像国外那么受欢迎。所以说,在这种情况下,一些适应本地化的改造是可以适当做一些的。

我觉得通过这样的一些工作,可以有力的发掘出来中国的一些开源爱好者和贡献者,参与到整个 CentOS 社区之中。这样的话,无论是对中国的 CentOS 社区建设,还是对整个国际化的社区建设都是有好处的。以上是一些不成熟的想法,仅供参考。

Thomas:非常感谢老王。的确,我特别理解刚才您说的本地化,包括语言的一些障碍,确实可能阻止了中国社区跟国际社区的一些对接和交流。因为我本人英语也不是我的母语,所以我能够理解您说的语言障碍。尤其是对于一个人可能感觉自己好渺小,要对这样的一个这么大的国际社区做一些贡献,可能一开始都会有点害怕。但其实这也没关系,包括就在我日常的工作当中,有的时候你会发现有一个人说法语,然后一会儿又切换成英语,很多时候一开始你会觉得有点别扭,但实际上也没关系,参与多了,你就会觉得这挺好的。

如果中国这边有一些开发者,或者贡献者,如果想要对社区做出一些贡献,甚至都可以直接跟我联系,给我写电子邮件,都没有问题。哪怕我本人不能和你进行这样的对话,我会把你对接到我心里认为的最合适的那个人。包括在本地化、在翻译方面,确实我们要做出更好的一些决定,因为翻译确实特别特别的重要,我们确实也不认识中文为母语的人,所以可能在这方面有点问题。但是没关系,我只是鼓励大家都可以对社区做出贡献,哪怕一开始只是一小步都没有关系,如果有什么问题可以直接与我取得联系。

Brian:好的,我也是同意刚才您说的语言障碍,确实翻译很重要,确实语言障碍可能有一些时候会对我们有一些影响。但是,我也想强调一点,在 CentOS 这个社区当中,它还是跟其他的一些社区有区别的,最大的特点是我们的很多工作是异步的。这不像你参加其他的一些国际会议,你需要实时做出反应,你有时候开其他会议你会发现好多英语为母语的人在那儿吵的特别热闹,轰轰烈烈,然后他们要做决定,要举手表决的时候,你都没听清楚他们在说什么,对吧?但是我们的 CentOS 社区其实不存在这种情况。另外,CentOS 这个社区是非常非常包容的,也是非常欢迎新成员的,任何可以作出贡献的人,我们都很欢迎。所以只要大家再多一点点的勇气,手拉手一定可以把这个问题解决的非常好。

王兴宇:好的,正好说起来翻译,我这边在 Linux 中国旗下有一个叫 LCTT SIG 的翻译组织,已经运行了九年,所以在这方面多少有一些经验。将来我们可以建立这样一个平台或者渠道,沟通双方障碍的一个需求和共识。其次,我们本身也有一些核心成员,甚至有一位成员今天也在会议里,她在英国留学,也可以参与到我们这个平台里,使国际社区可以在中国更好的落地,形成一个中国的 CentOS 分社区。

Thomas:刚才您说的这两个建议,一个是已经运行九年的翻译组织,还有一个就是您也有一些核心成员今天也参会,毕业于英国。这些我希望能够落实到文字上,因为我们的董事会成员,比如说他要讨论一些什么,一定是要有一个文字的东西来讨论的。所以这些都是非常好的想法,但是请花 5 分钟,如果能够把这些关于本地化、翻译等等的平台写下来,这样我们管理层就比较好讨论。

王兴宇:好的。接下来是最后一个问题了,我想了解一下,关于 Fedora、Stream,还有 RHEL 未来的发展计划是什么?两位可以给我们展示一下你们的路线图吗?

Brian:好的,关于 Fedora、CentOS Stream、RHEL 的未来发展计划,我想从两个维度来回答。一个是社交组织的维度,另一个是代码的维度。

从社会组织的维度:

  1. Fedora:主题是如何提高对 Fedora 的贡献,如何使得社区更多样化;
  2. CentOS Stream:和 Fedora 差不多,提高社区贡献和使社区更多样化,另外就是发展 SIG(特殊兴趣小组),充分发挥 SIG 的作用;
  3. RHEL:进一步繁荣包括社区、合作伙伴、客户的 RHEL 生态

从代码的维度:

Fedora:

  • 集成上游社区最新最好的代码,功能最丰富,做业界的引领者;
  • 面向特定的场景,做特色的发行版,如 Fedora IoT 就是面向物联网场景的 Fedora 操作系统。

CentOS Stream:

  • RHEL 稳定可靠的持续交付版,用户可以提前看到即将发布的 RHEL 版本;
  • 基于稳定的代码基础,通过社区发展 SIG,在特定领域创新。

RHEL:

  • 我们面向客户的销售团队有很多关于产品的介绍,但我今天不是来为产品做广告的。我相信红帽大中华区的同事们可以给您很好的支持。

以下本场访谈其它与会者的问答环节:

Q1:从 CentOS Linux 转移到 CentOS Stream 之后,对于社区的支持工作发生了什么样的变化呢?

Thomas:好的。回答这个问题,我觉得一点都没改变。现在如果你遇到一些问题,你还可以跟我们一起来解决这个问题,可以得到最好的解决的方案,所以对我本人来讲,我觉得根本没有区别,但唯一一个我觉得好的地方就是说现在有了 CentOS Stream,你也有机会来提供这个补丁了。

之前,你是没办法直接对 RHEL 提供补丁的。但现在,你提供这个补丁,然后工程师、社区都可以进行非常开放的讨论,可以讨论这个补丁是不是应该用在下一个的版本发布当中。所以我觉得这是非常好的一点。总结来说,CentOS Stream 使得 RHEL 的开发流程更加开放了,而且我也非常鼓励大家可以做出很多的贡献。对社区的贡献越早,你贡献的影响可能就会越大。所以,从长期的角度来讲,我觉得这是一个非常好的变化。除此之外,没有任何大的区别。

Q2:很多开源社区发展到现在,虽然写代码的人多了,但维护人员却在减少,那 CentOS 社区如何保证优秀的代码能被看到,并集成到产品当中呢?

Brian:好的,您提的这个关于维护人员减少的问题,开源项目的维护确实是个大的话题。因为对于写代码的人来说,你可能一年花一个小时的时间为这个项目写了一段代码,然后就跑掉了;但是对于维护者来说,他要一直维护着这段代码。所以对于开源项目的维护来说,当您提交一个补丁时,维护者说 Yes,意味着他将永远替你维护这段代码。维护者说 No,不是说彻底把你否定了,你明天、后天依然可以提交。这未必是说明你的补丁不好,不优秀,也许是维护者不完全明白你的意图,或者你的改动太大、涉及的面过于宽泛,因此,在这个时候,就需要和维护者有一个很好的沟通。

对于 CentOS Stream 项目来说,和其他开源社区不一样的是,维护人员没在减少,因为红帽有很多工程师是 CentOS Stream 的维护者,红帽会确保 CentOS 社区有足够的维护者使得优秀的代码不被遗漏,这不意味着每一个补丁都一定会被说 Yes(被接受),而是我们有足够的人手工作于 CentOS 社区可以去说 Yes。另外就是社区里优秀的维护人员,我们也会去雇佣他,让他有足够的时间陪家人、休假,免于奔波等后顾之忧,这样也可以更安心的做好开源项目的维护工作。作为开发者,你可能是自愿的从事开源项目的开发,或者你的组织在做这样的工作。我们也可以对第三方组织提供支持。开源不仅仅是指它的源代码,而是整个社区,整个社区我们都要支持。

(本次访谈到此结束)

使用 Watchtower 自动更新 Docker 容器基础镜像

对开发运维人员来说,保持 Docker 容器为最新版本是重要工作之一。手动更新 Docker 容器是一项耗时的工作。这篇文章解释了 Watchtower 是什么,如何安装它,以及在 Linux 中如何 使用 Watchtower 自动更新正在运行的 Docker 容器

Watchtower 是什么?

Watchtower 是一款自由开源的应用,用来监控运行中的 Docker 容器,并且当它发现基础镜像被更改后,可以自动的更新容器。

若 Watchtower 发现一个运行中的容器需要更新,它会以发送 SIGTERM 信号的方式,优雅的结束运行中容器的运行。

它会下载新镜像,然后以最初部署时使用的方式,重启容器。所有文件会在后台自动下载,因此不需要用户的介入。

在这份指南中,我们将会明白如何在类 Unix 系统中使用 Watchtower 自动更新正在运行的 Docker 容器。

我已经在 CentOS 和 Ubuntu 中测试了这份指南,所有的 Linux 发行版中操作过程都一样。

在 Linux 中安装 Watchtower

可以通过 Docker 镜像的方式下载 Watchtower 。因此,部署它是小事一桩。在你的 Linux 中安装 Docker 镜像,然后运行 Watchtower 立即开始监控 Docker 容器。

参考下方指导在基于 PRM 和 DEB 包管理系统中安装 Docker

安装 Docker 后,你可以使用以下命令以 root 用户身份部署 Watchtower 容器:

# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

如果你已经安装了 Docker 桌面版,以普通用户运行 Watchtower 容器。

$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

该命令会拉取最新版的 watchtower 镜像,并运行 watchtower 容器。

输出样例:

Unable to find image 'containrrr/watchtower:latest' locally
latest: Pulling from containrrr/watchtower
1045b2f97fda: Pull complete 
35a104a262d3: Pull complete 
1a0671483169: Pull complete 
Digest: sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3
Status: Downloaded newer image for containrrr/watchtower:latest
91c104ef0e9896e8cd5ff30d9f13e728dbfad66443830ec2ac85dde6d7d37564

Run Watchtower Docker Container

使用 Watchtower 自动更新 Docker 容器

在你的系统上,Watchtower 正在和其他容器一起运行。你可以使用一下命令查看运行中的 Docker 容器列表:

$ docker ps

输出样例:

CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                         NAMES
91c104ef0e98   containrrr/watchtower       "/watchtower"            14 minutes ago   Up 14 minutes   8080/tcp                                      watchtower
f90b462b0712   bitnami/wordpress-nginx:6   "/opt/bitnami/script…"   19 minutes ago   Up 19 minutes   0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp   ostechnix-wordpress-1

正如上方输出所示,watchtower 容器正在和名为 ostechnix-wordpress-1 的容器一起运行。从现在开始,watchtower 会每隔几分钟会检查该容器。

如果 Watchtower 发现该容器的基础镜像的任何变化,它会优雅的关闭 ostechnix-wordpress-1 容器,然后使用与最初启动它时使用的相同方式,启动新的镜像。

类似的,它会自动地每隔几分钟检查所有的运行中容器,并自动更新它们。

Watchtower 如何更新多连接的容器?

在监视多连接容器时,Watchtower 十分智能。

假设我们现在运行两个容器。

$ docker ps

输出样例:

CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                         NAMES
91c104ef0e98   containrrr/watchtower       "/watchtower"            14 minutes ago   Up 14 minutes   8080/tcp                                      watchtower
f90b462b0712   bitnami/wordpress-nginx:6   "/opt/bitnami/script…"   19 minutes ago   Up 19 minutes   0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp   ostechnix-wordpress-1
a895f082438a   bitnami/mariadb:10.6        "/opt/bitnami/script…"   20 minutes ago   Up 19 minutes   3306/tcp                                      ostechnix-mariadb-1

View Running Docker Containers

正如你看到的,我们正在运行 ostechnix-wordpress-1ostechnix-mariadb-1 这两个容器。ostechnix-mariadb-1 容器链接到 ostechnix-wordpress-1 容器。

如果 Watchtower 发现 ostechnix-wordpress-1 容器有个新版本,它会先关闭与之相连接的 ostechnix-mariadb-1 容器 ,然后才会关闭 ostechnix-wordpress-1 容器。

更新 ostechnix-wordpress-1 容器后,Watchtower 会以正确的顺序,且与最初启动它们时使用的相同方式,重启这两个容器,以便应用程序正确恢复。在我们的例子中,首先启动的是 ostechnix-mariadb-1 容器,然后是 ostechnix-wordpress-1 容器,以确保连接能够继续运行。

监控特定容器

默认情况下,Watchtower 将监控在它所指向的 Docker 守护进程中运行的所有 Docker 容器。

不过,你可以像下面这样,通过指定容器名称限制 Watchtower 监视特定的 Docker 容器。

$ docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower ostechnix-wordpress-1

在上方的例子中,watchtower 会忽略其他容器,只监视名为 ostechnix-wordpress-1 的容器更新情况。

如果你不指定任何参数,Watchtower 会照常监视所有运行中的 Docker 容器。

发送提示

或许你想收到容器更新的通知。你可以通过电子邮件、Slack 、MSTeams 以及 Gotify 发送通知。

下面这个例子展示了如何通过电子邮件发送通知。假设你已经设置了 SMTP 服务器。

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e WATCHTOWER_NOTIFICATIONS=email \
  -e [email protected] \
  -e [email protected] \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \
  -e [email protected] \
  -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \
  -e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \
  containrrr/watchtower

参考下方 Watchtower Github 仓库和 Watchtower 官方主页获取更多信息:

资料


via: https://ostechnix.com/automatically-update-running-docker-containers/

作者:sk 选题:lkxed 译者:Donkey 校对:wxy

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

使用 LibreOffice 模板快速开始在 Linux 上写作。

任何办公软件套件中的主要部件都是文字处理器。无论你的需求如何,从记笔记到写书,文字处理器都能完成工作。大多数 Linux 发行版都包含 LibreOffice 套件,我使用 LibreOffice Writer 作为我的文字处理器。

LibreOffice Writer 通过其工具栏、键盘快捷键和菜单提供了很大的灵活性。但是,如果你只是想轻松地开始一个文档,你可以使用其中一个预加载的模板。以下是如何使用 LibreOffice Writer 模板让你的工作更轻松。

开始一个新文档

LibreOffice Writer 从一个空白文档开始。大多数人就从这里开始写作,但这也是从模板创建新文档的地方。

首先,打开“ 文件 File ”菜单,然后选择“ 新建 New ”、“ 模板 Templetes ”。此选项会打开模板选择对话框:

Open templates from the File menu

模板选择对话框显示系统上可用的不同模板。默认的 LibreOffice Writer 安装包括用于不同类型的商务信函、简历和其他文档的模板。你可以使用对话框顶部的过滤器选项浏览列表或缩小结果范围。

Select a template

单击你想要的模板,然后单击“ 打开 Open ”以使用此模板开始一个新的 Writer 文档。一些模板包括样板文本或其他示例材料,你可以使用这些材料开始编写新文档。例如,现代商务信函由以下 “lorem ipsum” 示例文本组成:

Modern business letter template

其他文档模板只是为你提供了一个具有一些漂亮的默认设置的空文档的起点。例如,现代文档模板对文本正文使用无衬线字体(例如 Linux 系统上的 Carlito):

Modern template

下载模板

如果你在内置选项中没有找到所需的模板,你可以从 LibreOffice 的网站下载合适的文档模板。进入 LibreOffice 扩展以开始使用 LibreOffice 扩展和模板库。

Templates and extensions options

在框中输入搜索词以查找你需要的文档模板。例如,学生可能会搜索 “APA” 来查找为 APA 样式设置的文档模板,这是学术论文的常见样式。

APA format template

总结

如果你需要编写文档,请浏览 LibreOffice 模板以找到适合你的模板。使用模板意味着你可以花费更少的时间来设置文档以使其具有某种外观,并且可以更快地工作。在支持你的工作的 LibreOffice 扩展和模板库中查找其他文档模板。

(图片来源:Jim Hall,CC BY-SA 4.0)


via: https://opensource.com/article/22/7/libreoffice-writer-templates

作者:Jim Hall 选题:lkxed 译者:geekpi 校对:wxy

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

经过了一个月,可能是在讨论、会谈和对话之后,Cutefish OS 正式重启了开发。

不久前,我们报道了 Cutefish OS 停止开发,而且 GitHub 上没有任何活动。好吧,看起来开发者在 GitHub 上复活了这个项目,并对该操作系统的未来有了一些设想。

7 月 31 日,Cutefish OS 的 GitHub 主仓库进行了更新,内容如下:

你喜欢的 CutefishOS 现在回来了!新网站正在建设中(即将推出)

不仅如此,该团队还简要介绍了这个项目的路线图。

Cutefish OS - 应用程序菜单

Cutefish OS 的开发:即将到来的里程碑

首先,主要目标是官方网站的准备工作。

其次,根据 GitHub 上的说明,下一个版本可能会基于 Ubuntu 22.04 LTS。Cutefish OS 有不同的桌面定制版,如 Ubuntu 和 Debian。另外,你可以在 Arch Linux 上只安装Cutefish 桌面

第三,该团队旨在评估当前的问题并开始接受拉取请求。完成这项工作后,将更容易确定需要修复的项目的优先次序。最后,为未来版本的新功能进行规划。

不仅如此,还有一种可能性,即用 openEuler Linux 开发新的 Cutefish 桌面定制版。openEuler Linux 是华为为商业和企业用途而创建的一个发行版。

当前 Cutefish 操作系统计划

(LCTT 译注:但是从 GitHub 仓库来看,最近并没有任何实质动作。)

一个新的名字?

当我在寻找更多的信息时,我发现该团队注册了一个新的域名,有一个新的名字,即 openfish.org(LCTT 译注:因无备案,展示无法访问)。桌面环境或整个操作系统将被重新命名为 openfish。在这一点上,我有一个猜测:

旧的域名 cutefishos.com 可能被别人接管了,因此这样决定。

但是,在我看来,“openfish” 是一个比 “cutefish” 更好的品牌名称。

(LCTT 译注:究竟是原班人马中的部分人决定重启,还是整个团队复活,目前不得而知,从改名上看,似乎新的团队并没有 cutefish 相关的品牌控制权。)

下一步是什么

最新的 0.8 版有几个与键盘、设置窗口、Flatpak 应用程序等有关的问题。最好的办法是在最后的基线上首先解决这些问题。然后可能是带有额外功能的 1.0 版本。

希望在未来几周内,我们能看到更多关于开发的更新。如果你想发表意见,询问有关期望或功能要求,在 GitHub 上创建一个帖子

欢迎回来,Cutefish OS。


via: https://www.debugpoint.com/cutefish-development-restarts/

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

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

使用两个 ls 程序: lsd 和 exa 来重新想象和设计你的文件和目录列表。

Linux 中的 ls 命令是最常用的命令。此命令列出终端中的文件和目录。因此,如你所见,它非常流行,也许每个人都在使用。

但该命令输出的信息量很大,有时用彩色的方式查看它们会更方便。

例如,如果你以最基本的方式运行 ls 命令,它应该看起来有点像这样:

The default list files and directories view via ls command

这似乎有点乏味,不是吗?如果你可以对其进行一些样式设置,以便在看起来不错的同时变得更具可读性如何?

以样式列出文件和目录

lsd

我想向你展示的第一个应用叫做 lsd,也就是 “LSDeluxe” 的缩写。它是对 GNU ls 命令的重写,具有列标题、各种项目的颜色、字体和图标支持等附加功能。

这是安装后的样子:

lsd -l --header

lsd command showing list of files

正如你所看到的,它看起来非常漂亮,用不同的颜色代码表示权限、文件类型和文件夹,甚至在文件名旁边添加图标。

该应用充满了诸如树视图(见下文)之类的功能,它甚至可以在单个命令中为你提供文件夹内的文件列表:

lsd -l --header --tree

lsd command showing a tree view

你可以在其 官方 GitHub 页面 上了解有关其功能的更多信息。

我相信你很兴奋。让我们看看如何安装它。

你可以从 此处下载 用于 Ubuntu 和相关发行版的 deb 文件。之后,只需运行 dpkg 即可安装:

sudo dpkg -i lsd_vvvv_amd64.deb

对于 Fedora Linux,使用以下命令:

sudo dnf install lsd

Arch Linux 用户可以使用以下命令获取它:

pacman -S lsd

该应用也可用于其他发行版、macOS、BSD 和 Windows。对于这些说明,你可以 在此处找到它们

为了获得更好的体验,请将其与 带有 Oh My Zsh 的 Zsh shell 一起使用。

exa

下一个程序是 exa,类似于 lsd 但具有更多功能。exa 命令可以为你的 ls 输出着色,检测 Unix 系统中的各种文件类型、标题、树视图等更多功能。

exa 是一个单一的二进制文件,占用的资源很小。以下是一些示例命令:

exa -al
exa -abghHliS
exa -abghHliS --long --tree

Various exa commands

你可以在 GitHub 上了解有关 exa 参数和选项的更多信息。

exa 的安装很简单,只需要一个命令。对于 Ubuntu 和相关发行版,你可以使用以下命令安装它:

sudo apt install exa

对于 Fedora 和 Arch Linux,分别使用以下命令:

sudo dnf install exa
pacman -S exa

同样,所有其他操作系统的安装说明都可以 在此处找到

从终端复制为 HTML

一个有趣的技巧是,以上所有彩色列表都可以通过默认的 Ubuntu 终端复制为 HTML。你可以将它用于你的网页或文档。

例如,我将上面的示例复制到 LibreOffice Writer 文档中。

这是最好的功能之一,尽管它取决于终端程序而不是上面的程序。

Exporting the command output as HTML

总结

我解释了两个程序的内部工作 – lsdexa 以样式列出文件和目录。我希望你能将它们用于不同的需求。

如果你喜欢它们,或者如果你知道任何此类程序,请在评论栏中告诉我。


via: https://www.debugpoint.com/list-files-directories-style/

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

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