2020年6月

Linux Lite 是适合 Windows 用户的最佳 Linux 发行版之一。 不仅限于此,它还是最受欢迎的轻量级 Linux 发行版之一。

基于 Ubuntu 18.04 的 Linux Lite 4.x 系列虽然不错,但没有 UEFI 支持。 但是现在基于 Ubuntu 20.04 的 Linux Lite 5.0 终于来了,我很高兴看到这些变化!

在本文中,我们将介绍 Linux Lite 5.0 的新增功能。

Linux Lite 5.0:关键变更

即使 Linux Lite 从 2.x 就开始支持 UEFI,但他们总是默认发布非 UEFI 的。

但是,在 Linux Lite 5.0 中,他们终于增加了开箱即用的 UEFI 默认支持以及许多重大改进。让我们看看发生了什么变化:

UEFI 支持

Linux Lite 5.0 支持开箱即用的 UEFI。但是,他们建议禁用安全启动,即使该功能可以工作。

你可以看看他们的论坛文章,以了解更多信息。此外,你还可以在新的内置帮助手册中找到有关此的更多信息。

基于 Ubuntu 的发行版,没有隐藏的遥测

如果你正在寻找基于 Ubuntu 的 Linux 发行版,且没有任何隐藏的遥测功能,那么 Linux Lite 5.0 似乎是理想的选择。

发布公告中,他们在变更日志中提到了它,并提供了截图:

GUFW 防火墙替换为 firewalld

你可能已经读过在 Linux 上使用 GUFW 设置防火墙,但从 Linux Lite 5.0 开始,它已由 firewalld 取代。

似乎 GUFW 不能像 firewalld 那样配置。因此,他们决定替换它。

默认情况下,它是禁用的。但是,你可以按照帮助手册中的教程选择启用它。

新的 Whisker 菜单

Whisker 菜单已更新至最新可用的软件包(v2.4.4)。 除了更新之外,你还可以注意到安装更新现在被固定在收藏夹。

HiDPI 设置

如果需要,你会发现从设置菜单中设置 HiDPI 非常容易。

已添加 XFCE 屏幕保护程序

在 Linux Lite 5.0 中,你还将注意到添加了 XFCE 屏幕保护程序,默认情况下它处于禁用状态。

这是一个简单的补充,对于一直想要屏幕保护程序并能够对其进行调整的用户而言,这将很有用。

其他重要改进

除了上面提到的关键要点外,还有其他一些改进对于 Linux Lite 5.0 用户而言应该是很方便的。我在这里列出其中一些:

  • Mousepad 替换 Leafpad
  • 新的更新通知
  • 在即时启动时进行完整性检查
  • 帮助手册的重大改进
  • Lite 软件中用 Chrome 取代了 Chromium
  • 新的布局选项
  • Lite 欢迎页面和 Lite 用户管理器现在更新到 GTK3 和 Python3。
  • 欢迎页面添加了新的选择:选择深色或浅色主题、UEFI 和安全启动、反馈
  • 改进的 Lite 小部件

如果你想进一步了解更改,可以在其官方公告中找到详细的更改列表。

总结

我认为 Linux Lite 5.0 比以往任何时候要好,并且随着最近新增的功能,对于许多新 Linux 用户来说,它也是一个绝佳的选择。

你如何看待 Linux Lite 5.0?在下面的评论中让我知道你的想法。


via: https://itsfoss.com/linux-lite-5-release/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

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

借鉴 C 语言的历史,学习如何用 Python 编写有用的 CLI 程序。

本文的目标很简单:帮助新的 Python 开发者了解一些关于命令行接口(CLI)的历史和术语,并探讨如何在 Python 中编写这些有用的程序。

最初……

首先,从 Unix 的角度谈谈命令行界面设计。

