2022年3月

现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。

Steam Deck 在加强对 Linux 平台的游戏支持方面做出了有力推动。

它运行在 Steam OS 3.0(基于 Arch)上,并具有 KDE Plasma 桌面环境。感谢 Valve,它没有锁定平台并让用户在上面进行试验。

尽管不是每个人都可以拿到它,但这是一款令人兴奋的硬件,可以挑战任天堂 Switch 掌机。

它可能还不支持所有的流行游戏(比如《命运 2》、《堡垒之夜》),但它在几个 3A 级大作和独立游戏上取得了不错的进展。你可以到官方的 Deck 认证 页面查看有关支持游戏的最新信息。

现在,更令人激动的是,事实证明 Steam Deck 也可以使用 Epic 游戏商店非官方的)来运行游戏。但是,怎样运行呢,让我们来一探究竟。

通过 Heroic 游戏启动器使用 Epic 游戏商店

是的,这就是 去年 制作的 Heroic 游戏启动器, 并且已知它可以运行在 Linux 桌面上。

另外,(据 GamingOnLinux)感谢 Liam Dawe,他和各位开发者协调,成功地在 Steam Deck 上测试运行了 Heroic 游戏启动器(及 Heroic Bash 启动器)。

补充一句,Heroic Bash 启动器 是一个为所有已安装的 Heroic 游戏创建启动脚本(.sh 文件)的工具,它允许你直接从终端或者游戏前端/启动器启动游戏,而不必打开 Heroic。

故事的发生是这样的(根据我与 Heroic Bash 启动器开发者的简短交谈):

最初,在 Steam Deck 上实验运行 Epic 游戏商店时,Steam 控制器无法工作,因为 Epic 游戏商店是使用 Steam 客户端以一个“非 Steam 游戏”运行的。

所以,Heroic Bash 启动器的开发者,Rishabh Moharir(也是这里的一位作者)建议使用他的工具,按照他 GitHub 上的维基指南 来试试。

Heroic Bash 启动器可以在 Linux 桌面上与 Epic 游戏商店配合使用。所以,这值得一试!

然后,幸运地,它工作了。

在 Steam Deck 上安装 Epic 游戏商店

首先,你需要在 Steam Deck 上使用可用的 AppImage 文件在桌面模式下安装 Heroic 游戏启动器

完成后,你需要登录并下载你选择的游戏。

接下来,你需要下载最新的 legendary 二进制文件,并在启动器设置中将其设置为替代的 legendary 二进制文件。

你需要在启动器的游戏设置中配置并设置兼容层为 Proton 7.0。

这时,你需要下载最新的 Heroic Bash 启动器二进制文件,然后运行它。

最后,你必须根据这个 GitHub 上的官方维基指南,把游戏添加到 Steam 中(以便在 Steam Deck 的界面中找到它)。

总之,“手工爱好者”们肯定需要花好大一会儿才能使其工作。另外,如果你仍然困惑,你可以在 维基 上找到包含详细信息的同样的一套步骤和细节,这是 Heroic 游戏启动器团队整理的(或者参考上面的视频)。

对我来说,这听起来可行,应该不会超越大多数 Steam Deck 用户的能力。不幸的是,我无法在印度买到 Steam Deck(目前)。

至于 Steam Deck 上的 Epic 游戏商店的未来,我们只能抱以最好的期望。

你试过 Steam Deck 吗?在下面的评论区让我知道你的看法。


via: https://news.itsfoss.com/epic-games-steam-deck/

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

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

每一次下载的 Firefox 安装包都含有唯一识别码

