Merge pull request #41 from LCTT/master

sync
This commit is contained in:
SamMa 2022-06-02 09:05:40 +08:00 committed by GitHub
commit 453b96c07f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
150 changed files with 6632 additions and 2245 deletions

View File

@ -0,0 +1,216 @@
[#]: subject: "3 ways to copy files in Go"
[#]: via: "https://opensource.com/article/18/6/copying-files-go"
[#]: author: "Mihalis Tsoukalos https://opensource.com/users/mtsouk"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14658-1.html"
在 Go 中复制文件的三种方法
======
![](https://img.linux.net.cn/data/attachment/album/202205/31/153413kcrth9v8c93r5u8e.jpg)
> 本文是 Go 系列的第三篇文章,我将介绍三种最流行的复制文件的方法。
本文将介绍展示如何使用 [Go 编程语言][3] 来复制文件。在 Go 中复制文件的方法有很多,我只介绍三种最常见的:使用 Go 库中的 `io.Copy()` 函数调用、一次读取输入文件并将其写入另一个文件,以及使用缓冲区一块块地复制文件。
### 方法一:使用 io.Copy()
第一种方法就是使用 Go 标准库的 `io.Copy()` 函数。你可以在 `copy()` 函数的代码中找到它的实现逻辑,如下所示:
```
func copy(src, dst string) (int64, error) {
sourceFileStat, err := os.Stat(src)
if err != nil {
return 0, err
}
if !sourceFileStat.Mode().IsRegular() {
return 0, fmt.Errorf("%s is not a regular file", src)
}
source, err := os.Open(src)
if err != nil {
return 0, err
}
defer source.Close()
destination, err := os.Create(dst)
if err != nil {
return 0, err
}
defer destination.Close()
nBytes, err := io.Copy(destination, source)
return nBytes, err
}
```
首先,上述代码做了两个判断,以便确定它可以被打开读取:一是判断将要复制的文件是否存在(`os.Stat(src)`),二是判断它是否为常规文件(`sourceFileStat.Mode().IsRegular()`)。剩下的所有工作都由 `io.Copy(destination, source)` 这行代码来完成。`io.Copy()` 函数执行结束后,会返回复制的字节数和复制过程中发生的第一条错误消息。在 Go 中,如果没有错误消息,错误变量的值就为 `nil`
你可以在 [io 包][4] 的文档页面了解有关 `io.Copy()` 函数的更多信息。
运行 `cp1.go` 将产生以下输出:
```
$ go run cp1.go
Please provide two command line arguments!
$ go run cp1.go fileCP.txt /tmp/fileCPCOPY
Copied 3826 bytes!
$ diff fileCP.txt /tmp/fileCPCOPY
```
这个方法已经非常简单了,不过它没有为开发者提供灵活性。这并不总是一件坏事,但是,有些时候,开发者可能会需要/想要告诉程序该如何读取文件。
### 方法二:使用 ioutil.WriteFile() 和 ioutil.ReadFile()
复制文件的第二种方法是使用 `ioutil.ReadFile()``ioutil.WriteFile()` 函数。第一个函数用于将整个文件的内容,一次性地读入到某个内存中的字节切片里;第二个函数则用于将字节切片的内容写入到一个磁盘文件中。
实现代码如下:
```
input, err := ioutil.ReadFile(sourceFile)
if err != nil {
fmt.Println(err)
return
}
err = ioutil.WriteFile(destinationFile, input, 0644)
if err != nil {
fmt.Println("Error creating", destinationFile)
fmt.Println(err)
return
}
```
上述代码包括了两个 `if` 代码块(嗯,用 Go 写程序就是这样的),程序的实际功能其实体现在 `ioutil.ReadFile()``ioutil.WriteFile()` 这两行代码中。
运行 `cp2.go`,你会得到下面的输出:
```
$ go run cp2.go
Please provide two command line arguments!
$ go run cp2.go fileCP.txt /tmp/copyFileCP
$ diff fileCP.txt /tmp/copyFileCP
```
请注意,虽然这种方法能够实现文件复制,但它在复制大文件时的效率可能不高。这是因为当文件很大时,`ioutil.ReadFile()` 返回的字节切片会很大。
### 方法三:使用 os.Read() 和 os.Write()
在 Go 中复制文件的第三种方法就是下面要介绍的 `cp3.go`。它接受三个参数:输入文件名、输出文件名和缓冲区大小。
`cp3.go` 最重要的部分位于以下 `for` 循环中,你可以在 `copy()` 函数中找到它,如下所示:
```
buf := make([]byte, BUFFERSIZE)
for {
n, err := source.Read(buf)
if err != nil && err != io.EOF {
return err
}
if n == 0 {
break
}
if _, err := destination.Write(buf[:n]); err != nil {
return err
}
}
```
该方法使用 `os.Read()` 将输入文件的一小部分读入名为 `buf` 的缓冲区,然后使用 `os.Write()` 将该缓冲区的内容写入文件。当读取出错或到达文件末尾(`io.EOF`)时,复制过程将停止。
运行 `cp3.go`,你会得到下面的输出:
```
$ go run cp3.go
usage: cp3 source destination BUFFERSIZE
$ go run cp3.go fileCP.txt /tmp/buf10 10
Copying fileCP.txt to /tmp/buf10
$ go run cp3.go fileCP.txt /tmp/buf20 20
Copying fileCP.txt to /tmp/buf20
```
在接下来的基准测试中,你会发现,缓冲区的大小极大地影响了 `cp3.go` 的性能。
### 运行基准测试
在本文的最后一部分,我将尝试比较这三个程序以及 `cp3.go` 在不同缓冲区大小下的性能(使用 `time(1)` 命令行工具)。
以下输出显示了复制 500MB 大小的文件时,`cp1.go`、`cp2.go` 和 `cp3.go` 的性能对比:
```
$ ls -l INPUT
-rw-r--r--  1 mtsouk  staff  512000000 Jun  5 09:39 INPUT
$ time go run cp1.go INPUT /tmp/cp1
Copied 512000000 bytes!
real    0m0.980s
user    0m0.219s
sys     0m0.719s
$ time go run cp2.go INPUT /tmp/cp2
real    0m1.139s
user    0m0.196s
sys     0m0.654s
$ time go run cp3.go INPUT /tmp/cp3 1000000
Copying INPUT to /tmp/cp3
real    0m1.025s
user    0m0.195s
sys     0m0.486s
```
我们可以看出,这三个程序的性能非常接近,这意味着 Go 标准库函数的实现非常聪明、经过了充分优化。
现在,让我们测试一下缓冲区大小对 `cp3.go` 的性能有什么影响吧!执行 `cp3.go`,并分别指定缓冲区大小为 10、20 和 1000 字节,在一台运行很快的机器上复制 500MB 文件,得到的结果如下:
```
$ ls -l INPUT
-rw-r--r--  1 mtsouk  staff  512000000 Jun  5 09:39 INPUT
$ time go run cp3.go INPUT /tmp/buf10 10
Copying INPUT to /tmp/buf10
real    6m39.721s
user    1m18.457s
sys 5m19.186s
$ time go run cp3.go INPUT /tmp/buf20 20
Copying INPUT to /tmp/buf20
real    3m20.819s
user    0m39.444s
sys 2m40.380s
$ time go run cp3.go INPUT /tmp/buf1000 1000
Copying INPUT to /tmp/buf1000
real    0m4.916s
user    0m1.001s
sys     0m3.986s
```
我们可以发现,缓冲区越大,`cp3.go` 运行得就越快,这或多或少是符合预期的。此外,使用小于 20 字节的缓冲区来复制大文件会非常缓慢,应该避免。
你可以在 [GitHub][5] 找到 `cp1.go`、`cp2.go` 和 `cp3.go` 的 Go 代码。
如果你有任何问题或反馈,请在(原文)下方发表评论或在 [Twitter][6] 上与我(原作者)联系。
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/6/copying-files-go
作者:[Mihalis Tsoukalos][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/mtsouk
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/LIFE_cat.png
[3]: https://golang.org/
[4]: https://golang.org/pkg/io/
[5]: https://github.com/mactsouk/opensource.com
[6]: https://twitter.com/mactsouk

View File

@ -3,15 +3,20 @@
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14642-1.html"
如何在 Fedora Linux 中安装多媒体编码器
======
在新安装 Fedora后安装多媒体编码器来播放音频和视频是第一件要事。在这篇简单的教程中我们将看到如何在 Fedora 36 workstation 中从 RPM Fusion 软件包存储库中安装多媒体编码器。
### 序言
![](https://img.linux.net.cn/data/attachment/album/202205/27/112826w7kyg5vddudxwwdg.jpg)
> 在新安装 Fedora后安装多媒体编码器来播放音频和视频是第一件要事。
在这篇简单的教程中,我们将看到如何在 Fedora 36 工作站中从 RPM Fusion 软件包存储库安装多媒体编码器。
### 介绍
很多多媒体编码器要么是闭源的,要么是非自由的,因此出于法律的原因,它们没有包含在 Fedora Linux 的默认存储库中。
@ -49,7 +54,7 @@ $ sudo dnf group upgrade --with-optional Multimedia
#### 安装多媒体播放器
一些流行的媒体播放器,诸如 VLC、Celluloid、SMplayer 和 Plex-media-palyer 等等,将提供所有需要编码器。你不需要将它们全部都安装,只要任意一两个就足够了。下面给出安装这些播放器的命令:
一些流行的媒体播放器,诸如 VLC、Celluloid、SMplayer 和 Plex-media-palyer 等等,将提供所有需要编码器。你不需要将它们全部都安装,只要任意一两个就足够了。下面给出安装这些播放器的命令:
```
$ sudo dnf install vlc
@ -69,9 +74,9 @@ $ sudo dnf install smplayer
$ sudo dnf install plex-media-player
```
这将不仅为你提供 h264、h265、vp8 和 vp9 编码器 (均带硬件支持),它也将启用一种更高效的编码器 av1 (又名 av01)。你可以使用 [AV1 Beta Launch Playlist][2]来测试你的浏览器是否支持这个编码器。
这将不仅为你提供 H264、H265、VP8 和 VP9 编码器(均带硬件支持),它也将启用一种更高效的编码器 AV1又名 AV01。你可以使用 [AV1 Beta Launch Playlist][2] 来测试你的浏览器是否支持这个编码器。
它们中的一些播放器也可以作为 **flatpak** 格式的应用程序来使用。如果与传统的软件包管理器相比,你更喜欢 flatpak 格式的应用程序,你可以安装它们。现在大多数的 Linux 发行版都支持开箱即用的 flatpak 格式的应用程序
它们中的一些播放器也可以作为 **flatpak** 格式的应用程序来使用。如果与传统的软件包管理器相比,你更喜欢 flatpak 格式的应用程序,你可以安装它们。现在大多数的 Linux 发行版都支持开箱即用的 flatpak 格式的应用程序
为安装 VLC 的 flatpak 版本,运行:
@ -81,13 +86,13 @@ $ flatpak install vlc
#### 可选 - 安装 FFmpeg
**FFmpeg** 是一个功能强大的多媒体框架,它可用于编码、解码、转码、mux, demux, record, stream, filter, 以及播放各种类型的媒体文件。你可以通过在你的系统上安装 FFmpeg 来获取相应的解码器。
**FFmpeg** 是一个功能强大的多媒体框架,它可用于编码、解码、转码、混流、解混流、录制、音轨、过滤等,以及播放各种类型的媒体文件。你可以通过在你的系统上安装 FFmpeg 来获取相应的解码器。
* [如何在 Linux 中安装 FFmpeg][3]
希望这有帮助。
**相关阅读:**
**相关阅读**
* [在 Fedora Silverblue 中的 Chromium 和 Firefox 上启用 H264][4]
* [如何在 OpenSUSE 中安装多媒体解码器][5]
@ -99,7 +104,7 @@ via: https://ostechnix.com/how-to-install-multimedia-codecs-in-fedora-linux/
作者:[sk][a]
选题:[lkxed][b]
译者:[robsean](https://github.com/robsean)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -4,30 +4,33 @@
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: "turbokernel"
[#]: publisher: " "
[#]: url: " "
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14638-1.html"
在 Fedora 36 中如何重置 Root 密码
在 Fedora 36 中如何重置 root 密码
======
在 Fedora 中重置忘记的 root 密码。
您是否忘记了 Fedora 中的 root 密码?或者您想更改 Fedora 系统中的 root 用户密码?没问题!本手册将指导您在 Fedora 操作系统中完成更改或重置 root 密码的步骤。
![](https://img.linux.net.cn/data/attachment/album/202205/26/094836cgtywrtwkywg2nem.jpg)
> 在 Fedora 中重置忘记的 root 密码。
你是否忘记了 Fedora 中的 root 密码?或者你想更改 Fedora 系统中的 root 用户密码?没问题!本手册将指导你在 Fedora 操作系统中完成更改或重置 root 密码的步骤。
**注意:** 本手册已在 Fedora 36 和 35 版本上进行了正式测试。下面提供的步骤与在 Fedora Silverblue 和旧 Fedora 版本中重置 root 密码的步骤相同。
**步骤 1** - 打开 Fedora 系统并按下 **ESC** 键,直到看到 GRUB 启动菜单。出现 GRUB 菜单后,选择要引导的内核并按下 **e** 编辑选定的引导条目。
**步骤 1** - 打开 Fedora 系统并按下 `ESC` 键,直到看到 GRUB 启动菜单。出现 GRUB 菜单后,选择要引导的内核并按下 `e` 编辑选定的引导条目。
![Grub Menu In Fedora 36][1]
**步骤 2** - 在下一个页面中,你将看到所有启动参数。找到名为 **ro** 的参数。
**步骤 2** - 在下一个页面中,你将看到所有启动参数。找到名为 `ro` 的参数。
![Find ro Kernel Parameter In Grub Entry][2]
**步骤 3** - 将 **“ro”** 参数替换为 **“rw init=/sysroot/bin/sh”**(不带引号)。请注意 “`rw`” 和 “`init=/sysroot`...” 之间的空格。修改后的内核参数行应如下所示。
**步骤 3** - 将 `ro` 参数替换为 `rw init=/sysroot/bin/sh`。请注意 `rw``init=/sysroot`...之间的空格。修改后的内核参数行应如下所示。
![Modify Kernel Parameters][3]
**步骤 4** - 上述步骤更改参数后,按 **Ctrl+x** 进入紧急模式,即单用户模式。
**步骤 4** - 上述步骤更改参数后,按 `Ctrl+x` 进入紧急模式,即单用户模式。
在紧急模式下,输入以下命令以 **读/写** 模式挂载根文件系统(`/`)。
@ -73,7 +76,7 @@ reboot
![Login To Fedora As Root User][8]
如你所见,在 Fedora 36 中重置 root 密码的步骤非常简单,并且与**[在 RHEL 中重置 root 密码][9]**及其衍生版本(如 CentOS、AlmaLinux 和 Rocky Linux完全相同。
如你所见,在 Fedora 36 中重置 root 密码的步骤非常简单,并且与 [在 RHEL 中重置 root 密码][9] 及其衍生版本(如 CentOS、AlmaLinux 和 Rocky Linux完全相同。
--------------------------------------------------------------------------------

View File

@ -3,16 +3,14 @@
[#]: author: "Gary Scarborough https://fedoramagazine.org/author/gscarbor/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14657-1.html"
使用自动化时的五个常见错误
======
![][1]
背景图片来自 [“Modern Times”1936][2][United Artists][3],公共领域,通过 Wikimedia Commons
![](https://img.linux.net.cn/data/attachment/album/202205/31/151450ukwk98weqgefgowa.jpg)
随着自动化扩展到涵盖 IT 的更多方面,越来越多的管理员正在学习自动化技能并应用它们来减轻他们的工作量。自动化可以减轻重复性任务的负担,并为基础设施增加一定程度的一致性。但是,当 IT 工作人员部署自动化时,会出现可能对大大小小的基础设施造成严重破坏的常见错误。在自动化部署中通常会出现五个常见错误。
@ -20,7 +18,7 @@
初学者常犯的错误是自动化脚本没有经过全面测试。由于拼写错误或逻辑错误,简单的 shell 脚本可能会对服务器产生不利影响。将该错误乘以基础架构中的服务器数量,你可能会遇到一大堆问题需要清理。在大规模部署之前始终测试你的自动化脚本。
### 意外的服务器负载
### 意外负载
经常发生的第二个错误是没有预测脚本可能对其他资源施加的系统负载。当目标是十几个服务器时,运行从仓库下载文件或安装包的脚本可能没问题。脚本通常在成百上千台服务器上运行。这种负载可以使支持服务停止或完全崩溃。不要忘记考虑端点影响或设置合理的并发率。
@ -30,11 +28,11 @@
### 缺乏文档
管理员的一项固定职责应该是记录他们的工作。由于合同到期、升职或定期员工流动,公司可能会在 IT 部门频繁招聘新员工。公司内的工作组相互隔离也很常见。由于这些原因,重要的是记录哪些自动化已经到位。与用户运行脚本不同,自动化可能会在创建它的人离开组之后继续很长时间。管理员可能会发现自己在其基础设施中面临着来自自动化未经检查的奇怪行为。
管理员的一项固定职责应该是记录他们的工作。由于合同到期、升职或定期员工流动,公司可能会在 IT 部门频繁招聘新员工。公司内的工作组相互隔离也很常见。由于这些原因,重要的是记录哪些自动化已经到位。与用户运行脚本不同,自动化可能会在创建它的人离开组之后继续很长时间。管理员可能会发现自己在其基础设施中面临着来自未经检查的自动化的奇怪行为。
### 缺乏经验
列表中的最后一个错误是管理员对他们正在自动化的系统不够了解。管理员经常被雇用到他们没有接受过足够培训且没有人可以学习的职位上工作。自 COVID 以来,当公司努力填补空缺时,这一点尤其重要。然后管理员被迫处理他们没有设置并且可能不完全理解的基础设施。这可能会导致非常低效的脚本浪费资源或配置错误的服务器。
列表中的最后一个错误是管理员对他们正在自动化的系统不够了解。管理员经常被雇用到他们没有接受过足够培训且没有人可以求教的职位上工作。自 COVID 以来,当公司努力填补空缺时,这一点尤其重要。然后管理员被迫处理他们没有设置并且可能不完全理解的基础设施。这可能会导致非常低效的脚本浪费资源或配置错误的服务器。
### 结论
@ -47,7 +45,7 @@ via: https://fedoramagazine.org/five-common-mistakes-when-using-automation/
作者:[Gary Scarborough][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,42 @@
[#]: subject: "Google To Start Distributing A Collection Of Open Source Software libraries"
[#]: via: "https://www.opensourceforu.com/2022/05/google-to-start-distributing-a-collection-of-open-source-software-libraries/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "beamrolling"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14641-1.html"
谷歌开始分发一系列开源软件库
======
![](https://img.linux.net.cn/data/attachment/album/202205/27/104331cwwqji26wlwwfw2n.jpg)
5 月 17 日,谷歌推出了一项新计划,该计划向谷歌云用户策划并提供经过安全审查的开源包选项,以保护开源软件供应链。该公司在一篇 [博文][2] 中宣布了这项名为 “<ruby>安心开源软件<rt>Assured Open Source Software</rt></ruby>” 的新服务。在博文中,谷歌云安全和隐私部门产品经理 Andy Chang 强调了保障开源软件的一些问题,并强调了谷歌对开源的承诺。
“开发者社区、企业及政府对软件供应链风险的意识越来越强”Chang 写道,并以去年的 log4j 重大漏洞为例。“谷歌仍是开源代码最大的维护者、贡献者和使用者之一,并深入参与了帮助开源软件生态系统更加安全的工作。”
据谷歌称,“安心开源软件”服务将让云客户能够访问谷歌的大量软件审计知识。另据其称,所有通过该服务提供的开源软件包也在公司内部使用,该公司会定期检查和分析其漏洞。
谷歌目前正在审核的 550 个重要开源库的清单可以在 [GitHub][3] 上找到。虽然这些库都可以独立于谷歌下载,但该计划将呈现通过谷歌云提供的审核版本,防止开发者破坏广泛使用的开放源码库。这项服务现在处于预先体验阶段,将在 2022 年第三季度准备好进行更广泛的消费者测试。
谷歌的声明只是广大行业努力加强开源软件供应链的安全的一部分,这份努力得到了拜登政府的支持。今年 1 月,美国国土安全部和美国网络安全与基础设施安全局的代表与美国一些主要 IT 公司的高管会面,研究 log4j 漏洞之后的开源软件安全问题。此后,有关公司在最近的一次峰会上承诺提供超过 3000 万美元的资金,以改善开源软件的安全问题。
除了现金,谷歌还在投入工程时间来确保供应链的安全。该公司已宣布发展一个“<ruby>开源维护小组<rt>Open Source Maintenance Crew</rt></ruby>”,该团队将与库维护人员合作以提高安全性。
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/google-to-start-distributing-a-collection-of-open-source-software-libraries/
作者:[Laveesh Kocher][a]
选题:[lkxed][b]
译者:[beamrolling](https://github.com/beamrolling)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/google3-1-e1652863988525.jpg
[2]: https://cloud.google.com/blog/products/identity-security/introducing-assured-open-source-software-service
[3]: https://github.com/google/oss-fuzz/tree/master/projects

View File

@ -0,0 +1,128 @@
[#]: subject: "How To Reset Sudo Password In Ubuntu 22.04 / 20.04 LTS"
[#]: via: "https://ostechnix.com/how-to-reset-sudo-password-in-ubuntu-20-04-lts/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14648-1.html"
如何在 Ubuntu 22.04 / 20.04 LTS 中重新设置 sudo 密码
======
![](https://img.linux.net.cn/data/attachment/album/202205/29/083429wzrvirffinihrfv5.jpg)
> 在 Ubuntu 中重新设置已忘记的 root 用户的密码
这篇简单的指南将向你解释,如何在 Ubuntu 22.04 好 20.04 LTS 桌面环境中,以及从服务器版本中的 <ruby>恢复<rt>rescue</rt></ruby> 模式中重新设置 sudo 密码。
### 介绍
在 [安装 Ubuntu][1] 时,创建的一个新用户将会带有 `sudo` 权限,用以执行各种各样的管理任务。
如果你的 Ubuntu 系统有多个 `sudo` 用户,你能够从另外一个 `sudo` 用户的账号下,轻松地重新设置所忘记的一个 `sudo` 用户或管理员用户的密码。
如果你只有一个 `sudo` 用户,并且忘记了密码怎么办?没有问题! 从 Ubuntu 的 <ruby>恢复<rt>rescue</rt></ruby><ruby>单一用户<rt>single user</rt></ruby> 模式中恢复 `sudo` 用户密码很容易。
虽然这篇指南是在 Ubuntu 22.04 和 20.04 LTS 版本上进行的正式测试,不过,下面给定的步骤对于其它的 Ubuntu 版本和衍生版本来说是相同的。
### 在 Ubuntu 22.04 / 20.04 LTS 中重新设置 sudo 密码
首先,启动你的 Ubuntu 系统到 <ruby>恢复<rt>rescue</rt></ruby> 模式下,来重新设置一个 `sudo` 用户的密码,操作如下面的链接所述。
> [如何启动到 Ubuntu 22.04 /  20.04 / 18.04 的 <ruby>恢复<rt>rescue</rt></ruby> 模式 或 <ruby>急救<rt>Emergency</rt></ruby>模式 ][2]
现在,进入到 <ruby>恢复<rt>rescue</rt></ruby> 模式下,通过运行下面的命令,以读/写的模式挂载根(`/`)文件系统:
```
# mount -n -o remount,rw /
```
现在,使用 `passwd` 命令来重新设置 `sudo` 用户的密码:
```
# passwd ostechnix
```
在这里,`ostechnix` 是 sudo 用户的名称。使用你自己的用户名称来替换掉它。
输入两次密码:
```
New password:
Retype new password:
passwd: password updated successfully
```
![Reset Sudo Password In Ubuntu 22.04 / 20.04 LTS][3]
就这样。我们已经重新设置 `sudo` 用户密码。如果你按照上面链接所述的方法 1 进入到 <ruby>恢复<rt>rescue</rt></ruby> 模式,按下 `Ctrl+d` 组合键来启动到正常模式。或者,你也可以输入下面的任意一个命令来启动到正常模式。
```
# systemctl default
```
或,
```
# exit
```
如果你想重新启动系统,而不是启动到正常模式,输入:
```
# systemctl reboot
```
如果你已经按照上面链接所述的方法 2 进入到<ruby>恢复<rt>rescue</rt></ruby> 模式,输入:
```
# exit
```
你将返回到 <ruby>恢复菜单<rt>recovery menu</rt></ruby>。现在选择 “<ruby>恢复正常启动<rt>Resume normal boot</rt></ruby>”,并按下回车键。
![Boot Into Normal Mode In Ubuntu][4]
在强调一次,选择 “<ruby>确定<rt>OK</rt></ruby>” 按钮,并按下回车按键来继续启动到正常模式:
![Exit Recovery Mode And Boot Into Normal Mode][5]
现在,你在运行管理命令时可以使用新的 `sudo` 密码。
### 如果我把用户名称和密码都忘了怎么办?
如果你忘记了用户名称,在 <ruby>恢复<rt>rescue</rt></ruby> 模式下,你可以很容易地列出你的 Linux 系统中的用户名称,使用目录:
```
# cat etc/passwd
```
来自我 Ubuntu 22.04 系统的输出示例:
```
[...]
ostechnix:x:1000:1000:Ostechnix,,,:/home/ostechnix:/bin/bash
[...]
```
好了,现在,你找到用户名称了。只需要按照上面的步骤来重新设置用户的密码即可。
--------------------------------------------------------------------------------
via: https://ostechnix.com/how-to-reset-sudo-password-in-ubuntu-20-04-lts/
作者:[sk][a]
选题:[lkxed][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/install-ubuntu-desktop/
[2]: https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/
[3]: https://ostechnix.com/wp-content/uploads/2022/05/Reset-Sudo-Password-In-Ubuntu.png
[4]: https://ostechnix.com/wp-content/uploads/2020/05/Boot-into-normal-mode-in-Ubuntu.png
[5]: https://ostechnix.com/wp-content/uploads/2020/05/Booting-into-normal-mode-from-rescue-mode-in-Ubuntu.png

View File

@ -0,0 +1,269 @@
[#]: subject: "A programmer's guide to GNU C Compiler"
[#]: via: "https://opensource.com/article/22/5/gnu-c-compiler"
[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14653-1.html"
GNU C 编译器的程序员入门指南
======
![](https://img.linux.net.cn/data/attachment/album/202205/30/111925gbh7yldbolroheqy.jpg)
> 带你一窥生成二进制文件步骤的幕后,以便在出现一些错误时,你知道如何逐步解决问题。
C 语言广为人知,深受新老程序员的好评。使用 C 语言编写的源文件代码,使用了标准的英语术语,因而人们可以方便阅读。然而,计算机只能理解二进制代码。为将代码转换为机器语言,你需要使用一种被称为 <ruby>编译器<rt>compiler</rt></ruby> 的工具。
最常见的编译器是 GCC<ruby>GNU 编译器集<rt>GNU Compiler Collection</rt></ruby>)。编译过程涉及到一系列的中间步骤及相关工具。
### 安装 GCC
为验证在你的系统上是否已经安装了 GCC使用 `gcc` 命令:
```
$ gcc --version
```
如有必要,使用你的软件包管理器来安装 GCC。在基于 Fedora 的系统上,使用 `dnf`
```
$ sudo dnf install gcc libgcc
```
在基于 Debian 的系统上,使用 `apt`
```
$ sudo apt install build-essential
```
在安装后,如果你想查看 GCC 的安装位置,那么使用:
```
$ whereis gcc
```
### 演示使用 GCC 来编译一个简单的 C 程序
这里有一个简单的 C 程序,用于演示如何使用 GCC 来编译。打开你最喜欢的文本编辑器,并在其中粘贴这段代码:
```
// hellogcc.c
#include <stdio.h>
int main() {
printf("Hello, GCC!\n");
return 0;
}
```
保存文件为 `hellogcc.c` ,接下来编译它:
```
$ ls
hellogcc.c
$ gcc hellogcc.c
$ ls -1
a.out
hellogcc.c
```
如你所见,`a.out` 是编译后默认生成的二进制文件。为查看你所新编译的应用程序的输出,只需要运行它,就像你运行任意本地二进制文件一样:
```
$ ./a.out
Hello, GCC!
```
### 命名输出的文件
文件名称 `a.out` 是非常莫名其妙的,所以,如果你想具体指定可执行文件的名称,你可以使用 `-o` 选项:
LCTT 译注:注意这和最近 Linux 内核废弃的 a.out 格式无关,只是名字相同,这里生成的 a.out 是 ELF 格式的 —— 也不知道谁给起了个 `a.out` 这破名字,在我看来,默认输出文件名就应该是去掉了 `.c` 扩展名后的名字。by wxy
```
$ gcc -o hellogcc hellogcc.c
$ ls
a.out hellogcc hellogcc.c
$ ./hellogcc
Hello, GCC!
```
当开发一个需要编译多个 C 源文件文件的大型应用程序时,这种选项是很有用的。
### 在 GCC 编译中的中间步骤
编译实际上有四个步骤,即使在简单的用例中 GCC 自动执行了这些步骤。
1. <ruby>预处理<rt>Pre-Processing</rt></ruby>GNU 的 C 预处理器cpp解析头文件`#include` 语句),展开 <ruby><rt>macros </rt></ruby> 定义(`#define` 语句),并使用展开的源文件代码来生成一个中间文件,如 `hellogcc.i`
2. <ruby>编译<rt>Compilation</rt></ruby>:在这个期间中,编译器将预处理的源文件代码转换为指定 CPU 架构的汇编代码。由此生成是汇编文件使用一个 `.s` 扩展名来命名,如在这个示例中的 `hellogcc.s`
3. <ruby>汇编<rt>Assembly</rt></ruby>:汇编程序(`as`)将汇编代码转换为目标机器代码,放在目标文件中,例如 `hellogcc.o`
4. <ruby>链接<rt>Linking</rt></ruby>:链接器(`ld`)将目标代码和库代码链接起来生成一个可执行文件,例如 `hellogcc`
在运行 GCC 时,可以使用 `-v` 选项来查看每一步的细节:
```
$ gcc -v -o hellogcc hellogcc.c
```
![Compiler flowchart][2]
### 手动编译代码
体验编译的每个步骤可能是很有用的,因此在一些情况下,你不需要 GCC 完成所有的步骤。
首先,除源文件文件以外,删除在当前文件夹下生成的文件。
```
$ rm a.out hellogcc.o
$ ls
hellogcc.c
```
#### 预处理器
首先,启动预处理器,将其输出重定向为 `hellogcc.i`
```
$ cpp hellogcc.c > hellogcc.i
$ ls
hellogcc.c hellogcc.i
```
查看输出文件,并注意一下预处理器是如何包含头文件和扩展宏中的源文件代码的。
#### 编译器
现在,你可以编译代码为汇编代码。使用 `-S` 选项来设置 GCC 只生成汇编代码:
```
$ gcc -S hellogcc.i
$ ls
hellogcc.c hellogcc.i hellogcc.s
$ cat hellogcc.s
```
查看汇编代码,来看看生成了什么。
#### 汇编
使用你刚刚所生成的汇编代码来创建一个目标文件:
```
$ as -o hellogcc.o hellogcc.s
$ ls
hellogcc.c hellogcc.i hellogcc.o hellogcc.s
```
#### 链接
要生成一个可执行文件,你必须将对象文件链接到它所依赖的库。这并不像前面的步骤那么简单,但它却是有教育意义的:
```
$ ld -o hellogcc hellogcc.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000000401000
ld: hellogcc.o: in function `main`:
hellogcc.c:(.text+0xa): undefined reference to `puts'
```
在链接器查找完 `libc.so` 库后,出现一个引用 `undefined puts` 错误。你必须找出适合的链接器选项来链接必要的库以解决这个问题。这不是一个小技巧,它取决于你的系统的布局。
在链接时,你必须链接代码到<ruby>核心运行时<rt>core runtime</rt></ruby>CRT目标这是一组帮助二进制可执行文件启动的子例程。链接器也需要知道在哪里可以找到重要的系统库包括 `libc``libgcc`,尤其是其中的特殊的开始和结束指令。这些指令可以通过 `--start-group``--end-group` 选项来分隔,或者使用指向 `crtbegin.o``crtend.o` 的路径。
这个示例使用了 RHEL 8 上的路径,因此你可能需要依据你的系统调整路径。
```
$ ld -dynamic-linker /lib64/ld-linux-x86-64.so.2 \
-o hello \
/usr/lib64/crt1.o /usr/lib64/crti.o \
--start-group \
-L/usr/lib/gcc/x86_64-redhat-linux/8 \
-L/usr/lib64 -L/lib64 hello.o \
-lgcc \
--as-needed -lgcc_s \
--no-as-needed -lc -lgcc \
--end-group \
/usr/lib64/crtn.o
```
在 Slackware 上,同样的链接过程会使用一组不同的路径,但是,你可以看到这其中的相似之处:
```
$ ld -static -o hello \
-L/usr/lib64/gcc/x86_64-slackware-linux/11.2.0/ \
/usr/lib64/crt1.o /usr/lib64/crti.o hello.o /usr/lib64/crtn.o \
--start-group \
-lc -lgcc -lgcc_eh \
--end-group
```
现在,运行由此生成的可执行文件:
```
$ ./hello
Hello, GCC!
```
### 一些有用的实用程序
下面是一些帮助检查文件类型、<ruby>符号表<rt>symbol tables</rt></ruby> 和链接到可执行文件的库的实用程序。
使用 `file` 实用程序可以确定文件的类型:
```
$ file hellogcc.c
hellogcc.c: C source, ASCII text
$ file hellogcc.o
hellogcc.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$ file hellogcc
hellogcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bb76b241d7d00871806e9fa5e814fee276d5bd1a, for GNU/Linux 3.2.0, not stripped
```
对目标文件使用 `nm` 实用程序可以列出 <ruby>符号表<rt>symbol tables</rt></ruby>
```
$ nm hellogcc.o
0000000000000000 T main
U puts
```
使用 `ldd` 实用程序来列出动态链接库:
```
$ ldd hellogcc
linux-vdso.so.1 (0x00007ffe3bdd7000)
libc.so.6 => /lib64/libc.so.6 (0x00007f223395e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2233b7e000)
```
### 总结
在这篇文章中,你了解到了 GCC 编译中的各种中间步骤,和检查文件类型、<ruby>符号表<rt>symbol tables</rt></ruby> 和链接到可执行文件的库的实用程序。在你下次使用 GCC 时,你将会明白它为你生成一个二进制文件所要做的步骤,并且当出现一些错误时,你会知道如何逐步处理解决问题。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/gnu-c-compiler
作者:[Jayashree Huttanagoudar][a]
选题:[lkxed][b]
译者:[robsean](https://github.com/robsean)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jayashree-huttanagoudar
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/build_structure_tech_program_code_construction.png
[2]: https://opensource.com/sites/default/files/2022-05/compiler-flowchart.png

View File

@ -0,0 +1,132 @@
[#]: subject: "Customize GNOME 42 with A Polished Look"
[#]: via: "https://www.debugpoint.com/2022/05/customize-gnome-42-look-1/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14646-1.html"
如何把你的 GNOME 42 打磨得更精致
======
![](https://img.linux.net.cn/data/attachment/album/202205/28/191525nx791r930j88ra3z.jpg)
> 在 5 分钟内将你最喜欢的 GNOME 桌面打磨得更精致。
你可以使用图标、主题、光标和壁纸等多种方式来定制你最喜爱的 GNOME 桌面。本文向你展示了如何使你的 GNOME 42 桌面看起来更精致。在最近发布的 Ubuntu 22.04 LTS 和 Fedora 36 上提供了 GNOME 42 桌面环境。
在你进一步阅读之前,先看看调整之前和之后的外观比较。
![GNOME before customisation][1]
![GNOME after customisation][2]
我将把本教程分为两个部分。
第一部分涉及设置和安装所需的软件包。然后第二部分是如何应用各种设置来获得你想要的外观。
本教程主要在 Ubuntu 22.04 LTS 上测试。但是,它应该适用于 Ubuntu 和 Fedora 的其他变体。
### 将 GNOME 42 定制得更精致
#### 设置
首先,为你的系统启用 Flatpak因为我们需要安装扩展管理器来下载本教程所需的 GNOME Shell 扩展。
因此,要做到这一点,请打开一个终端并运行以下命令:
```
sudo apt install flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
```
完成后重启计算机。
然后从终端运行以下命令,来安装扩展管理器应用以下载 GNOME Shell 扩展:
```
flatpak install flathub com.mattjakeman.ExtensionManager
```
打开扩展管理器应用,并安装两个扩展。第一个是 “<ruby>浮动停靠区<rt>Floating Dock</rt></ruby>”,它提供了超酷的停靠区,你可以在桌面上的任何位置移动它。第二个,安装 “<ruby>用户主题<rt>User themes</rt></ruby>” 扩展来帮助你在 Ubuntu Linux 中安装外部 GTK 主题。
![User Themes Extension][3]
![Floating Dock Extension][4]
接着,使用以下命令安装 [Materia 主题][5]。你必须构建它,因为它没有任何可执行文件。在 Ubuntu 中依次运行以下命令进行安装:
```
git clone https://github.com/ckissane/materia-theme-transparent.git
cd materia-theme-transparent
meson _build
meson install -C _build
```
此外,请从 [这里][7] 下载 [Kora 图标主题][6]。下载后解压文件,将以下四个文件夹复制到 `/home/<用户名>/.icons` 路径下。如果 `.icons` 文件夹不存在,请创建它。
![Kora Icon Theme][8]
除了上述更改,从 [这里][9] 下载 Bibata 光标主题。下载后,解压文件夹并将其复制到相同的 `/home/<用户名>/.icons` 文件夹中。
除了上述之外,如果你想要一个与上述主题相匹配的漂亮字体,请从谷歌字体 [下载 Robot 字体][10],并将它们复制到 `/home/<user name>/.fonts` 文件夹。
最后,再次重启系统。
#### 配置
打开扩展管理器,启用 “<ruby>浮动停靠区<rt>Floating Dock</rt></ruby>” 和 “<ruby>用户主题<rt>User themes</rt></ruby>”,并禁用 “Ubuntu Dock”。
![Changes to Extensions][11]
此外,打开 “<ruby>浮动停靠区<rt>Floating Dock</rt></ruby>” 设置并进行以下更改:
![Floating Dock Settings][12]
此外,打开 <ruby>[GNOME 优化工具][13]<rt>GNOME Tweak Tool</rt></ruby>,然后转到<ruby>外观<rt>Appearance</rt></ruby>选项卡。设置以下内容:
* 光标Bibata-Original-Ice
* Shell 主题Materia
* 图标Kora
除此之外,你可能还想更改字体。为此,请转到<ruby>字体<rt>Fonts</rt></ruby>选项卡并将文档和界面更改为 “Robot 10pt”。
或者,你也可以从 Ubuntu 22.04 的默认设置中更改强调色和样式。
最后,根据你的喜好下载漂亮的壁纸。对于本教程,我从 [这里][14] 下载了一个示例壁纸。
如果一切顺利,你应该有一个漂亮的桌面,如下图所示:
![Customize GNOME 42 Final Look][15]
享受你的精致的 GNOME 42干杯。
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/customize-gnome-42-look-1/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://i2.wp.com/www.debugpoint.com/wp-content/uploads/2022/05/GNOME-before-customisation.jpg?ssl=1
[2]: https://i0.wp.com/www.debugpoint.com/wp-content/uploads/2022/05/GNOME-after-customisation.jpg?ssl=1
[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/User-Themes-Extension2.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/Floating-Doc-Extension.jpg
[5]: https://github.com/ckissane/materia-theme-transparent
[6]: https://github.com/bikass/kora/
[7]: https://github.com/bikass/kora/archive/refs/heads/master.zip
[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Kora-Icon-Theme.jpg
[9]: https://www.pling.com/p/1197198/
[10]: https://fonts.google.com/specimen/Roboto
[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Changes-to-Extensions.jpg
[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Floating-Dock-Settings.jpg
[13]: https://www.debugpoint.com/2018/05/customize-your-ubuntu-desktop-using-gnome-tweak/
[14]: https://www.pexels.com/photo/colorful-blurred-image-6985048/
[15]: https://www.debugpoint.com/wp-content/uploads/2022/05/Customize-GNOME-42-Final-Look.jpg

View File

@ -3,21 +3,22 @@
[#]: author: "Dr Kumar Gaurav https://www.opensourceforu.com/author/dr-gaurav-kumar/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14649-1.html"
DAML区块链中智能合约的编程语言
======
DAML 智能合约语言是一种专门设计的特定领域语言,用于编码应用的共享业务逻辑。它用于区块链环境中分布式应用的开发和部署。
![blockchain-hand-shake][1]
> DAML 智能合约语言是一种专门设计的<ruby>特定领域语言<rt>domain specific language</rt></ruby>DSL用于编码应用的共享业务逻辑。它用于区块链环境中分布式应用的开发和部署。
![](https://img.linux.net.cn/data/attachment/album/202205/29/090752supudcno3dufa41j.jpg)
区块链技术是一种安全机制,以一种使人难以或不可能修改或入侵的方式来跟踪信息。区块链整合了交易的数字账本,它被复制并发送至其网络上的每台计算机。在链的每个区块中,都有一些交易。当区块链上发生新的交易时,该交易的记录就会被添加到属于该链的每个人的账簿中。
区块链使用分布式账本技术DLT其中数据库并不保存在一个服务器或节点中。在区块链中交易被记录在一个被称为哈希的不可改变的加密符号中。这意味着如果一个通道或链上的一个区块被改变黑客将很难改变链上的那个区块因为他们必须对外面的每一个版本的链都要这样做。区块链如比特币和以太坊随着新的区块被添加到链上而不断增长这使得账本更加安全。
区块链使用<ruby>分布式账本技术<rt>distributed ledger technology</rt></ruby>DLT其中数据库并不保存在一个服务器或节点中。在区块链中交易被记录在一个被称为<ruby>哈希<rt>hash</rt></ruby>的不可改变的加密符号中。这意味着,如果一个通道或链上的一个区块被改变,黑客将很难改变链上的那个区块,因为他们必须对外面的每一个版本的链都要这样做。区块链,如比特币和以太坊,随着新的区块被添加到链上而不断增长,这使得账本更加安全。
随着区块链中智能合约的实施,在没有任何人工干预的情况下,有自动执行的场景。智能合约技术使得执行最高级别的安全、隐私和反黑客实施成为可能。
随着区块链中智能合约的实施,在没有任何人工干预的情况下,有自动执行的场景。智能合约技术使得执行最高级别的安全、隐私和反黑客实施成为可能。
![Figure 1: Market size of blockchain technology (Source: Statista.com)][2]
@ -34,7 +35,7 @@ DAML 智能合约语言是一种专门设计的特定领域语言,用于编码
* 数字投票
* 供应链管理
根据 *Statista.com*,自过去几年以来,区块链技术市场的规模正在以非常快的速度增长,预计到 2025 年将达到 400 亿美元。
根据 Statista.com自过去几年以来区块链技术市场的规模正在以非常快的速度增长预计到 2025 年将达到 400 亿美元。
### 区块链的编程语言和工具箱
@ -46,7 +47,7 @@ DAML 智能合约语言是一种专门设计的特定领域语言,用于编码
开发区块链的主要平台有:
* Ethereum
* 以太坊
* XDC Network
* Tezos
* Stellar
@ -63,7 +64,7 @@ DAML 智能合约语言是一种专门设计的特定领域语言,用于编码
### DAML一种高性能的编程语言
数字资产建模语言或 DAMLdaml.com是一种高性能的编程语言,用于开发和部署区块链环境中的分布式应用。它是一个轻量级和简洁的平台,用于快速应用开发。
<ruby>数字资产建模语言<rt>Digital Asset Modeling Language</rt></ruby>,即 DAMLdaml.com是一种高性能的编程语言,用于开发和部署区块链环境中的分布式应用。它是一个轻量级和简洁的平台,用于快速应用开发。
![Figure 3: Official portal of DAML][4]
@ -83,14 +84,14 @@ DAML 的主要特点是:
### 安装和使用 DAML
DAML SDK 可以安装在 Linux、macOS 或 Windows 上。在多个操作系统上安装 DAML 的详细说明可访问 *https://docs.daml.com/getting-started/installation.html*
DAML SDK 可以安装在 Linux、macOS 或 Windows 上。在多个操作系统上安装 DAML 的详细说明可访问 https://docs.daml.com/getting-started/installation.html
你必须具备以下条件才能使用 DAML
* Visual Studio Code
* Java 开发套件JDK
DAML 可以通过下载并运行可执行的安装程序在 Windows 上安装,你可访问 *https://github.com/digital-asset/daml/releases/download/v1.18.1/daml-sdk-1.18.1-windows.exe。*
DAML 可以通过下载并运行可执行的安装程序在 Windows 上安装,你可访问 https://github.com/digital-asset/daml/releases/download/v1.18.1/daml-sdk-1.18.1-windows.exe
在 Linux 或 Mac 上安装 DAML 可以通过在终端执行以下内容来完成:
@ -112,13 +113,13 @@ WorkingDirectory>npm install
WorkingDirectory>npm start
```
WebUI 被启动,该应用可在 Web 浏览器上通过 URL *http://localhost:3000/* 访问。
这样启动了 WebUI该应用可在 Web 浏览器上通过 URL http://localhost:3000/ 访问。
![Figure 6: Login panel in DAML app][7]
### 研究和开发的范围
区块链技术为不同类别的应用提供了广泛的开发平台和框架。其中许多平台是免费和开源的,可以下载和部署以用于基于研究的实现。研究学者、从业者和院士可以使用这些平台为众多应用提出和实施他们的算法。
区块链技术为不同类别的应用提供了广泛的开发平台和框架。其中许多平台是免费和开源的,可以下载和部署以用于基于研究的实现。研究学者、从业者和专家们可以使用这些平台为众多应用提出和实施他们的算法。
--------------------------------------------------------------------------------
@ -127,7 +128,7 @@ via: https://www.opensourceforu.com/2022/05/daml-the-programming-language-for-sm
作者:[Dr Kumar Gaurav][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -135,7 +136,7 @@ via: https://www.opensourceforu.com/2022/05/daml-the-programming-language-for-sm
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/blockchain-hand-shake.jpg
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Market-size-of-blockchain-technology.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Factors-to-look-at-when-selecting-a-blockchain-platform-2.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/05/Untitled.png
[4]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-3-Official-portal-of-DAML-1.jpg
[5]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-4-Creating-a-new-app.jpg
[6]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-5-Running-DAML.jpg

View File

@ -0,0 +1,135 @@
[#]: subject: "Linux Kernel 5.18 Released with Graphics Driver Changes and New Hardware Support"
[#]: via: "https://news.itsfoss.com/linux-kernel-5-18-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "PeterPan0106"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14640-1.html"
Linux 内核 5.18 版本正式发布,新增显卡驱动以及硬件支持
======
> 最新的 Linux 内核 5.18 版本现已如期发布,本次更新包括针对新硬件的支持以及许多其他核心变化。
![Linux kernel 5.18 release][1]
[Linux 5.17 内核][2] 发布时包含了对下一代硬件的支持,同时增强了 Steam Deck 的游戏体验。
每一代内核都包含了令人兴奋的技术进步Linux 内核 5.18 也不例外。
### Linux 内核 5.18 有哪些变化呢?
本次我们可以看到,内核针对雷蛇外设硬件、苹果妙控键盘和 AMD 显卡增强了支持,还有一些网络、核心和安全方面的更新。
#### 新的雷蛇驱动
说到游戏装备Linux 的硬件支持亟待更新。
目前存在一些开源驱动程序的变通解决方案。但是这些方案不具有普适性,适配和支持较少。
正如 [Phoronix][3] 所发现的Linux 内核 5.18 中一同发布了一个新的雷蛇 HID 驱动程序,它适配了雷蛇黑寡妇蜘蛛键盘,并修复了宏键此前存在的问题。
此外,这个驱动程序应该也有助于解决其他雷蛇硬件的问题。
#### AMD 显卡特性 FreeSync 模式被默认开启
![][4]
虽然对 FreeSync 视频的支持足够好,但这只是改善 FreeSync 显示器用户体验的一个临时解决方案。
现在在 Linux 内核 5.18 版本中这一显示模式已被默认启用,用户无需调整任何设置即可使用 FreeSync[见更新日志][5])。
#### 显卡驱动更新
针对当前和未来的 AMD 显卡的驱动进行了改进。此外,支持英特尔 Arch 图形处理器和英特尔 Alder Lake N 的工作也取得了一些进展。
更高刷新率的 DisplayPort 也在这一个版本中得到支持。
#### 从 C89 标准升级到 C11 标准GNU11
![][6]
在 Linux 内核中使用的是 C89 C 语言标准,在当前已经稍显老旧并且缺失了许多十分必要的新特性。
考虑到目前的编译器版本 GCC 5.1 的要求,从 Linux 内核 5.18 开始决定用 C11 标准来取代它。
#### 网络优化
Linux 内核 5.18 增加了对新的无线硬件的支持,这包括联发科 MT7916、MT7921U 和博通 BCM43454/6。
![][7]
针对移动设备的改进也包括对英特尔 M.2 WWAN 卡的支持。
Realtek W89 驱动现在支持 AP 模式、6GHz 频段并增加了硬件扫描功能。
在配置 IPv6 和其他各种协议方面,通过一系列的改进提升了性能。
你可以在 Linux 内核 5.18 中网络方面的变更提交中了解所有情况(包括对驱动 API、协议和一些核心功能的改进
#### USB 改进
Xen USB 驱动程序进行了改进以抵御恶意主设备USB DWC3 驱动程序也支持了更多的硬件类型。
其他改进详见 [更新日志][8]。
#### 增强对苹果键盘以及平板的支持
![][9]
当前版本针对苹果妙控键盘(包含第一代型号)的使用体验进行了优化。
改进了功能键映射、键盘背光事件,以及 2021 款的妙控键盘通过 USB 连接时报告电池水平的能力。
Linux 内核 5.18 改进了输入处理,在平板电脑上输入将变得更为容易。
硬件相关的改进详见 [更新日志][10]。
#### ARM 架构芯片的支持(特斯拉 FSD树莓派 Zero 2 W
![][11]
Linux 内核 5.18 现在支持特斯拉的全套自动驾驶 SoC。三星工程师将其贡献到了 Linux 内核上游。
其他芯片支持包括高通骁龙 625/632以及三星 Exynos 850/7885。
你还会发现 Linux 内核 5.18 支持了树莓派 Zero 2 W而同时去除了旧的硬件/主板的支持。详见 [更新日志][12]。
你可以参考 [官方更新日志][13]  Linus Torvald 的官方公告获取更多信息。
### 如何安装 Linux 内核 5.18
你可以在 [Linux Kernel Archives][14] 网站上找到最新版本的内核。你可以下载 [Tarball][15] 以进行测试。你也可以参照我们的 [Linux 内核升级指南][16] 获取帮助。
如果不想自己编译它,你可以稍等几周,等 Linux 发行版们把它推到仓库。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/linux-kernel-5-18-release/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[PeterPan0106](https://github.com/PeterPan0106)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/kernel-5-18-release.png
[2]: https://news.itsfoss.com/linux-kernel-5-17-release/
[3]: https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.18-HID
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/amd-linux-5-18-1024x576.jpg
[5]: https://lists.freedesktop.org/archives/amd-gfx/2022-February/075262.html
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/c-linux-5-18-1024x576.jpg
[7]: https://news.itsfoss.com/wp-content/uploads/2022/05/networking-linux-5-18-1024x576.jpg
[8]: https://lore.kernel.org/lkml/Yj7vGtn8fILavjyL@kroah.com/
[9]: https://news.itsfoss.com/wp-content/uploads/2022/05/apple-linux-5-18-1024x576.jpg
[10]: https://lore.kernel.org/lkml/nycvar.YFH.7.76.2203231015060.24795@cbobk.fhfr.pm/
[11]: https://news.itsfoss.com/wp-content/uploads/2022/05/arm-linux-5-18-1024x576.jpg
[12]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=baaa68a9796ef2cadfe5caaf4c730412eda0f31c
[13]: https://lore.kernel.org/lkml/CAHk-=wjiqyoH6qntYvYTjR1F2L-pHtgX9esZMRS13iktCOJ1zA@mail.gmail.com/T/#u
[14]: https://www.kernel.org/
[15]: https://git.kernel.org/torvalds/t/linux-5.16.tar.gz
[16]: https://itsfoss.com/upgrade-linux-kernel-ubuntu/

View File

@ -0,0 +1,75 @@
[#]: subject: "System76 Collaborates with HP for a Powerful Linux Laptop for Developers"
[#]: via: "https://news.itsfoss.com/hp-dev-one-system76/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14645-1.html"
System76 与惠普合作为开发者提供功能强大的 Linux 笔记本电脑
======
> 惠普正在以开箱即用的 Pop!_OS 为特色进入 Linux 硬件市场,貌似有点激动人心?还是先来看一看吧!
![hp][1]
System76 不是早就自己生产 Linux 笔记本电脑了吗?那么,这次和惠普合作是怎么回事?
嗯,这一次是惠普要发行一款 Linux 笔记本电脑,搭载 Pop!_OS也就是 System76 的基于 Ubuntu 的 Linux 发行版。
Carl RichellSystem76 的创始人)在他的 Twitter 上宣布了这一消息,并附带了一个网站链接,该网站提供了更多相关信息。推文如下:
> Hp-Pop 好耶!来看看这个:[https://t.co/gf2brjjUl8][2]
### HP Dev One专为开发者打造的 Linux 笔记本电脑
一方面System76 笔记本电脑与 Pop!_OS 有着开箱即用硬件兼容性,因此它备受赞誉。
另一方面Pop!_OS 也与笔记本电脑完美搭配,适配没有太多麻烦。
Pop!_OS 也一直在推出更新和新增功能,以改进工作流程并充分利用 Linux 的可用硬件。
此时,和惠普合作听起来是一个提高档次的好主意。
![HP System76][3]
所以说Pop!_OS 和惠普合作的想法有点激动人心啊!
挂上了惠普这个牌子,笔记本电脑的可用性/保修(在纸面上)就比 System76 要好了,考虑到后者在某些地区是不提供保修的。
### AMD 驱动的笔记本电脑可帮助你更好地写代码
HP Dev One 似乎是把“为开发者提供多任务处理的能力,从而快速完成任务”作为卖点。
这款笔记本电脑的入门款搭载了 **8 核的 AMD Ryzen 7 PRO 处理器****16 GB RAM**DDR4 @ 3200 MHz
预计它还会搭载由 AMD Radeon Graphics 提供支持的 14 英寸全高清防眩光显示屏。
对于 HP Dev OneCarl Richell 提到了这款笔记本电脑将通过 [LVFS][5]Linux 供应商固件服务)接收**固件更新**。
他还提到,这款笔记本电脑(以上规格)的定价为 **1099 美元** 起。
网站上只显示了它即将推出。因此,我们目前还不知道正式的发布日期。
对于像惠普这样的商业制造商来说笔记本电脑的定价听起来并不令人兴奋LCTT 译注:毕竟不是国内互联网品牌的笔记本),但可能是一个划算的交易。
你怎么看这款惠普笔记本电脑(运行 Linux、为开发者量身定制的定价你觉得这个价格合理吗你对这款笔记本电脑有什么期望呢
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/hp-dev-one-system76/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/hpdevone-laptop.jpg
[2]: https://t.co/gf2brjjUl8
[3]: https://news.itsfoss.com/wp-content/uploads/2022/05/hpdevone-illustration-1024x576.jpg
[4]: https://fwupd.org/

View File

@ -0,0 +1,92 @@
[#]: subject: "ProtonMail is Now Just Proton Offering a Privacy Ecosystem"
[#]: via: "https://news.itsfoss.com/protonmail-now-proton/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14652-1.html"
ProtonMail 改名为 “Proton”致力于提供一个隐私生态系统
======
> ProtonMail 宣布了重塑后的品牌,包括新网站、新名称、新的定价计划、新的 UI 和其他变化。
![proton][1]
[ProtonMail][2] 将自己重新命名为 “Proton”以将其所有产品囊括在统一的品牌下。
注意,别把它和 Steam 的 Proton它也简称为 Proton混淆哦
换句话说ProtonMail、ProtonVPN 和它的任何服务将不再有单独的产品页面。
### Proton一个开源隐私生态系统
![更新后的 Proton统一保护][3]
Proton 将拥有一个新的统一平台(新网站),你可以在其中访问所有服务,包括:
* Proton 邮件
* Proton VPN
* Proton 网盘
* Proton 日历
现在,新的登录会话将会被重定向到 `proton.me` 而不是 `protonmail.com`、`mail.protonmail.com`、`protonvpn.com` 等等。
不仅限于名称/品牌,整体的强调色和现有的用户体验,也将受到影响。
![][4]
现在,你只需一次付费订阅即可获得全部服务,而不必单独升级 VPN 和邮件。这也意味着,经过这次改变,高级订阅的价格变得更加实惠了。
![][5]
总体而言,让 “Proton” 成为隐私生态系统,是为了吸引更多对技术细节不感兴趣的用户来了解它是如何运作的。
你可以在其新的官方网站([proton.me][6])上查看所有详细信息。
新网站看起来更干净、更有条理,并且更具商业吸引力。
### 本次更改的内容
你可以期待有一个焕然一新的用户界面,包括新的品牌和新的网站。
![proton][7]
除此之外Proton 还提到它改进了服务之间的集成,以获得更好的用户体验。
![][8]
如果你已经在使用 ProtonMail你可能知道他们正在主动建议现有用户激活 “@proton.me” 帐户,这也是本次更改的一部分。
你可以选择将新电子邮件地址 xyz@proton.me 设为默认值,它更短,看起来也更有意义一些。
* 旧的电子邮件地址不会消失,只是额外提供了新地址(@proton.me
* 现有的付费订阅者应该可以免费获得存储空间提升。
* 升级了网页和移动应用中的用户体验。
* 新的官方网站(你将被自动重定向到它以进行新会话)。
* 新的定价计划,为 Proton 网盘提供更多存储空间。
你对本次变更感兴趣吗?你喜欢 Proton 的新名字和新的服务方式吗?请在下方评论中分享你的想法吧!
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/protonmail-now-proton/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/proton-ft.jpg
[2]: https://itsfoss.com/recommends/protonmai
[3]: https://youtu.be/s5GNTQ63HJE
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/proton-ui-new-1024x447.jpg
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/proton-pricing-1024x494.jpg
[6]: https://proton.me/
[7]: https://news.itsfoss.com/wp-content/uploads/2022/05/Proton-me-website.png
[8]: https://news.itsfoss.com/wp-content/uploads/2022/05/Proton-Product.png

View File

@ -0,0 +1,59 @@
[#]: subject: "DeepMinds Open Source MuJoCo Is Available On GitHub"
[#]: via: "https://www.opensourceforu.com/2022/05/deepminds-open-source-mujoco-is-available-on-github/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14650-1.html"
DeepMind 的开源物理引擎 MuJoCo 已在 GitHub 发布
======
![deepmind1][1]
DeepMind 是 Alphabet 的子公司和 AI 研究实验室,在 2021 年 10 月,它收购了用于机器人研发的 MuJoCo 物理引擎并承诺该模拟器将作为免费、开源、社区驱动的项目进行维护。现在DeepMind 声称开源计划已完成,它的整个代码库 [可在 GitHub 上获得][2]。
MuJoCo 是 “Multi-Joint Dynamics with Contact” 的缩写它是一个物理引擎旨在帮助机器人、生物力学、图形和动画等领域的研究和开发也包括其他需要快速准确模拟的领域。MuJoCo 可用于帮助机器学习应用实现基于模型的计算,例如<ruby>控制综合<rt>control synthesis</rt></ruby><ruby>状态估计<rt>state estimation</rt></ruby><ruby>系统识别<rt>system identification</rt></ruby><ruby>机制设计<rt>mechanism design</rt></ruby>、通过<ruby>逆动力学<rt>inverse dynamics</rt></ruby>来进行数据分析,以及<ruby>并行采样<rt>parallel sampling</rt></ruby>。它也可以用作标准模拟器例如用于游戏和交互式虚拟环境。LCTT 译注:这段话中涉及到不少专业词汇,鉴于译者水平有限,若有谬误,请在评论中指出,同时也欢迎在评论中科普,一起学习~)
根据 DeepMind 的说法,以下是 MuJoCo 适合协作的一些功能:
* 能够模拟复杂机制的综合模拟器
* 可读、高性能、可移植的代码
* 易于扩展的代码库
* 丰富的文档,包括面向用户的和代码注释 —— 我们希望学术界和 OSS 社区的同事能够使用这个平台并为代码库做出贡献,从而改善所有人的研究
DeepMind 还说:
> “作为没有动态内存分配的 C 库MuJoCo 非常快。不幸的是,原始物理速度一直受到 Python 包装器的阻碍全局解释器锁GIL和非编译代码的存在使得批处理、多线程操作无法执行。在下面的路线图中我们将解决这个问题。”
LCTT 译注: 这里补充了原文没有提及的路线图和基准测试结果。)
路线图:
* 通过批处理、多线程模拟释放 MuJoCo 的速度潜力
* 通过改进内部内存管理支持更大的场景
* 新的增量编译器,带来更好的模型可组合性
* 通过 Unity 集成支持更好的渲染
* 对物理导数的原生支持,包括解析和有限差分
> “目前,我们想分享两个常见模型的基准测试结果。注意,这个结果是在运行 Windows 10 的标准 AMD Ryzen 9 5950X 机器上获得的。”
![基准测试结果][3]
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/deepminds-open-source-mujoco-is-available-on-github/
作者:[Laveesh Kocher][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/laveesh-kocher/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/deepmind1.jpg
[2]: https://github.com/deepmind/mujoco
[3]: https://assets-global.website-files.com/621e749a546b7592125f38ed/628b971675cb60d74f5fa189_2A54E864-FE90-49E4-8E58-FE40298303E2.jpeg

View File

@ -0,0 +1,76 @@
[#]: subject: "Plex Desktop Player is Now Available for Linux"
[#]: via: "https://news.itsfoss.com/plex-desktop-linux/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14656-1.html"
Plex 桌面播放器现已支持 Linux
======
> Plex.tv 终于增加了 Linux 桌面版本和全新的 HTPC 应用。不过,它目前只提供了 Snap 包。
![plex][1]
Plex 是一个流行的流媒体播放器,同时,它能够用作一个媒体服务器软件。
事实上,它也是 [Linux 上最好的媒体服务器软件][2] 之一。
是的,这个媒体服务器已经支持 Linux而且还提供了一个 [包含安装步骤的教程][3]。
### Linux 上的 Plex 桌面播放器提供 Snap 包
我知道很多人都不喜欢使用 Snap 包来安装这个桌面播放器。但现在,这个桌面播放器已在 Snap 商店中提供,你可以轻松地在任何 Linux 发行版上安装它。
![][4]
幸运的是,这个桌面播放器的 [公告][5] 还提到他们正在开发一个 **Flatpak 包**,它应该会在近期登陆 Flathub。
这样一来,借助 Flatpak 和 Snap 软件包Plex 就可以成为在 Linux 上流式传输和组织个人媒体收藏的绝佳选择。
除了桌面应用程序,如果你利用你的 Linux 机器连接到一个大屏幕来观看所有的内容,还有一个 Plex HTPC有计划发布 Flatpak 软件包)。
![][6]
顺便说一句HTPC 是 PMP TV全称为 Plex Media Player TV模式的继承者。
他们在官网上与它的 Linux 桌面应用程序一同发布了这款产品。
使用 HTPC这个桌面应用就可以和电视共享并支持音频直通、刷新率切换、控制器和可配置输入映射等高级功能。
![][7]
因此,如果你有一个大屏幕,并且想要连接你的系统(不管是什么桌面平台)的话,你现在可以使用 HTPC 应用程序来完成。
> **[Plex 桌面版][8]**
> **[Plex HTPC][9]**
在 Linux 系统或联网电视上流式传输内容时,你通常会使用什么呢?你觉得 Plex 能满足你的需求吗?即然它支持 Linux 了,你会想要用它来替代当前使用的软件吗?
欢迎在评论区告诉我们你的想法!
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/plex-desktop-linux/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/plex-ft.jpg
[2]: https://itsfoss.com/best-linux-media-server/
[3]: https://itsfoss.com/install-plex-ubuntu/
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/plex-desktop-ubuntu.jpg
[5]: https://www.plex.tv/blog/way-to-be-htpc/
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/plex-snap-1024x524.jpg
[7]: https://news.itsfoss.com/wp-content/uploads/2022/05/plex-feat-1024x576.jpg
[8]: https://snapcraft.io/plex-desktop
[9]: https://snapcraft.io/plex-htpc

View File

@ -0,0 +1,81 @@
[#]: subject: "AlmaLinux Continues the Legacy of CentOS with the Release of Version 9"
[#]: via: "https://news.itsfoss.com/almalinux-9-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "PeterPan0106"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14644-1.html"
CentOS 的继承者 AlmaLinux 9 发布
======
> AlmaLinux 9 是基于 Red Hat Enterprise Linux 9 的最新版本,添加了新的壁纸并进一步增强了性能。
![almalinux][1]
如果你一直在关注我们的话,应当知道 [AlmaLinux 9.0 测试版][2] 已于上月发布。
AlmaLinux 是目前 [最好的 RHEL 替代版][3] 之一。其最新的稳定版是基于 RHEL 9 的,这也成为了 CentOS 的一个很好的替代品。
最新的 AlmaLinux 9 支持所有主流架构,包括 Intel/AMDx86_64、ARM64 aarch64、IBM PowerPCppc64le和 IBM Zs390x
### AlmaLinux 9.0 有哪些改变呢
AlmaLinux 9.0 在这个版本中使用了 Linux 内核 5.14。它包括对云和容器开发的改进,以及对网络控制台的完善。
还包括其他变化带来的性能改进。更新包括:
#### 新壁纸
![AlmaLinux 9][4]
在 AlmaLinux 9.0 中,更新了一些新的壁纸。
这些新的壁纸看起来很美观,并提供了更丰富的选择。
#### Linux 内核 5.14
最大的变化是升级到了 Linux 内核 5.14,它带来了更新的硬件支持,以及其他各种改进。
Linux 内核 5.14 的改进详见 [这篇文章][5]。
#### 更新的软件包
这个版本带有新的软件包更新。其中包括 Git 2.31、PHP 8.0、Perl 5.32 和 MySQL 8.0。
GCC 也被更新到最新的 GCC 11。
其它更新包括 Python 3.9 和最新版的 LLVM、Rust 和 Go compilers使应用程序的现代化更快、更容易。
更多技术方面的更新详见 [官方更新日志][6]。
### 下载 AlmaLinux 9.0
你可以在 [官方镜像网站][7] 下载最新的镜像。在镜像站也包含了 .torrent 文件的下载选项。
> **[AlmaLinux 9.0][8]**
*你认为基于 RHEL 的最新版 AlmaLinux 9.0 怎么样呢?你有计划在服务器上迁移到最新的版本吗?欢迎评论。*
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/almalinux-9-release/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[PeterPan0106](https://github.com/PeterPan0106)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/alma-linux-9.jpg
[2]: https://linux.cn/article-14500-1.html
[3]: https://itsfoss.com/rhel-based-server-distributions/
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/alma-linux-wallpapers-9-1024x609.jpg
[5]: https://news.itsfoss.com/kernel-5-14-release/
[6]: https://wiki.almalinux.org/release-notes/9.0.html
[7]: https://mirrors.almalinux.org/isos.html
[8]: https://mirrors.almalinux.org/isos.html

View File

@ -0,0 +1,72 @@
[#]: subject: "Tails Linux Users Warned Against Using the Tor Browser: Heres why!"
[#]: via: "https://news.itsfoss.com/tails-tor-browser/"
[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14654-1.html"
Tails 警告用户不要使用 Tor 浏览器:原因如下!
======
> Tails 5.1 将针对“可绕过 Tor 浏览器安全措施的危险漏洞”提供关键修复。以下是它的全部内容。
![Tails][1]
Tails 是一个专注于安全的便携式 Linux 发行版,最近,它的开发团队发布了有关其当前版本的重要公告。他们警告用户在 **Tails 5.0 或更早版本** 上使用 Tor 浏览器时,避免输入或使用任何个人或敏感信息。
Tor 浏览器是 Tails 事实上的(默认)网页浏览器,它有助于在用户连接到互联网时,保护他们的在线身份。它主要被各种记者和活动家用来逃避审查。不过,普通用户也可以使用它。
### 问题说明
最近,有人发现了两个令人讨厌的漏洞,它们允许有害网站能够从其他网站窃取用户的信息。
这些都是在 Firefox 使用的 JavaScript 引擎中发现的。
但是Tor 与此有什么关系对于那些不知道的人来说Tor 实际上是 Firefox 的一个复刻,因此包含许多类似的功能,如 JavaScript 引擎。
具体来说,在 [Mozilla 发布的公告][2] 中,这些漏洞已被确定为 CVE-2022-1802 和 CVE-2022-1529。
Tails 公告中也对此进行了说明:
> “例如,在你访问恶意网站后,控制该网站的攻击者可能会在同一个 Tails 会话期间,访问你随后发送到其他网站的密码或其他敏感信息。”
### 你应该停止使用 Tail 发行版吗?
没有这个必要。
用户会很高兴地知道,这些漏洞并不影响 Tor 的连接。这意味着,如果你不交换任何敏感信息,如密码、个人信息、信息等,你可以随意地浏览互联网。
Tails 中的其他应用程序,尤其是 Thunderbird仍然可以安全使用因为 JavaScript 在使用时会被禁用。
此外,你也可以在 Tor 浏览器中启用最高的安全级别。这是推荐的因为该级别下JavaScript 引擎会被禁用。不过,请注意,这会使网站无法正常运行。
换句话说如果你知道自己在做什么的话Tails 发行版仍然可以安全使用。
### 漏洞修复即将发布
好的消息是Mozilla 已经在上游修补了这些错误,现在就等 Tails 团队发布修复程序了。
至于何时发布,他们是这样说的:
> 此漏洞将在 Tails 5.1**5 月 31 日**)中修复,但我们的团队没有能力提前发布紧急版本。
因此,你最好的选择是等待下周的 Tails 5.1 发布。你可以阅读 Tails 开发团队的 [官方公告][3] 以了解更多信息。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/tails-tor-browser/
作者:[Rishabh Moharir][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/rishabh/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/tails-5-0-privacy-issue.jpg
[2]: https://www.mozilla.org/en-US/security/advisories/mfsa2022-19/
[3]: https://tails.boum.org/security/prototype_pollution/index.en.html

View File

@ -0,0 +1,264 @@
[#]: subject: "How to Install KVM on Ubuntu 22.04 (Jammy Jellyfish)"
[#]: via: "https://www.linuxtechi.com/how-to-install-kvm-on-ubuntu-22-04/"
[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/"
[#]: collector: "lkxed"
[#]: translator: "turbokernel"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14661-1.html"
Ubuntu 22.04 之 KVM 安装手札
======
![](https://img.linux.net.cn/data/attachment/album/202206/01/171619m6dd7bjb8292bbb9.jpg)
**KVM** 是 <ruby>基于内核的虚拟机<rt>Kernel-based Virtual Machine</rt></ruby> 的首字母缩写,这是一项集成在内核中的开源虚拟化技术。它是一种类型一(裸机)的<ruby>管理程序<rt>hypervisor</rt></ruby>,可以使内核能够作为一个<ruby>裸机管理程序<rt>bare-metal hypervisor</rt></ruby>
在 KVM 之上可以运行 Windows 和 Liunx 虚拟机。每个虚拟机都独立于其它虚拟机和底层操作系统(宿主机系统),并拥有自己的 CPU、内存、网络接口、存储设备等计算资源。
本文将介绍在 Ubuntu 22.04 LTSJammy Jellyfish中如何安装 KVM 。在文末,我们也将演示如何在安装 KVM 完成之后创建一台虚拟机。
### 1、更新 Ubuntu 22.04
在一切开始前,打开终端并通过如下命令更新本地的软件包索引:
```
$ sudo apt update
```
### 2、检查虚拟化是否开启
在进一步行动之前,首先需要检查你的 CPU 是否支持 KVM 虚拟化,确保你系统中有 VT-x vmx英特尔处理器或 AMD-Vsvm处理器。
你可以通过运行如下命令,如果输出值大于 0那么虚拟化被启用。否则虚拟化被禁用你需要启用它
```
$ egrep -c '(vmx|svm)' /proc/cpuinfo
```
![SVM-VMX-Flags-Cpuinfo-linux][1]
根据上方命令输出,你可以推断出虚拟化功能已经启用,因为输出结果大于 0。如果虚拟化功能没有启用请确保在系统的 BIOS 设置中启用虚拟化功能。
另外,你可以通过如下命令判断 KVM 虚拟化是否已经在运行:
```
$ kvm-ok
```
运行该命令之前,请确保你已经安装了 `cpu-checker` 软件包,否则将提示未找到该命令的报错。
直接就在下面,你会得到如何解决这个问题的指示,那就是安装 `cpu-checker` 包。
![KVM-OK-Command-Not-Found-Ubuntu][2]
随后,通过如下命令安装 `cpu-checker` 软件包:
```
$ sudo apt install -y cpu-checker
```
接着再运行 `kvm-ok` 命令,如果 KVM 已经启动,你将看到如下输出:
```
$ kvm-ok
```
![KVM-OK-Command-Output][3]
### 3、在 Ubuntu 22.04 上安装 KVM
随后,通过如下命令在 Ubuntu 22.04 中安装 KVM 以及其他相关虚拟化软件包:
```
$ sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils
```
以下为你解释刚刚安装了哪些软件包:
* `qemu-kvm` 一个提供硬件仿真的开源仿真器和虚拟化包
* `virt-manager` 一款通过 libvirt 守护进程,基于 QT 的图形界面的虚拟机管理工具
* `libvirt-daemon-system` 为运行 libvirt 进程提供必要配置文件的工具
* `virtinst` 一套为置备和修改虚拟机提供的命令行工具
* `libvirt-clients` 一组客户端的库和API用于从命令行管理和控制虚拟机和管理程序
* `bridge-utils` 一套用于创建和管理桥接设备的工具
### 4、启用虚拟化守护进程libvirtd
在所有软件包安装完毕之后,通过如下命令启用并启动 libvirt 守护进程:
```
$ sudo systemctl enable --now libvirtd
$ sudo systemctl start libvirtd
```
你可以通过如下命令验证该虚拟化守护进程是否已经运行:
```
$ sudo systemctl status libvirtd
```
![Libvirtd-Status-Ubuntu-Linux][4]
另外,请将当前登录用户加入 `kvm``libvirt` 用户组,以便能够创建和管理虚拟机。
```
$ sudo usermod -aG kvm $USER
$ sudo usermod -aG libvirt $USER
```
`$USER` 环境变量引用的即为当前登录的用户名。你需要重新登录才能使得配置生效。
### 5、创建网桥br0
如果你打算从本机Ubuntu 22.04)之外访问 KVM 虚拟机,你必须将虚拟机的网卡映射至网桥。`virbr0` 网桥是 KVM 安装完成后自动创建的,仅做测试用途。
你可以通过如下内容在 `/etc/netplan` 目录下创建文件 `01-netcfg.yaml` 来新建网桥:
```
$ sudo vi /etc/netplan/01-netcfg.yaml
network:
  ethernets:
    enp0s3:
      dhcp4: false
      dhcp6: false
  # add configuration for bridge interface
  bridges:
    br0:
      interfaces: [enp0s3]
      dhcp4: false
      addresses: [192.168.1.162/24]
      macaddress: 08:00:27:4b:1d:45
      routes:
        - to: default
          via: 192.168.1.1
          metric: 100
      nameservers:
        addresses: [4.2.2.2]
      parameters:
        stp: false
      dhcp6: false
  version: 2
```
保存并退出文件。
注:上述文件的配置是我环境中的,请根据你实际环境替换 IP 地址、网口名称以及 MAC 地址。
你可以通过运行 `netplan apply` 命令应用上述变更。
```
$ sudo netplan apply
```
你可以通过如下 `ip` 命令,验证网桥 `br0`
```
$ ip add show
```
![Network-Bridge-br0-ubuntu-linux][5]
### 6、启动 KVM 虚拟机管理器
当 KVM 安装完成后,你可以使用图形管理工具 `virt-manager` 创建虚拟机。你可以在 GNOME 搜索工具中搜索 `Virtual Machine Manager` 以启动。
点击搜索出来的图标即可:
![Access-Virtual-Machine-Manager-Ubuntu-Linux][6]
虚拟机管理器界面如下所示:
![Virtual-Machine-Manager-Interface-Ubuntu-Linux][7]
你可以点击 “<ruby>文件<rt>File</rt></ruby>” 并选择 “<ruby>新建虚拟机<rt>New Virtual Machine</rt></ruby>”。你也可以点击下图所示的图标:
![New-Virtual-Machine-Icon-Virt-Manager][8]
在弹出的虚拟机安装向导将看到如下四个选项:
* 本地安装介质ISO 镜像或 CDROM
* 网络安装HTTP、HTTPS 和 FTP
* 导入现有磁盘镜像
* 手动安装
本文使用已下载的 ISO 镜像,你可以选择自己的 ISO 镜像,选择第一个选项,并点击 “<ruby>向前<rt>Forward</rt></ruby>”。
![Local-Install-Media-ISO-Virt-Manager][9]
下一步中,点击 “<ruby>浏览<rt>Browse</rt></ruby>” 选择 ISO 镜像位置。
![Browse-ISO-File-Virt-Manager-Ubuntu-Linux][10]
在下一个窗口中点击 “<ruby>浏览本地<rt>Browse local</rt></ruby>” 选取本机中 ISO 镜像。
![Browse-Local-ISO-Virt-Manager][11]
如下所示,我们选择了 Debian 11 ISO 镜像,随后点击 “<ruby>打开<rt>Open</rt></ruby>”。
![Choose-ISO-File-Virt-Manager][12]
当 ISO 镜像选择后,点击 “<ruby>向前<rt>Forward</rt></ruby>” 进入下一步。
![Forward-after-browsing-iso-file-virt-manager][13]
接着定义虚拟机所用内存大小以及 CPU 核心数,并点击 “<ruby>向前<rt>Forward</rt></ruby>” 。
![Virtual-Machine-RAM-CPU-Virt-Manager][14]
下一步中,输入虚拟机磁盘空间,并点击 “<ruby>向前<rt>Forward</rt></ruby>” 继续。
![Storage-for-Virtual-Machine-KVM-Virt-Manager][15]
如你需要将虚拟机网卡连接至网桥,点击 “<ruby>选择网络<rt>Network selection</rt></ruby>” 并选择 `br0` 网桥。
![Network-Selection-KVM-Virtual-Machine-Virt-Manager][16]
最后,点击 “<ruby>完成<rt>Finish</rt></ruby>” 按钮结束设置虚拟机。
![Choose-Finish-to-OS-Installation-KVM-VM][17]
稍等片刻,虚拟机的创建过程将开始。
![Creating-Domain-Virtual-Machine-Virt-Manager][18]
当创建结束时,虚拟机将开机并进入系统安装界面。如下是 Debian 11 的安装选项。在这里你可以根据需要进行系统安装。
![Virtual-Machine-Console-Virt-Manager][19]
### 小结
至此,本文向你演示了如何在 Ubuntu 22.04 上 安装 KVM 虚拟化引擎。你的反馈对我们至关重要。
--------------------------------------------------------------------------------
via: https://www.linuxtechi.com/how-to-install-kvm-on-ubuntu-22-04/
作者:[James Kiarie][a]
选题:[lkxed][b]
译者:[turbokernel](https://github.com/turbokernel)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.linuxtechi.com/author/james/
[b]: https://github.com/lkxed
[1]: https://www.linuxtechi.com/wp-content/uploads/2022/05/SVM-VMX-Flags-Cpuinfo-linux.png
[2]: https://www.linuxtechi.com/wp-content/uploads/2022/05/KVM-OK-Command-Not-Found-Ubuntu.png
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/KVM-OK-Command-Output.png
[4]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Libvirtd-Status-Ubuntu-Linux.png
[5]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Network-Bridge-br0-ubuntu-linux.png
[6]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Access-Virtual-Machine-Manager-Ubuntu-Linux.png
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Virtual-Machine-Manager-Interface-Ubuntu-Linux.png
[8]: https://www.linuxtechi.com/wp-content/uploads/2022/05/New-Virtual-Machine-Icon-Virt-Manager.png
[9]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Local-Install-Media-ISO-Virt-Manager.png
[10]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Browse-ISO-File-Virt-Manager-Ubuntu-Linux.png
[11]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Browse-Local-ISO-Virt-Manager.png
[12]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-ISO-File-Virt-Manager.png
[13]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Forward-after-browsing-iso-file-virt-manager.png
[14]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Virtual-Machine-RAM-CPU-Virt-Manager.png
[15]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Storage-for-Virtual-Machine-KVM-Virt-Manager.png
[16]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Network-Selection-KVM-Virtual-Machine-Virt-Manager.png
[17]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Finish-to-OS-Installation-KVM-VM.png
[18]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Creating-Domain-Virtual-Machine-Virt-Manager.png
[19]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Virtual-Machine-Console-Virt-Manager.png

View File

@ -0,0 +1,80 @@
[#]: subject: "TypeScript Based Headless CMS Payload Becomes Open Source"
[#]: via: "https://news.itsfoss.com/payload-open-source/"
[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14660-1.html"
基于 TypeScript 的无头内容管理系统 “Payload” 现已开源
======
> 开源的<ruby>无头<rt>Headless</rt></ruby>内容管理系统CMS列表中添加了一个新选项。它会是一个更好的无头 WordPress 替代品吗?
![Payload][1]
自从一年多前发布首个测试版以来作为无头内容管理系统CMSPayload 已经逐渐在 Web 开发社区中给人们留下了深刻印象。先做一些背景介绍Payload 是专门为更简单地开发网站、Web 应用或<ruby>原生<rt>native</rt></ruby>应用而量身定制的内容管理系统。
最近,他们决定完全开源,现在,它已跻身 [可用的最佳开源内容管理系统][2] 之一。
然而这也带来了一些问题他们会采用怎么样的商业模式Payload 内容管理系统的计划是什么?下面,就让我们简要地看一下吧!
### Payload 为什么要开源?
自 2021 年首次发布以来Payload 已经收到了来自开源社区的许多贡献。正如 Payload 在他们 [最近的公告][3] 中所说,开源是一个重要的决定,它能够使项目能够达到的更高的高度,这是闭门造车做不到的。
![][4]
此外,这种开放性通常会增加开发者社区的信任。这种信任也会延伸到商业,自然而然地转而成为开发者最支持、最信任的平台。
因此Payload 正在切换到 MIT 许可证。这将允许任何人免费且不受限制地修改、分发和使用 Payload。
然而Payload 仍然需要资金流入才能持续运营。那么这就引出了一个问题Payload 将如何盈利呢?
### Payload 将如何盈利?
与往常一样Payload 需要一些财务支持才能维持运营。团队拿出了一个由两部分组成的计划,该计划既要为用户提供更多 <ruby>以便利为中心<rt>convenience-focused</rt><ruby> 的功能,又要为 <ruby>自托管<rt>self-hosted</rt></ruby> 客户提供难以置信的灵活性。
![][5]
#### 企业许可证
此选项与其他开源 CMS 的软件服务极为相似。这些许可证将提供更高级的 SSO 选项,并为开发者保证 Payload 核心团队的响应时间。
这些许可证应该对大公司有吸引力,尤其是那些需要最大程度可靠性的公司。
#### 云主机
这个选项非常有吸引力,因为它结合了多种服务来创造最方便的体验。尽管传统托管仍然相当容易,但只要你为 Node 应用程序添加数据库、持久文件存储和其他基础设施,你就会面对四五个不同的服务,而这些服务都需要无缝协同工作。
应该注意的是这不是必需的Payload 仍然鼓励用户托管他们的实例。这项服务只是消除了与托管相关的大量费用和挑战而已。
截至目前,事情还没有敲定。但是,你可以关注 [GitHub][6] 上的讨论来跟踪事情的进展。
### 总结
作为一个新兴的 CMS 选项,很高兴看到 Payload 迈出了这一步,成为 WordPress 和其他选项的流行替代品。此外在我看来Payload 团队对他们的新业务模式充满信心,或许这预示着一个光明的未来(希望如此)。
> **[Payload 内容管理系统][7]**
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/payload-open-source/
作者:[Jacob Crume][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/jacob/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/payload-opensource.jpg
[2]: https://itsfoss.com/open-source-cms/
[3]: https://payloadcms.com/blog/open-source
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/payloadcms-demo.png
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/payload-free-opensource-1024x576.jpg
[6]: https://github.com/payloadcms/payload
[7]: https://payloadcms.com/

Some files were not shown because too many files have changed in this diff Show More