Unix 是一种计算机操作系统,也是 Linux 和 macOS(以及许多其他操作系统)的祖先。在图形用户界面之前,用户通过命令行提示符与计算机进行交互(想想如今的 Bash 环境)。在 Unix 下开发这些程序的主要语言是 C),它的功能非常强大。

因此,我们至少应该了解 C 程序的基础知识。

假设你没有读过上面那个链接的内容,C 程序的基本架构是一个叫做 main 的函数,它的签名是这样的。

   int main(int argc, char **argv)
   {
   ...
   }

对于 Python 程序员来说,这应该不会显得太奇怪。C 函数首先有一个返回类型、一个函数名,然后是括号内的类型化参数。最后,函数的主体位于大括号之间。函数名 main运行时链接器(构造和运行程序的程序)如何决定从哪里开始执行你的程序。如果你写了一个 C 程序,而它没有包含一个名为 main 的函数,它将什么也做不了。伤心。

函数参数变量 argcargv 共同描述了程序被调用时用户在命令行输入的字符串列表。在典型的 Unix 命名传统中,argc 的意思是“ 参数计数 argument count ”,argv 的意思是“ 参数向量 argument vector ”。向量听起来比列表更酷,而 argl 听起来就像一个要勒死的求救声。我们是 Unix 系统的程序员,我们不求救。我们让其他人哭着求救。

再进一步

$ ./myprog foo bar -x baz

如果 myprog 是用 C 语言实现的,则 argc 的值是 5,而 argv 是一个有五个条目的字符指针数组。(不要担心,如果这听起来过于技术,那换句话说,这是一个由五个字符串组成的列表。)向量中的第一个条目 argv[0] 是程序的名称。argv 的其余部分包含参数。

   argv[0] == "./myprog"
   argv[1] == "foo"
   argv[2] == "bar"
   argv[3] == "-x"
   argv[4] == "baz"
   
   /* 注:不是有效的 C 代码 */

在 C 语言中,你有很多方法来处理 argv 中的字符串。你可以手动地循环处理数组 argv,并根据程序的需要解释每个字符串。这相对来说比较简单,但会导致程序的接口大相径庭,因为不同的程序员对什么是“好”有不同的想法。

include <stdio.h>

/* 一个打印 argv 内容的简单 C 程序。 */

int main(int argc, char **argv) {
    int i;
   
    for(i=0; i<argc; i++)
      printf("%s\n", argv[i]);
}

早期对命令行标准化的尝试

命令行武器库中的下一个武器是一个叫做 getoptC 标准库函数。这个函数允许程序员解析开关,即前面带破折号的参数(比如 -x),并且可以选择将后续参数与它们的开关配对。想想 /bin/ls -alSh 这样的命令调用,getopt 就是最初用来解析该参数串的函数。使用 getopt 使命令行的解析变得相当简单,并改善了用户体验(UX)。

include <stdio.h>
#include <getopt.h>

#define OPTSTR "b:f:"

extern char *optarg;

int main(int argc, char **argv) {
    int opt;
    char *bar = NULL;
    char *foo = NULL;
   
    while((opt=getopt(argc, argv, OPTSTR)) != EOF)
       switch(opt) {
          case 'b':
              bar = optarg;
              break;
          case 'f':
              foo = optarg;
              break;
          case 'h':
          default':
              fprintf(stderr, "Huh? try again.");
              exit(-1);
              /* NOTREACHED */
       }
    printf("%s\n", foo ? foo : "Empty foo");
    printf("%s\n", bar ? bar : "Empty bar");
}

就个人而言,我希望 Python 有开关,但这永远、永远不会发生

GNU 时代

GNU 项目出现了,并为他们实现的传统 Unix 命令行工具引入了更长的格式参数,比如--file-format foo。当然,我们这些 Unix 程序员很讨厌这样,因为打字太麻烦了,但是就像我们这些旧时代的恐龙一样,我们输了,因为用户喜欢更长的选项。我从来没有写过任何使用 GNU 风格选项解析的代码,所以这里没有代码示例。