你每次从 Mozilla 官网下载的 Firefox 安装文件都不同,它会含有一个 唯一识别码,因而你查看其 MD5、SHA-1 等校验码会发现各个不同。Mozilla 内部将该识别码称为 dltoken,可以用二进制分析工具检查软件包找到它。该数据用于 Firefox 内部分析。所有分发通道的 Firefox 都含有该识别码。如果你不想下载带识别码的 Firefox,可以从 Mozilla 的 HTTPS 资源库(以前的 FTP 资源库)或第三方下载网站下载。虽然 Mozilla 指出,选择退出的机制是标准的遥测选择退出,但用户如何在安装 Firefox 浏览器之前选择退出?

老王点评:这就是号称保护用户隐私的 Mozilla 吗?

开源软件包 node-ipc 植入反俄代码遭到抨击

node-ipc 是一个流行的 Node.js 基础软件包,被包括 Vue.js 在内的许多大型软件和框架所依赖,其周下载量超过百万次。然而最近,该维护者发布了名为 peacenotwaroneday-test 两个模块,并作为依赖项而包含在 node-ipc 的代码中。其中包含了作者本人对俄乌战争的观点和呼吁,“作为一种非暴力的抗议形式,以反对当前俄乌冲突造成的威胁”。这些模块会在用户的电脑桌面上放置一个文件来宣传其倡议。然而,更糟糕的是,作者还发布了一个特定版本,它采用混淆代码以隐藏其真实目的,针对俄罗斯和白俄罗斯用户的 IP 而 破坏用户的文件。此事招致了开发者们大量的抨击。

老王点评:我一直没有点评俄乌战争以来开源界或更广泛的技术领域的表态,但是这件事让我感觉突破下限了。抛开这些恶意行为不说,Node.js、Python 等依赖开源公共仓库模式的语言,必须有个切实的解决方案来应对这些有意或无意的破坏了。

Mozilla 和 Open Web Docs 在 MDN 上携手合作

Mozilla 在裁员时将其著名的 MDN 团队也裁掉了,并在此基础上和谷歌、微软等公司共同建立了 Open Web Docs(OWD)。但是,前不久 Mozilla 又 推出了新版 的 MDN,并推出了收费的 MDN Plus 服务。这让人迷惑其与 OWD 关系如何。现在 Mozilla 撰文澄清 了它与 OWD 的关系:双方保持密切合作,OWD 会向 MDN 贡献内容,是其重要的贡献项目之一;但是 Mozilla 不参与 OWD 的决策,双方也不向对方提供财务支持。

老王点评:我觉得,其实背后还是 Mozilla 分割出去 MDN 之后又舍不得了。

你准备好推进你的开源之旅了吗?这里有一些如何给开源做贡献的提示和教程。

 title=

在 2022 年,开源正变得越来越家喻户晓。但多年来,开源一直被称为企业 IT 领域中潦倒的弱势群体。开源已经以某种形式或方式存在了 几十年,但甚至直到 20 世纪 90 年代末,它才正式有了自己的 名字。你可能一直都在使用开源技术,但却不知道。事实上,你目前正在阅读的网站(LCTT 译注:指 opensource.com )就是在开源的内容管理系统 Drupal 上运行的。你的汽车、笔记本电脑、智能手表和电子游戏很可能是 由 Linux 这个开源操作系统支持的。

红帽公司的年度《企业开源状况》在最近发布了,其中包含了大量的见解,对任何在开源技术领域发展的人都有帮助。首先,77% 的 IT 领导对企业开源的看法比一年前更积极,82% 的 IT 领导更可能选择对开源社区有贡献的供应商。这意味着,参与开源比以往任何时候都更重要。现在是推进你的开源之旅的时候了,无论你在哪里。这里有一些资源可以帮助你踏上这条路。

为什么要为开源做贡献?

为开源做出你的第一次贡献

鼓励他人为开源做贡献

分享你对开源贡献的建议

当涉及到参与开源社区时,有无限的可能性。在这里,我们的目标是庆祝社区的不同观点和背景,其中包括你。你的独特故事激励着全球各地的人们参与到开源中来。来吧,把你的文章想法发给我们


via: https://opensource.com/article/22/3/contribute-open-source-2022

作者:Opensource.com 选题:lujun9972 译者:geekpi 校对:wxy

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

使用这个简单的方法来迁移一个网站以及管理防火墙配置。

 title=

你有过把一个 WordPress 网站迁移到一台新主机上的需求吗?我曾经迁移过好多次,迁移过程相当简单。当然,的的市场时候我都不会用通用的推荐方法,这次也不例外 —— 我用更简单的方法,这才是我推荐的方法。

这个迁移方法没有破坏性,因此如果出于某些原因你需要还原到原来的服务器上,很容易可以实现。

一个 WordPress 网站的组成部分

运行一个基于 WordPress 的网站有三个重要组成部分:WordPress 本身,一个 web 服务器,如 Apache(我正在用),以及 MariaDB。MariaDB 是 MySQL 的一个分支,功能相似。

业界有大量的 Web 服务器,由于我使用了 Apache 很长时间,因此我推荐用 Apache。你可能需要把 Apache 的配置方法改成你用的 Web 服务器的方法。

初始配置

我使用一台 Linux 主机作为防火墙和网络路由。在我的网络中 Web 服务器是另一台主机。我的内部网络使用的是 C 类私有网络地址范围,按 无类别域间路由 Classless Internet Domain Routing (CIDR)方式简单地记作 192.168.0.0/24。

对于防火墙,相比于更复杂的 firewalld,我更喜欢用非常简单的 IPTables。这份防火墙配置中的一行会把 80 端口(HTTP)接收到的包发送给 Web 服务器。在 /etc/sysconfig/iptables 文件中,你可以在注释中看到,我添加了规则,把其他入站服务器连接转发到同一台服务器上合适的端口。

# Reroute ports for inbound connections to the appropriate web/email/etc server.
# HTTPD goes to 192.168.0.75
-A PREROUTING -d 45.20.209.41/255.255.255.248 -p tcp -m tcp --dport 80 \

  -j DNAT --to-destination 192.168.0.75:80

我使用 命名虚拟主机 named virtual host 来配置原来的 Apache Web 服务器,因为我在这个 HTTPD 实例上运行着多个网站。使用命名虚拟主机配置是个不错的方法,因为(像我一样)未来你可能会在运行其他的网站,这个方法可以使其变得容易。

/etc/httpd/conf/httpd.conf 中需要迁移的虚拟主机的网站相关部分请参考下面代码。这个片段中不涉及到 IP 地址的修改,因此在新服务器上使用时不需要修改。

<VirtualHost *:80>
   ServerName www.website1.org
   ServerAlias server.org

DocumentRoot "/var/website1/html"
   ErrorLog "logs/error_log"
   ServerAdmin [email protected]
 
<Directory "/var/website1/html">
      Options Indexes FollowSymLinks
 
AllowOverride None
      Require all granted
 
</Directory>
</VirtualHost>

在迁移之前,你需要在 httpd.conf 的最顶端附近找到 Listen 声明并修改成类似下面这样。这个地址是服务器的真实私有 IP 地址,不是公开 IP 地址。

Listen 192.168.0.75:80

你需要修改新主机上 Listen 的 IP 地址。

前期工作

准备工作分为以下三步:

  • 安装服务
  • 配置防火墙
  • 配置 web 服务器

安装 Apache 和 MariaDB

如果你的新服务器上还没有 Apache 和 MariaDB,那么就安装它们。WordPress 的安装不是必要的。

dnf -y install httpd mariadb

新服务器防火墙配置

确认下新服务器上的防火墙允许访问 80 端口。你\_每台\_电脑上都有一个防火墙,对吗?大部分现代发行版使用的初始化配置包含的防火墙会阻止所有进来的网络流量,以此来提高安全等级。