GNU 风格的参数也接受像 -f foo 这样的短名,也必须支持。所有这些选择都给程序员带来了更多的工作量,因为他们只想知道用户要求的是什么,然后继续进行下去。但用户得到了更一致的用户体验:长格式选项、短格式选项和自动生成的帮助,使用户不必再试图阅读臭名昭著的难以解析的手册页面(参见 ps 这个特别糟糕的例子)。

但我们正在讨论 Python?

你现在已经接触了足够多(太多?)的命令行的历史,对如何用我们最喜欢的语言来编写 CLI 有了一些背景知识。Python 在命令行解析方面给出了类似的几个选择:自己解析, 自给自足 batteries-included 的方式,以及大量的第三方方式。你选择哪一种取决于你的特定情况和需求。

首先,自己解析

你可以从 sys 模块中获取程序的参数。

import sys

if __name__ == '__main__':
   for value in sys.argv:
       print(value)

自给自足

在 Python 标准库中已经有几个参数解析模块的实现:getoptoptparse,以及最近的 argparseargparse 允许程序员为用户提供一致的、有帮助的用户体验,但就像它的 GNU 前辈一样,它需要程序员做大量的工作和“模板代码”才能使它“奏效”。

from argparse import ArgumentParser

if __name__ == "__main__":

   argparser = ArgumentParser(description='My Cool Program')
   argparser.add_argument("--foo", "-f", help="A user supplied foo")
   argparser.add_argument("--bar", "-b", help="A user supplied bar")
   
   results = argparser.parse_args()
   print(results.foo, results.bar)

好处是当用户调用 --help 时,有自动生成的帮助。但是 自给自足 batteries included 的优势呢?有时,你的项目情况决定了你对第三方库的访问是有限的,或者说是没有,你不得不用 Python 标准库来“凑合”。

CLI 的现代方法

然后是 ClickClick 框架使用装饰器的方式来构建命令行解析。突然间,写一个丰富的命令行界面变得有趣而简单。在装饰器的酷炫和未来感的使用下,很多复杂的东西都消失了,用户惊叹于自动支持关键字补完以及上下文帮助。所有这些都比以前的解决方案写的代码更少。任何时候,只要你能写更少的代码,还能把事情做好,就是一种胜利。而我们都想要胜利。

import click