下面片段的第一行内容可能已经在你的 IPTables 或其他基于防火墙的网络过滤器中存在了。它标识已经被识别为来自可接受来源的入站包,并绕过后面的其它 INPUT 过滤规则,这样可以节省时间和 CPU 周期。片段中最后一行标识并放行 80 端口新进来的请求到 HTTPD 的连接。

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
<删节>
# HTTP
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

下面的示例 /etc/sysconfig/iptables 文件是 IPTables 最少规则的例子,可以允许 SSH(端口 22)和 HTTPD(端口 80)连接。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
# SSHD
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# HTTP
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

# Final disposition for unmatched packets
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

在新服务器主机上我需要做的就是在 /etc/sysconfig/iptables 文件的防火墙规则里添加上面片段的最后一行,然后重新加载修改后的规则集。

iptables-restore /etc/sysconfig/iptables

大部分基于红帽的发行版本,如 Fedora,使用的是 firewalld。我发现对于它的适用场景(如家用、小到中型企业)而言,它过于复杂,因此我不用它。我建议你参照 firewalld 网页 来向 firewalld 添加入站端口 80。

你的防火墙及其配置可能跟这个有些差异,但最终的目的是允许新 Web 服务器 80 端口接收 HTTPD 连接。

HTTPD 配置

/etc/httpd/conf/httpd.conf 文件中配置 HTTPD。像下面一样在 Listen 片段中设置 IP 地址。我的新 Web 服务器 IP 地址是 192.168.0.125

Listen 192.168.0.125:80

复制(对应要迁移的网站的) VirtualHost 片段,粘贴到新服务器上 httpd.conf 文件的末尾。

迁移过程

只有两组数据需要迁移到新服务器 —— 数据库本身和网站目录结构。把两个目录打包成 tar 文档。

cd /var ; tar -cvf /tmp/website.tar website1/
cd /var/lib ; tar -cvf /tmp/database.tar mysql/

把两个 tar 文件复制到新服务器。我通常会把这类文件放到 /tmp 下,这个目录就是用来做这种事的。在新服务器上运行下面的命令,把 tar 文档解压到正确的目录。

cd /var ; tar -xvf /tmp/website.tar
cd /var/lib ; tar -xvf /tmp/database.tar

WordPress 的所有文件都在 /var/website1 下,因此不需要在新服务器上安装它。新服务器上不需要执行 WordPress 安装过程。

这个目录就是需要迁移到新服务器上的全部内容。

最后一步是启动(或重启)mysqldhttpd 服务守护进程。WrodPress 不是一个服务,因此不使用守护进程的方式来启动。

systemctl start mysqld ; systemctl start httpd

启动之后,你应该检查下这些服务的状态。

systemctl status mysqld
● mariadb.service - MariaDB 10.5 database server
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
    Active: active (running) since Sat 2021-08-21 14:03:44 EDT; 4 days ago
        Docs: man:mariadbd(8)

https://mariadb.com/kb/en/library/systemd/
   Process: 251783 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
   Process: 251805 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS)
   Process: 251856 ExecStartPost=/usr/libexec/mariadb-check-upgrade (code=exited, status=0/SUCCESS)
 Main PID: 251841 (mariadbd)
      Status: "Taking your SQL requests now..."
      Tasks: 15 (limit: 19003)
    Memory: 131.8M
        CPU: 1min 31.793s
    CGroup: /system.slice/mariadb.service
└─251841 /usr/libexec/mariadbd --basedir=/usr

Aug 21 14:03:43 simba.stmarks-ral.org systemd[1]: Starting MariaDB 10.5 database server...
Aug 21 14:03:43 simba.stmarks-ral.org mariadb-prepare-db-dir[251805]: Database MariaDB is probably initialized in /var/lib/mysql already, n>
Aug 21 14:03:43 simba.stmarks-ral.org mariadb-prepare-db-dir[251805]: If this is not the case, make sure the /var/lib/mysql is empty before>
Aug 21 14:03:44 simba.stmarks-ral.org mariadbd[251841]: 2021-08-21 14:03:44 0 [Note] /usr/libexec/mariadbd (mysqld 10.5.11-MariaDB) startin>
Aug 21 14:03:44 simba.stmarks-ral.org systemd[1]: Started MariaDB 10.5 database server.

systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Drop-In: /usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
      Active: active (running) since Sat 2021-08-21 14:08:39 EDT; 4 days ago
        Docs: man:httpd.service(8)
   Main PID: 252458 (httpd)
      Status: "Total requests: 10340; Idle/Busy workers 100/0;Requests/sec: 0.0294; Bytes served/sec: 616 B/sec"
        Tasks: 278 (limit: 19003)
      Memory: 44.7M
        CPU: 2min 31.603s
   CGroup: /system.slice/httpd.service
├─252458 /usr/sbin/httpd -DFOREGROUND
├─252459 /usr/sbin/httpd -DFOREGROUND
├─252460 /usr/sbin/httpd -DFOREGROUND
├─252461 /usr/sbin/httpd -DFOREGROUND
├─252462 /usr/sbin/httpd -DFOREGROUND
└─252676 /usr/sbin/httpd -DFOREGROUND

Aug 21 14:08:39 simba.stmarks-ral.org systemd[1]: Starting The Apache HTTP Server...
Aug 21 14:08:39 simba.stmarks-ral.org httpd[252458]: AH00112: Warning: DocumentRoot [/var/teststmarks-ral/html] does not exist
Aug 21 14:08:39 simba.stmarks-ral.org httpd[252458]: Server configured, listening on: port 80
Aug 21 14:08:39 simba.stmarks-ral.org systemd[1]: Started The Apache HTTP Server.

最终的修改

现在所需的服务都已经运行了,你可以把 /etc/sysconfig/iptables 文件中 HTTDP 的防火墙规则改成下面的样子:

-A PREROUTING -d 45.20.209.41/255.255.255.248 -p tcp -m tcp --dport 80 \
  -j DNAT --to-destination 192.168.0.125:80

然后重新加载设置的 IPTables 规则。

iptables-restore /etc/sysconfig/iptables

由于防火墙规则是在防火墙主机上,因此不需要把外部 DNS 入口改成指向新服务器。如果你使用的是内部 DNS 服务器,那么你需要把 IP 地址改成内部 DNS 数据库里的 A 记录。如果你没有用内部 DNS 服务器,那么请确保主机 /etc/hosts 文件里新服务器地址设置得没有问题。

测试和清理

请确保对新配置进行测试。首先,停止旧服务器上的 mysqldhttpd 服务。然后通过浏览器访问网站。如果一切符合预期,那么你可以关掉旧服务器上的 mysqldhttpd。如果有失败,你可以把 IPTables 的路由规则改回去到旧服务器上,直到问题解决。

之后我把 MySQL 和 HTTPD 从旧服务器上删除了,这样来确保它们不会意外地被启动。

总结

就是这么简单。不需要执行数据库导出和导入的过程,因为 mysql 目录下所有需要的东西都已经复制过去了。需要执行导出/导入过程的场景是:有网站自己的数据库之外的数据库;MariaDB 实例上还有其他网站,而你不想把这些网站复制到新服务器上。

迁移旧服务器上的其他网站也很容易。其他网站依赖的所有数据库都已经随着 MariaDB 的迁移被转移到了新服务器上。你只需要把 /var/website 目录迁移到新服务器,添加合适的虚拟主机片段,然后重启 HTTPD。

我遵循这个过程把很多个网站从一个服务器迁移到另一个服务器,每次都没有问题。


via: https://opensource.com/article/21/9/migrate-wordpress

作者:David Both 选题:lujun9972 译者:lxbwolf 校对:wxy

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

Ubuntu 已经重新设计了它的标志。不是每个人都会喜欢它。

Ubuntu 的标志包含了多个元素。对粉丝来说,橙色和紫色是 Ubuntu 的特征。