@click.command()
@click.option("-f", "--foo", default="foo", help="User supplied foo.")
@click.option("-b", "--bar", default="bar", help="User supplied bar.")
def echo(foo, bar):
    """My Cool Program
   
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
   
if __name__ == "__main__":
    echo()

你可以在 @click.option 装饰器中看到一些与 argparse 相同的模板代码。但是创建和管理参数分析器的“工作”已经被抽象化了。现在,命令行参数被解析,而值被赋给函数参数,从而函数 echo魔法般地调用。

Click 接口中添加参数就像在堆栈中添加另一个装饰符并将新的参数添加到函数定义中一样简单。

但是,等等,还有更多!

Typer 建立在 Click 之上,是一个更新的 CLI 框架,它结合了 Click 的功能和现代 Python 类型提示。使用 Click 的缺点之一是必须在函数中添加一堆装饰符。CLI 参数必须在两个地方指定:装饰符和函数参数列表。Typer 免去你造轮子 去写 CLI 规范,让代码更容易阅读和维护。

import typer

cli = typer.Typer()

@cli.command()
def echo(foo: str = "foo", bar: str = "bar"):
    """My Cool Program
   
    It does stuff. Here is the documentation for it.
    """
    print(foo, bar)
   
if __name__ == "__main__":
    cli()

是时候开始写一些代码了

哪种方法是正确的?这取决于你的用例。你是在写一个只有你才会使用的快速而粗略的脚本吗?直接使用 sys.argv 然后继续编码。你需要更强大的命令行解析吗?也许 argparse 就够了。你是否有很多子命令和复杂的选项,你的团队是否会每天使用它?现在你一定要考虑一下 ClickTyper。作为一个程序员的乐趣之一就是魔改出替代实现,看看哪一个最适合你。

最后,在 Python 中有很多用于解析命令行参数的第三方软件包。我只介绍了我喜欢或使用过的那些。你喜欢和/或使用不同的包是完全可以的,也是我们所期望的。我的建议是先从这些包开始,然后看看你最终的结果。

去写一些很酷的东西吧。


via: https://opensource.com/article/20/6/c-python-cli

作者:Erik O'Shaughnessy 选题:lujun9972 译者:wxy 校对:wxy

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

外媒推荐 2020 年最佳安卓手机,华为没有在列

近日,ZDnet 推荐了 10 款最佳的安卓手机,包括:1、三星 Galaxy S20/S20 Plus/S20 Ultra;2、LG V60 ThinQ 5G;3、一加 8/8 Pro;4、三星 Galaxy Note 10/10 Plus;5、索尼 Xperia 1 II;6、三星 Galaxy S10/S10 Plus;7、谷歌 Pixel 4 XL/Pixel 4;8、TCL 10 Pro;9、Pixel 3A XL/Pixel 3A;10、摩托罗拉 Moto G Power。不知道出于什么原因,华为旗下的安卓手机并未出现。

来源:ZDnet

硬核老王点评:从文章看,似乎不是公众票选,或许只是编辑的个人偏好?

TrueNAS(原 FreeNAS)将发布一个基于 Linux 的版本

今年三月,FreeNAS 和 TrueNAS 合并后,统一名称为 TrueNAS。在 11.3 版本中,FreeNAS 和 TrueNAS 已经共享超过 95% 的相同源代码,但它们依旧内置于单独的镜像中。接下来要发布的 TrueNAS 12.0 则是首个二者完全融合、统一镜像的版本。此次宣布的新项目 TrueNAS SCALE 就用到了不少 TrueNAS 12.0 的源代码。不过,不同于建立在 FreeBSD 之上的 TrueNAS CORE,SCALE 项目基于 Linux 开发,更确切来讲是基于 Debian 11 (Bullseye)。

来源:开源中国

Chrome 83 对表单控件和焦点元素的更新被吐槽

最新发布的 Chrome 83 对表单控件进行了视觉效果的更新,其中对焦点元素的处理引起了众人的关注,当文本输入框处于焦点以及选定下拉菜单中的选项时,浏览器会在它们周围显示一个“黑框”。而此前这些表单组件处于焦点时,Chrome 会显示蓝色或橙色的边框。对于这个问题,已经有人向 Chromium 团队提交了议题。Chromium 团队成员进一步表示问题已经得到修复,将在 Chrome 84 Dev 中应用修复后的更新。

来源:开源中国

硬核老王点评:Chromium 一家独大,连微软 Edge 都投入其阵营,一点点失误都会带来很大的影响。

ASF 官方正式宣布 Apache Hudi 晋升为顶级项目

Apache Hudi 数据湖技术可在 Apache Hadoop 兼容的云存储和分布式文件系统之上进行流处理。该项目最初于 2016 年在 Uber 开发,于 2017 年开源,并于 2019 年 1 月提交给 Apache 孵化器。

来源:开源中国

你可能忘记了删除计算机上某个目录中不再需要的文件的操作。这可能是“下载”或任何其他目录。它可能已经增长了一段时间。

即便有足够的存储空间,你也应该删除它们,因为这会在列出文件时降低系统速度。同样,当一个目录中有成千上万个文件时,它可能很会很臃肿。

当你不知道要检查的文件名时,很难在特定目录中找到文件。

我们可以通过结合使用 find 命令和一些组合来做到这一点,我们过去已经写过一篇文章。

今天,我们将向你展示如何在 Linux 上使用 Tmpwatch 程序来实现这一目标。

什么是 tmpwatch

tmpwatch 会在指定目录中递归删除指定时间段内未被访问的文件。通常,它用于自动清除临时文件系统目录,例如 /tmp/var/tmp

它只会删除空目录、常规文件和符号链接。它不会切换到其他文件系统,并避开了属于根用户的 lost+found 目录。

默认情况下,tmpwatch 会根据文件的 atime(访问时间)而不是 mtime(修改时间)删除文件。

你可以在 tmpwatch 命令中添加其他参数来更改这些行为。

警告: 请不要在 / 中运行 tmpwatchtmpreaper,因为该程序中没有防止这种情况的机制。

如何在 Linux 上安装 tmpwatch

可以在官方仓库中按以下方式安装 tmpwatch

对于 RHEL/CentOS 6 系统,请使用 yum 命令安装 tmpwatch

$ sudo yum install -y tmpwatch

对于 Debian 和 Ubuntu 系统,请使用 apt 命令apt-get 命令 安装 tmpreaper

$ sudo apt-get install tmpreaper

对于 openSUSE 系统,请使用 zypper 命令 安装 tmpwatch

$ sudo zypper install -y tmpwatch

对于 Fedora 系统,请使用 dnf 命令 安装 tmpwatch

$ sudo dnf install -y tmpwatch

请注意: 如果你使用的是基于 Debian 的系统,请使用 tmpreaper 而不是 tmpwatch。所有示例都可以如预期工作。

了解关键选项和参数

  • atime(文件上次访问时间):显示命令或脚本等任意进程最后一次访问文件中数据的时间。
  • mtime(文件上次修改时间):显示修改文件内容或保存文件的时间。除非是更改文件属性,否则大多数情况下 ctimemtime 会相同。
  • ctime(文件上次更改时间):显示文件元数据更改时间。这意味着更改文件属性的时间(如所有权或组等)。
  • dirmtime(目录的上次修改时间):显示目录的上一次修改时间。

时间参数定义删除文件的阈值。

  • d – 天
  • h – 小时
  • m – 分钟
  • s – 秒

如何使用 tmpwatch 命令删除一段时间未访问的文件

正如我在本文开头所说,tmpwatch 默认根据文件访问时间(atime)来删除文件。另外,由于小时是默认参数,因此如果使用小时单位,那么无需在时间上添加后缀。

例如,运行以下命令以递归方式删除过去 5 个小时未访问的文件。

# tmpwatch 5 /tmp

运行以下命令删除最近 10 个小时未修改的文件。如果要使用修改时间(mtime)来删除文件,那么需要在 tmpwatch 命令中添加 -m 选项。

# tmpwatch -m 10 /home/daygeek/Downloads

如何使用 tmpwatch 命令删除超过 “X” 天未访问的文件

如果要使用天数删除文件,那么需要添加后缀 d。以下示例删除了 30 天以上的文件。

# tmpwatch 30d /home/daygeek/Downloads

如何使用 tmpwatch 命令删除一段时间内未访问的所有文件

以下命令将基于修改时间(mtime)删除所有类型的文件,而不仅仅是常规文件、符号链接和目录。

# tmpwatch -am 12 /tmp

如何在 tmpwatch 中排除目录

以下命令将删除过去 10 个小时未修改的所有文件,并排除目录。

# tmpwatch -am 10 --nodirs /home/daygeek/Downloads

如何在 tmpwatch 中排除特定路径

以下命令将删除过去 10 个小时未被修改的所有文件,除了下面排除的文件夹。

# tmpwatch -am 10 --exclude=/home/daygeek/Downloads/Movies /home/daygeek/Downloads

如何在 tmpwatch 中排除特定模式

以下命令将删除过去 10 小时未被修改的所有文件,除了满足下面列出的模式的文件。

# tmpwatch -am 10 --exclude-pattern='*.pdf' /home/daygeek/Downloads

如何让 tmpwatch 命令空运行

如果要空运行,请运行以下命令。

# tmpwatch -t 5h /home/daygeek/Downloads

如何设置 cronjob 来使用 tmpwatch 定期删除文件

默认情况下,它在 /etc/cron.daily/tmpreaper 目录下有一个 cronjob 文件。该 cronjob 根据位于 /etc/timereaper.conf 中的配置文件工作。你可以根据需要自定义文件。

它每天运行一次,并删除 7 天之前的文件。

另外,如果你希望常规执行某项操作,那么可以根据需要手动添加一个 cronjob。

# crontab -e

0 10 * * * /usr/sbin/tmpwatch 15d /home/daygeek/Downloads

上面的 cronjob 将在每天上午 10 点删除早于 15 天的文件。


via: https://www.2daygeek.com/how-to-remove-files-older-than-n-days-using-tmpwatch-tmpreaper-on-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

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

曾经有一段时间,ThinkPad 是 Linux 用户的首选系统。但那是在 ThinkPad 还是 IBM 的产品的时候。当联想在 2005 年收购了 IBM 的个人电脑业务之后,(我觉得)事情开始发生了变化。

ThinkPad 曾经是一个令人惊叹的系列笔记本电脑,稳定可靠、值得信赖、坚如磐石,你只要问问 2010 年代以前用过它的人就知道了。

但在 2010 年前后,联想 ThinkPad 开始失去了它的魅力。它充满了一个又一个的问题,消费者们抱怨性能不佳。

而对于 Linux 用户来说,情况就更糟糕了。它的安全启动与 UEFI 给 Linux 用户带来了问题与 Linux 的争论就这样没完没了。

我为什么要回忆起这些?因为联想似乎正在努力提高 Linux 的兼容性。对于 Linux 爱好者来说,联想的最新公告是一个极好的消息。

联想 ThinkPad 和 ThinkStation 全系产品将通过 Linux 认证

联想宣布,将对全部工作站产品进行 Ubuntu 和红帽等顶级 Linux 发行版的认证,这包括所有机型和配置。

作为 Linux 用户,这对你来说意味着什么?它意味着,如果你购买了联想电脑,你将获得最好的开箱即用的 Linux 体验

等一下?不是可以随便在任何电脑上安装 Linux 吗,不管是联想还是幻想?当然,你可以。但是,当你把现有的(Windows)操作系统清除掉,自己安装 Linux 时,你可能会遇到硬件兼容性的问题,如没有声音、Wi-Fi 无法工作等。

开箱即用的体验很重要,因为并不是每个人都愿意花时间去修复声音、显卡、Wi-Fi 和蓝牙等问题,而不是专注于自己的实际工作,因为他们买电脑的目的就是为了这个。

来自 Ubuntu 和 Red Hat 的开发人员会对联想系统的每一个硬件组件进行测试和验证,以确保联想系统的每一个硬件组件都能正常工作。

Ubuntu、Red Hat 以及更多

为此,联想选择了两款顶级 Linux 发行版。Red Hat 是企业级 Linux 桌面和服务器的热门选择。而 Ubuntu 当然是普遍流行的。

这意味着,联想的计算机在使用 Ubuntu LTS 版本和 Red Hat Linux 时,会以最佳状态工作。联想甚至会在其中预装 Ubuntu 和 Red Hat 两种版本的系统。

但是,这还没有结束。Fedora 是 Red Hat 的一个社区项目,联想也会在 ThinkPad P53 和 P1 Gen 2 系统上预装 Fedora。

有很多基于 Ubuntu LTS 版本的 Linux 发行版。大多数情况下,这些发行版在外观、应用和其他图形化的东西上都不一样,但它们使用的是与 Ubuntu 相同的基础。

这应该意味着,基于 Ubuntu 的发行版,如 Linux Mint、Elementary OS 等也会与联想的设备有更好的硬件兼容性。

联想还将这些设备驱动直接发送给上游的 Linux 内核中,帮助它们的系统在整个生命周期内都保持稳定性和兼容性。这一点是非常棒的。

它能帮助增加 Linux 用户群吗?

开箱即用的体验很重要。它可以让你专注于系统上应该做的重要任务,而不是故障排除。

我有一台预装了 Ubuntu 的戴尔 XPS 笔记本。这是唯一一台几乎不需要从我这一端进行硬件故障排除的设备,即使我手动安装了其它基于 Ubuntu 的发行版,也不需要进行硬件故障排除。

我很高兴看到联想为提高 Linux 的兼容性做出了更多努力。现在在预装 Linux 的电脑列表中有了更多的选择。

我不知道联想在其计算机产品中提供 Linux 是否有助于增加 Linux 用户群。大多数时候人们都会要 Windows,Linux 不会成为首要关注点。

但联想在设备上让自己的计算机产品更多的使用 Linux,这一点还是值得称赞的。我希望其他厂商也能这样做。希望没有什么坏处:)


via: https://itsfoss.com/lenovo-linux-certified/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

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

2020 年 5 月数据:Windows 10 占比达 57.8%,Linux 系统增长明显

根据 NetMarketShare 数据,Windows 10 占全球桌面操作系统的份额再上涨 1.8 个百分点,达到了 57.8%。与此同时,GNU/Linux (包括 Ubuntu 等发行版本)的市场份额也从 2020 年 3 月的 1.36% 上涨至 3.17%,达到了历史新高。

来源:cnBeta.COM

硬核老王点评:据说 Linux 桌面份额的增加和全球疫情以来居家办公有关。

一张墙纸导致部分 Android 手机变砖

数十名 Android 手机用户在社交媒体上报告,一张风景照被用于墙纸时会导致系统崩溃,屏幕反复打开关闭,部分情况下甚至需要恢复出厂设置,因此 Android 用户最好不要在自己手机上尝试。受影响的手机品牌包括三星和 Google 的 Pixel。导致这一 bug 的原因据称是该图像不是标准 RGB 格式,可能包含了部分设备无法处理阿色彩信息。

来源:solidot

硬核老王点评:据说修复已经在路上了,不过不要随便试验是否中招就没事了。

Firefox 77.0 发布

Mozilla 释出了 Firefox 77.0。主要新变化包括:向更多 Windows 用户推送 WebRender;通过新的 about:certificate 页管理 Web 证书;改进 JavaScript 调试,支持 JavaScript API String.prototype.replaceAll(),bug 修复等等。

来源:solidot

Devuan Beowulf 3.0.0 发布

2014 年,因为初始化系统 systemd 引发的争议,一群不满的开发者创建了不使用 systemd 的 Debian 分支 Devuan。2017 年,Devuan 开发者释出了 Devuan Jessie 1.0 正式版,基于 2015 年发布的 Debian 8 Jessie;2018 年 6 月释出了 Devuan 2.0 ASCII。现在,他们发布了 Devuan Beowulf 3.0.0,基于 Debian Buster (10.4) 和 Linux kernel 4.19,下一个大版本代号为 Chimaera。

来源:solidot

硬核老王点评:开源的一大好处就是,看不惯你我可以复刻一个新分支出来。

Linux Mint 表示不会违背用户意愿安装 Snap 封装应用

在 Ubuntu 20.04 发布之后,Canonical 被发现在强推 Snap 应用,即使用户是通过 apt 安装应用。基于 Ubuntu 的流行发行版 Linux Mint 明确表示不会违背用户意愿安装 Snap 应用。Linux Mint 称,即将发布的 Linux Mint 20 不会预装任何 Snap 应用,在默认情况下 apt 不会安装 Snap 应用,需要的用户可以自行安装。

来源:solidot

硬核老王点评:开源的另一好处就是,你干你的,我干我的。