除此之外,Ubuntu 的标志上还写有 “ubuntu” 的字样,以及一个橙色的图案。

Ubuntu’s old logo

这个橙色的“ 朋友圈 circle of friends ”图案是 Ubuntu 的身份标识,它象征着:自由、协作、精确和可靠。

这个图案实际上是三个朋友或团队成员“搭在一起”的一个俯视图。你可能在体育运动中见到过这样的画面。

Image courtesy: Unsplash

Ubuntu 有了一个全新的标志

但这个图案正在发生变化。OMG! Ubuntu 报道说,Canonical 重新设计了标志的元素、文字和这个“朋友圈”的图案。

在旧的标志中,“朋友圈”图案在粗体 “ubuntu” 文字的右上角。

新的标志改变了这一点。“朋友圈”图案经过重新设计,看起来更平滑,而且被放置在一个橙色的矩形里。文字也有变化,现在使用了更细的字体。“Ubuntu” 中的 “U” 现在是大写的了。

有趣的是,新标志不再包含注册商标符号 “®” 了。

Ubuntu 在官方博文中提到了关于新设计的 这些变化

虽然(在设计上)和之前的朋友圈图案保持相对延续性很重要,但是更新后的版本更精简、更专注、更成熟。现在他们的头部在圆圈里,彼此面对,连接也更加直接,这看起来更合理一些。

你可以在这个视频中看到新标志的动画:

这个新标志将会出现在 Ubuntu 22.04 发行版中。

这不是首次重新设计标志

这并不是 Ubuntu 第一次重新设计它的标志。早在 Ubuntu 项目于 2004 年初创时,“朋友圈”图案有三种颜色:黄色、红色和橙色。在 2010 年的时候,它被重新设计,“搭在一起的人” 变成了白色,他们被一个橙色的圆圈围绕着。

Image courtesy: OMG! Ubuntu

你喜欢这个新标志吗?

这次的新设计距离上一次已经过了 13 年。这个新“朋友圈”图案看起来还不错,但我还是觉得这个矩形背景有点怪怪的。

你怎么看?你喜欢 Ubuntu 的新标志吗,还是说更喜欢以前的那个呢?请在下方评论区分享你的观点吧!


via: https://news.itsfoss.com/ubuntu-new-logo/

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

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

AI 学会了“谷歌一下”

DeepMind 创建了一个新的 AI 语言模型 GopherCite,它可以像人类一样,学会“Google 一下”,回答问题同时还能给出论据。当你问它:“GopherCite 是如何找到论据来源的?”它会回答:“通过 Google 搜索检索相关文档。”在遇到实在不懂的问题,它会说不懂而不会强行给一个错误答案。训练结果显示,该模型在自然问题数据集、ELI5 数据集上的正确率分别可以达到 90%、80%,接近人类水平。

老王点评:这 AI 越来越“聪明”了。

AI 六小时内就提出了 4 万种新的潜在化学武器

研究人员将通常用于搜索有用药物的 AI 放入一种 “坏人” 模式,只用了不到六个小时就提出了 4 万个潜在的致命分子结构。研究人员调整他们的方法,以寻找而不是剔除毒性,AI 想出了数以万计的新物质,其中一些与有史以来开发的最强的神经毒剂 VX 相似。

老王点评:AI 如果用于不好的方面,也许就是放出来的潘多拉魔鬼。

Canonical 为 Snap 包提速,但仍不够快

Canonical 在 Snap 包中改用 LZO 压缩取代 xz 压缩,以加快启动时间。通过使用 LZO 重新生成 Snap,可以减少冷启动时间,如果用 LZO 对 KDE 框架 Snap 进行压缩,则收益更大。而一旦 Snap 包已经加载,其热启动时间就相当低了,大约为 1.1 秒。

老王点评:Snap 有好处也有坏处,就看怎么权衡了。