Merge pull request #1 from LCTT/master

update
This commit is contained in:
aREversez 2022-05-13 22:08:30 +08:00 committed by GitHub
commit fddb95003d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
75 changed files with 5422 additions and 3229 deletions

View File

@ -3,22 +3,22 @@
[#]: author: "Sarah Wall https://opensource.com/users/sarahwall"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14581-1.html"
你为什么应该选择专注而非一心多用
======
如果你有时候会感觉大脑处于停滞状态,那么你可能正在遭受一心多用和决策疲劳。
![][1]
(图源Pixabay经 Opensource.com 修改CC BY-SA 4.0)
> 如果你有时候会感觉大脑处于停滞状态,那么你可能正在遭受一心多用和决策疲劳。
![](https://img.linux.net.cn/data/attachment/album/202205/11/232939ixz3xfnhwxn5oz2i.jpg)
想象一下,你刚完成了日常工作,坐在电脑前,手里拿着晨间咖啡,正准备开始新的一天。突然,一条 Slack 消息弹了出来,你扫了一眼邮件,然后切回 Slack。你打开日历看看下一次会议是什么时候令你惊讶的是它 15 分钟后就要开始了!你回到办公桌前,开始检查待办事项,想看看在这短短 15 分钟内还能给自己安排什么任务,但不巧的是,这时你的一个同事请求你帮他解决一个问题。大半天就这样过去了,而你根本没有意识到……
我的许多日子都是这样度过的,不断地多个任务之间徘徊。有些时候,我发现自己盯着电脑,大脑完全停滞。如果你也发现自己处于这种情况,这可能是你的大脑发出的信号,提醒你休息一下。你可能正在遭受一心多用和决策疲劳。
平均而言,成年人每天要做大约 [35000 个决定][2]! 它们可以是简单的决定,如吃什么或穿什么,也可以是需要更多思考的决定,如下一个假期去哪里或从事哪个职业。每天你都面临着大量的选择,它们占据了你的头脑。
平均而言,成年人每天要做大约 [35000 个决定][2]!它们可能是简单的决定,如吃什么或穿什么,也可能是需要更多思考的决定,如下一个假期去哪里或从事哪个职业。每天你都面临着大量的选择,它们占据了你的头脑。
### 分散注意力的一心多用
@ -70,7 +70,7 @@ via: https://opensource.com/article/19/4/mindfulness-over-multitasking
作者:[Sarah Wall][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者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,94 @@
[#]: collector: (lujun9972)
[#]: translator: (FYJNEVERFOLLOWS)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14570-1.html)
[#]: subject: (8 tips for the Linux command line)
[#]: via: (https://opensource.com/article/21/1/linux-commands)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
分享 8 篇使用 Linux 命令行的技巧
======
> 要好好利用无所不能的 Linux 命令行提供的所有功能
![](https://img.linux.net.cn/data/attachment/album/202205/10/084827v23ia3wlkdirr6r5.jpg)
Linux 命令行是极其灵活的。无论你是管理服务器还是在桌面系统上启动终端窗口,都可以通过命令行无所不包的工具包来更新文件、调整系统性能或者管理进程。命令行里发生的事情是非常有趣的。
我们发布了许多关于如何充分利用系统的优秀文章,证明了命令行的流行。以下是 8 篇关于 Linux 命令阅读量最高的文章:
### 《使用这些技巧让 Bash 命令历史更加有用》
> **[文章地址][2]**
Bash 是大多数 Linux 系统上的默认命令行 Shell。Seth Kenlon 编写了该指南,用于帮助你了解 Bash 命令历史。修改 Bash 命令历史通常没有听起来那么危险,特别是当你带有目的地修改它的时候。告诉 Bash 你希望它记住什么,甚至还可以直接通过删除你不想要或不需要的条目来重写命令历史。根据需要使用你的历史会话,明智地行使你对命令历史的权力。
### 《如何在 Linux 终端中兼顾特性和性能》
> **[文章地址][3]**
Ricardo Gerardi 非常喜欢命令行应用程序他花了很多时间在终端上工作。Ricardo 投入了一些时间,把命令行变成了一个令人愉快的工作环境。你可以通过了解如何自定义终端应用程序、主题和提示符,来创建一个功能丰富、易于使用系统资源的终端。
### 《放弃 Bash 转投拥有更优美配置的 fish》
> **[文章地址][4]**
Matt Broberg 最近放弃了默认的命令行解释器 —— Bash转而支持 fish。fish 自豪地宣称自己是 “90 年代的命令行 shell”。这个以鱼为主题的 “友好的交互式 shell” 为命令行创造了更愉快的体验。阅读 Matt 的文章来进一步了解如何充分利用 fish。如果你不想再对你的终端修修补补换一个更漂亮的默认 shell把更多精力放在代码上不妨试一试 fish。
### 《分析 Linux 里二进制文件的 10 种方式》
> **[文章地址][5]**
我们每天都在和二进制文件打交道但我们对它们的了解甚少。Linux 提供了一组丰富的工具,使分析二进制文件变得轻而易举!这些简单的命令和工具可以帮助你顺利完成分析二进制文件的任务。无论你的工作角色是什么,了解这些工具的基本知识将帮助你更好地了解你的 Linux 系统。Gaurav Kamathe 介绍了一些最流行的用于管理二进制文件的 Linux 工具和命令,包括 `file`、`nm`、`strings` 和 `hexdump`
### 《可用于 Linux 命令行的 4 种 Markdown 工具》
> **[文章地址][6]**
当涉及使用 Markdown 格式的文件时,命令行工具占据了主导地位。它们轻巧、快速、强大而又灵活,其中大多数遵循 Unix “把一件事情做好”的哲学。Scott Nesbitt 回顾了 4 种命令行实用工具,它们可以帮助你更高效地处理 Markdown 文件。
### 《禁用 atime 来提高 Linux 系统性能》
> **[文章地址][7]**
每当我在为家里的电脑升级 Linux 时,我都会把我通常要做的任务列出来。这些年来,它们已经成为了习惯:备份文件、还原系统、重新安装、恢复文件,然后重新安装额外的我最喜欢的应用程序。我还会对系统进行了一些调整。其中一个调整就是 `atime`,它是 Linux 里每个文件的三个时间戳之一。关掉 `atime` 是一种简单但有效的提升系统性能的方法。下面是关于 `atime` 的介绍,以及为什么它会有影响。
### 《使用 fstrim 延长固态硬盘的寿命》
> **[文章地址][8]**
在过去的十年中固态硬盘SSD带来了一种全新的管理存储的方式。相比传统的机械硬盘固态硬盘具有一些优点比如安静、更酷的操作和更快的接口规格。当然新技术带来了新的维护和管理方法。Alan Formy-Duval 写了一个新的 systemd 服务让你更容易管理固态硬盘。
### 《Linux 命令行工具的 5 种新式替代品》
> **[文章地址][9]**
在我们日常使用的 Linux 或 Unix 系统中我们会使用许多命令行工具来完成我们的工作并帮助我们更好地了解和管理我们的系统。多年来这些工具已经现代化并移植到了不同的系统中。然而总的来讲它们仍然保持着最初的想法、外观和感觉。近年来开源社区已经开发出了提供额外好处的替代工具。Ricardo Gerardi 向我们展示了如何通过这 5 种新的替代品改进旧的命令行工具来获得新的好处。
### 总结
把这些文章作为跳板,寻找你自己关于命令行的技巧和花招吧!这份清单里还缺少什么吗?请在下方评论,或者提交一篇你自己的文章!
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/linux-commands
作者:[Jim Hall][a]
选题:[lujun9972][b]
译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/terminal_command_linux_desktop_code.jpg?itok=p5sQ6ODE (Terminal command prompt on orange background)
[2]: https://linux.cn/article-12344-1.html
[3]: https://opensource.com/article/20/7/performance-linux-terminal
[4]: https://opensource.com/article/20/3/fish-shell
[5]: https://linux.cn/article-12187-1.html
[6]: https://linux.cn/article-12048-1.html
[7]: https://opensource.com/article/20/6/linux-noatime
[8]: https://linux.cn/article-11959-1.html
[9]: https://opensource.com/article/20/6/modern-linux-command-line-tools

View File

@ -0,0 +1,316 @@
[#]: collector: (lujun9972)
[#]: translator: (hwlife)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14577-1.html)
[#]: subject: (Convert your filesystem to Btrfs)
[#]: via: (https://fedoramagazine.org/convert-your-filesystem-to-btrfs/)
[#]: author: (Gergely Gombos https://fedoramagazine.org/author/gombosg/)
如何将你的文件系统转换为 Btrfs
======
![][1]
### 引言
这篇概述文章将告诉你为何以及如何迁移你的当前分区到 Btrfs 文件系统。如果你对此感兴趣,请阅读这篇分步指南来完成。
从 Fedora 33 开始,新安装的 Fedora 操作系统默认文件系统为 Btrfs。我确信大部分用户现在已经听说了它的优势写时复制、内置校验、灵活的压缩方式、简易的快照和回滚方式。它确实是一个现代化的文件系统为桌面存储带来新的功能。
在升级到 Fedora 33 后,我想利用 Btrfs 的优势,但对我个人来说,我不想因为“只是为了改变文件系统”而去重装整个系统。我发现(只有)寥寥无几的具体如何做转换的教程,所以我决定在这里分享我的详细经验。
### 小心!
这样做你是在玩火。希望你阅读以下内容时不要感到惊讶:
> 在编辑分区和转换文件系统时,你的数据可能会被破坏和丢失。最终,你可能会得到一个不能启动的操作系统,并面临数据恢复的风险。你可能会无意删除你的分区,或者以其它方式破坏了你的操作系统。
这些转换过程即使对于生产系统来说也是安全的 —— 前提是你提前做好了计划,对关键数据做好了备份和回滚计划。作为一个 _可以执行超级权限的系统管理员_,你可以在没有限制、没有任何常规安全防护措施的情况下,做任何事情。
### 安全的方式:重装 Fedora
重装操作系统是转换文件系统到 Btrfs 的 “官方” 方式,推荐给大多数用户使用。因此,如果在这个教程中有那么一点不确定,就选择这种方式。步骤大致如下:
1. 备份你的主文件夹和你系统中可能会用到的任何数据,比如 `/etc`。(编者按:虚拟机也是这样)
2. 将已安装的安装包以列表形式保存到到文件中。
3. 重新安装 Fedora删除你当前的分区并选择新的 Btrfs 默认分区方案。
4. 恢复主文件夹的内容,并使用软件包列表文件重装软件包。
对于详细的步骤和命令,请看一位社区用户在 [ask.fedoraproject.org][2] 站点的评论。如果正确完成,你将得到一个和之前一样的操作系统,使丢失数据的风险最小化。
### 转换的利弊
让我们快速澄清一下:这种文件系统转换有什么优势和劣势?
**优势:**
* 当然,不需要重新安装!你的系统里的所有文件和之前一模一样。
* 技术上来说,没有备份的情况下,就地进行是可能的。
* 你会学到许多关于 Btrfs 的知识!
* 如果所有都按计划进行,会是相当快的一个过程。
**劣势:**
* 你必须熟悉终端环境和 shell 命令。
* 你可能会丢失数据,参见上文。
* 如果出了什么问题,你得自己解决。
**特别之处:**
* 你需要大约 20% 的可用磁盘空间才能成功转换。但对于完整的备份和重装方式,你可能需要的空间更多。
* 你可以在转换过程中自定义你分区的所有参数,但如果选择重装,你也可以从 Anaconda 自定义。
### LVM 怎么办?
在近期几次 Fedora 安装中LVM 布局一直是默认的。如果你有一个带有多个分区(例如 `/``/home`)的 LVM 分区布局,你得以某种方式合并它们,来获得 Btrfs 所有性能。
如果选择这样做,你可以单独转换分区到 Btrfs 文件系统,同时保留卷组。然而,迁移到 Btrfs 文件系统的优势之一是摆脱 LVM 分区布局强加的限制。你也可以利用 Btrfs 文件系统提供的收发功能在转换后来合并分区。
> 另见 《Fedora 杂志》: [利用 LVM 回收硬盘空间][3]、[从 Btrfs 快照中恢复文件][4] 以及 [在 Btrfs 和 LVM-ext4 两者之间做选择][5]。
### 了解 Btrfs
建议阅读以下内容对 Btrfs 文件系统是什么有一个基础的了解。如果你没有把握,只有选择重装 Fedora 这种安全的方式。
必须了解的:
* [Fedora MagazineBtrfs 来到 Fedora 33][6]
* [Btrfs 系统管理指南][7], _尤其是_ 关于子卷和 flat 子卷布局。
* [btrfs-convert 指南][8]
有用的资源:
* [man 8 btrfs][9] 命令行界面
* [man 5 btrfs][10] 挂载参数
* [man btrfs-convert][11] 要用到的转换工具
* [man btrfs-subvolume][12] 管理子卷
### 转换步骤
#### 创建一个实时镜像
由于不能转换已挂载的文件系统,我们将通过 Fedora <ruby>实时镜像<rt>Live Image</rt></ruby>进行。安装 [Fedora 镜像写入工具][13],然后 “烧录” Fedora 33 到你的 U 盘中来创建实时镜像。
#### 释放磁盘空间
`btrfs-convert` 会在分区的剩余空间重新创建文件系统的元数据,同时保持所有已有的 ext4 文件系统数据还在它当前的位置上。
不幸的是,所需的剩余空间的大小无法提前知道:如果没有足够的空间,转换将会失败(但不会破坏数据)。这里有一些释放空间有用的方法:
* 利用 `baobab` 来识别大容量的文件和文件夹,然后移除。如果可能的话,不要手动删除主文件夹以外的文件。
* 清理旧的系统日志:`journalctl vacuum-size=100M`。
* 如果你正使用 Docker请小心地使用类似 `docker volume prune`、`docker image prune -a` 这样的工具。
* 清理 GNOME Boxes 之类的虚拟机内不用的镜像。
* 清理不用的软件包和 Flatpak 包:`dnf autoremove`、`flatpak remove unused`。
* 清理软件包缓存:`pkcon refresh force -c -1`、`dnf clean all`。
* 如果你有把握,你可以谨慎的清理 `~/.cache` 文件夹。
#### 转换到 Btrfs
备份你所有有价值的数据,确保你的系统已完全更新,然后重启到实时镜像。运行 `gnome-disks` 工具找到你所拥有的设备的路径,比如 `/dev/sda1`(如果你在使用 LVM它可能看起来有所不同。检查文件系统然后执行转换编者按以下命令使用 root 用户运行,谨慎使用!)
```
$ sudo su -
# fsck.ext4 -fyv /dev/sdXX (请替换为你的具体的设备路径)
# man btrfs-convert (阅读它)
# btrfs-convert /dev/sdXX (请替换为你的具体的设备路径)
```
这将会花十几分钟甚至几个小时,依据分区的大小和是机械硬盘还是固态硬盘。如果你看到错误,你可能需要更多剩余空间。作为最后的手段,你可以尝试 `btrfs-convert -n`
#### 怎样回滚?
如果因为某些原因转换失败,你的分区将保持在 ext4 文件系统或者它之前的状态。如果你想在成功转换之后回滚,简单如下:
```
# btrfs-convert -r /dev/sdXX
```
> **警告!** 如果你做了以下这些事情之一,你将永久失去回滚的功能:碎片整理、均衡或者删除 `ext2_saved` 子卷。
由于 Btrfs 文件系统的写时复制特性,你可以安全的复制/移动甚至删除文件、创建子卷,因为 `ext2_saved` 会保持引用旧数据。
#### 挂载和检查
现在这个分区应该已经有了 Btrfs 文件系统。挂载它然后查看你的文件……和子卷!
```
# mount /dev/sdXX /mnt (请替换为你的具体的设备路径)
# man btrfs-subvolume (阅读它)
# btrfs subvolume list / (使用 -t 以表格方式查看)
```
因为你已经阅读了 [相关的手册页][14],你应该知道创建子卷快照是安全的,并且有 `ext2-saved` 子卷作为你之前数据的简易备份。
> 是时候阅读 [Btrfs 系统管理指南][7]了,这样你就不会把常规文件夹和子卷混淆了。
#### 创建子卷
我们希望实现一个“扁平”子卷布局,这和 Anaconda 默认创建的布局相同:
```
toplevel (卷根目录,不能被默认挂载)
+-- root (子卷根目录,被挂载到 /
+-- home (子卷根目录,被挂载到 /home
```
你可以跳过这个步骤,或者使用一个不同的布局。这种特殊结构的优势是你可以轻松的创建 `/home` 的快照,并且对每个子卷使用不同的压缩和挂载参数。
```
# cd /mnt
# btrfs subvolume snapshot ./ ./root2
# btrfs subvolume create home2
# cp -a home/* home2/
```
这里我们已经创建了两个子卷。`root2` 是一个完整的分区快照,而 `home2` 开始是一个空子卷,然后我们往里复制内容。(这个 `cp` 命令不会重复数据,所以会很快。)
* 在 `/mnt` 目录(顶层子卷),删除除了 `root2`、`home2` 和 `ext2_saved` 之外的所有内容。
* 重命名 `root2``home2` 子卷为 `root``home`
* 在 `root` 子卷里,清空 `home` 目录,以便之后我们能够挂载 `home` 子卷。
如果都做对了,那就很简单了!
#### 修改 fstab 分区表
为了重启之后挂载新卷,必须要修改 `fstab`,用新的行来代替旧的 ext4 文件系统挂载行。
你可以使用 `blkid` 命令来找到你的分区的 UUID。
```
UUID=xx / btrfs subvol=root 0 0 (请替换为你的具体 UUID
UUID=xx /home btrfs subvol=home 0 0 (请替换为你的具体 UUID
```
(注意如果指向的是同一个分区,那么这两个 UUID 是相同的。)
这些都是新安装的 Fedora 33 的默认值。在 `fstab` 中,你也可以选择自定义压缩和添加类似 `noatime` 这样的参数。
> 可以查看 [关于压缩参数的维基页面][15] 和 [man 5 btrfs][10] 了解所有相关的参数。
#### chroot 到系统
如果你曾经做过系统恢复,我想你肯定知道这些命令。这里,我们将得到一个 _基本上_ 在你系统里的 shell 提示符,可以访问网络。
首先,我们必须重新挂载 `root` 子卷到 `/mnt` 目录,然后挂载 `/boot``/boot/efi` 分区(它们可能有所不同,这取决于你的文件系统布局):
```
# umount /mnt
# mount -o subvol=root /dev/sdXX /mnt (请替换为你的具体的设备路径)
# mount /dev/sdXX /mnt/boot (请替换为你的具体的设备路径)
# mount /dev/sdXX /mnt/boot/efi (请替换为你的具体的设备路径)
```
然后我们继续挂载系统设备:
```
# mount -t proc /proc /mnt/proc
# mount --rbind /dev /mnt/dev
# mount --make-rslave /mnt/dev
# mount --rbind /sys /mnt/sys
# mount --make-rslave /mnt/sys
# cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.chroot
# cp -L /etc/resolv.conf /mnt/etc
# chroot /mnt /bin/bash
$ ping www.fedoraproject.org
```
#### 重装 GRUB 及内核
最容易的方法就是重装 GRUB 和 内核,因为它完成了所有必要的配置 —— 现在我们可以访问网络了。所以,在 chroot 环境内部:
```
# mount /boot/efi
# dnf reinstall grub2-efi shim
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# dnf reinstall kernel-core
...或者干脆重新生成 initramfs
# dracut --kver $(uname -r) --force
```
如果你是支持 UEFI 的系统,这里是适用的。如果你是 BIOS 的系统,请查看下面的文档。重启之前,让我们查看是否一切正常:
```
# cat /boot/grub2/grubenv
# cat /boot/efi/EFI/fedora/grub.cfg
# lsinitrd /boot/initramfs-$(uname -r).img | grep btrfs
```
你应该在 `grubenv``grub.cfg` 有正确的分区 UUID 或指向(`grubenv` 可能没有更新,如有必要可以编辑它),并在 `grub.cfg` 中看到 `insmod btrfs` 配置和在 initramfs 镜像中有 btrfs 模块。
> 参见: Fedora 系统管理指南中的 [重装 GRUB 2][16] 和 [验证初始 RAM 磁盘镜像][17] 。
#### 重启
现在系统能够正常启动。如果不能,别慌,回到实时镜像修复这个问题。最坏的情况下,你可以从那里重装 Fedora 。
#### 首次启动之后
检查你的新 Btrfs 文件系统一切都正常。如果你觉得没问题,你需要回收旧的 ext4 快照使用的空间,进行碎片整理和平衡子卷。后两者可能要花一些时间,并且相当耗费资源。
对此你必须这样挂载顶级子卷:
```
# mount /dev/sdXX -o subvol=/ /mnt/someFolder
# btrfs subvolume delete /mnt/someFolder/ext2_saved
```
然后,当机器有空闲时间时,运行这些命令:
```
# btrfs filesystem defrag -v -r -f /
# btrfs filesystem defrag -v -r -f /home
# btrfs balance start -m /
```
最后,有一个 “非写时复制” [属性][18],对于新系统,这个属性是为虚拟机镜像文件夹自动设置的。如果你使用虚拟机的话,可以设置它:
```
# chattr +C /var/lib/libvirt/images
```
```
$ chattr +C ~/.local/share/gnome-boxes/images
```
这个属性只会对在这些文件夹里的新文件生效。复制镜像并删除原镜像,你可以通过 `lsattr` 确认结果。
### 总结
我真心希望你发现这个教程是有用的,并且能够对是否在你的系统上转换为 Btrfs 做出谨慎而明智的决定。祝你成功转换!
欢迎在评论中分享你的经验,或者遇到更深层次的问题,请在 [ask.fedoraproject.org][19] 提问。
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/convert-your-filesystem-to-btrfs/
作者:[Gergely Gombos][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwllife)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/gombosg/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2020/08/butterfs-816x346.png
[2]: https://ask.fedoraproject.org/t/conversion-of-an-existing-ext4-fedora-32-system-completely-to-btrfs/9446/6?u=gombosghttps://ask.fedoraproject.org/t/conversion-of-an-existing-ext4-fedora-32-system-completely-to-btrfs/9446/6?u=gombosg
[3]: https://fedoramagazine.org/reclaim-hard-drive-space-with-lvm/
[4]: https://fedoramagazine.org/recover-your-files-from-btrfs-snapshots/
[5]: https://fedoramagazine.org/choose-between-btrfs-and-lvm-ext4/
[6]: https://fedoramagazine.org/btrfs-coming-to-fedora-33/
[7]: https://btrfs.wiki.kernel.org/index.php/SysadminGuide
[8]: https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3
[9]: https://www.mankier.com/8/btrfs
[10]: https://www.mankier.com/5/btrfs
[11]: https://www.mankier.com/8/btrfs-convert
[12]: https://www.mankier.com/8/btrfs-subvolume
[13]: https://getfedora.org/en/workstation/download/
[14]: https://www.mankier.com/8/btrfs-subvolume#Subvolume_and_Snapshot
[15]: https://btrfs.wiki.kernel.org/index.php/Compression
[16]: https://docs.fedoraproject.org/en-US/fedora/f33/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Boot_Loader/#sec-Reinstalling_GRUB_2
[17]: https://docs.fedoraproject.org/en-US/fedora/f33/system-administrators-guide/kernel-module-driver-configuration/Manually_Upgrading_the_Kernel/#sec-Verifying_the_Initial_RAM_Disk_Image
[18]: https://www.mankier.com/1/chattr#Attributes-C
[19]: https://ask.fedoraproject.org/

View File

@ -3,41 +3,40 @@
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14584-1.html"
当下运行容器的 3 个步骤
======
在本教程中,你将学习如何在一个 pod 中运行两个容器来托管一个 WordPress 站点。
![堆积的运输容器][1]
> 在本教程中,你将学习如何在一个“吊舱”中运行两个容器来托管一个 WordPress 站点。
![](https://img.linux.net.cn/data/attachment/album/202205/12/121429y2s9v96rxxk2litk.jpg)
无论你是将其作为工作的一部分、未来的工作机会或者仅仅是出于对新技术的兴趣,容器对很多人,即使是经验丰富的系统管理员,可能是非常难以应付的。那么如何真正开始使用容器呢?从容器到 [Kubernetes][2] 的成长路径是什么?另外,为什么有不止一条路径?如你所料,最好的起点就是现在。
### 1\. 了解容器
### 1了解容器
转念一想,从头开始可以追溯到早期 BSD 及其特殊的 chroot 监狱,时间久了还是直接跳到最近发生的事情吧
略一回忆,容器的开端可以追溯到早期 BSD 及其特殊的 chroot 监狱,但让我们直接跳到发展中期讲起
不久前Linux 内核引入和 _cgroups_,允许你能够使用 _namespace_ 来“标记”进程。当你将进程组合到一个命名空间时,这些进程的行为在命名空间之外好像不存在任何东西,就像你把这些进程放入某种容器一样。当然,容器是虚拟的,它位于计算机内部,它和你操作系统的其余进程使用相同的内核、RAM 和 CPU但你已经包含了这些进程。
之前Linux 内核引入了 “<ruby>控制组<rt>cgroup</rt></ruby>”,允许你能够使用 “<ruby>命名空间<rt>namespace</rt></ruby>” 来“标记”进程。当你将进程分组到一个命名空间时,这些进程的行为就像在命名空间之外的东西不存在一样,这就像你把这些进程放入某种容器中。当然,这种容器是虚拟的,它位于计算机内部,它和你操作系统的其余进程使用相同的内核、内存和 CPU但你用容器包含了这些进程。
预制容器仅包含运行它所包含的应用程序必须的内容。使用容器引擎,如 [Podman][3]、Docker 或 CRI-O你可以运行容器化应用程序,而无需像之前一样操作很多配置。容器引擎通常是跨平台的,因此即使容器运行在 Linux 上,你也可以在其他 Linux、MacOS 或 Windows 上启动容器。
分发的预制容器仅包含运行它所包含的应用程序必须的内容。使用容器引擎,如 [Podman][3]、Docker 或 CRI-O你可以运行一个容器化应用程序,而无需进行传统意义上的安装。容器引擎通常是跨平台的,因此即使容器运行在 Linux 上,你也可以在其他 Linux、MacOS 或 Windows 上启动容器。
更重要的是,当需求量很大时,你可以运行同一应用程序的多个容器。
现在你知道了什么是容器,下一步是运行一个容器。
**[ 获取备忘录:[Pod、集群和容器之间有什么区别][4] ]**
### 2、运行一个容器
### 2\. 运行一个容器
在运行容器之前,你应该有一个想要运行它的理由。你可以编一个,这有助于你对让容器创建过程感兴趣,这样你就会受到鼓舞,真正去使用你所运行的容器。毕竟,运行容器但不使用它提供的应用程序,只能证明你没有注意到任何故障,但使用容器证明它可以工作。
在运行容器之前,你应该有一个想要运行它的理由。你可以编一个,这有助于你对让容器创建过程感兴趣,这样你在运行容器过程中会收到鼓舞。毕竟,运行容器但不使用它提供的应用程序只能证明你没有注意到任何故障,但使用容器证明它可以工作
我推荐从 WordPress 开始,它是一个很流行的 Web 应用程序,容易使用,所以一旦容器运行起来,你就可以测试使用它。虽然你可以轻松地配置一个 WordPress 容器,但还是有很多配置选项可以引导你发现更多运行容器的方式(例如运行数据库容器)以及容器如何通信
我推荐从 WordPress 开始,它是一个很流行的 Web 应用程序,容易使用,所以一旦容器运行,你就可以测试使用它。虽然你可以轻松地配置一个 WordPress 容器,但还是有很多配置选项可以引导你发现更多容器选项(例如运行数据库容器)以及容器如何通信。
我使用 Podman它是一个友好、方便且无守护进程的容器引擎。如果你没有安装 Podman可以改用 Docker 命令。它们都是很棒的开源容器引擎,而且它们的语法是相同的(只需输入 `docker` 而不是 `podman`)。因为 Podman 没有守护进程,所以它需要更多的配置,这种代价是值得的。
如果你使用 Docker可以跳到 [WordPress 容器部分][5],否则,打开终端安装并配置 Podman
我使用 Podman它是一个友好、方便且无守护进程的容器引擎。如果你没有安装 Podman可以改用 Docker 命令。它们都是很棒的开源容器引擎,而且它们的语法是相同的(只需输入 `docker` 而不是 `podman`)。因为 Podman 没有守护进程,所以它需要更多的配置,但为了这种运行免 root、无守护进程的容器的能力是值得的。
如果你使用 Docker可以跳到下面的 [运行 WordPress 容器][5] 小节,否则,打开终端安装并配置 Podman
```
$ sudo dnf install podman
@ -45,7 +44,6 @@ $ sudo dnf install podman
容器会产生许多进程,通常只有 root 用户有权创建数千个进程 ID。创建一个名为 `/etc/subuid` 的文件,定义一个适当的起始 UID 和大量合法的 PID这样就可以为你添加一些额外的进程 ID
```
seth:200000:165536
```
@ -61,7 +59,6 @@ staff:200000:165536
```
$ sysctl --all --pattern user_namespaces
user.max_user_namespaces = 28633
```
如果你的用户无权管理超过 28,000 个命名空间,创建 `/etc/sysctl.d/userns.conf` 文件来增加数量并输入:
@ -76,18 +73,15 @@ user.max_user_namespaces=28633
```
$ podman run --name mypress \
-p 8080:80 -d wordpress
-p 8080:80 -d wordpress
```
给 Podman 一会来找到容器,从互联网下载它,然后启动。
给 Podman 一会时间来找到容器、从互联网下载它,然后启动。
在收到终端返回提示后启动 Web 浏览器,打开 `localhost:8080`。WordPress 正在运行,等待你进行设置。
在收到终端返回提示启动 Web 浏览器,打开 `localhost:8080`。WordPress 正在运行,等待你进行设置。
![WordPress 容器][6]
(Seth Kenlon, [CC BY-SA 4.0][7])
不过,你很快就会遇到障碍,因为 WordPress 使用数据库来存储数据,因此你需要为其提供一个数据库。
在继续之前,停止并删除 WordPress 容器:
@ -95,62 +89,54 @@ $ podman run --name mypress \
```
$ podman stop mypress
$ podman rm mypress
```
### 3\. 在 pod 中运行容器
### 3、在吊舱中运行容器
容器在设计上是独立的,正如它们的名字所暗示的那样。在容器中运行的应用程序不应该与在容器外的应用程序或基础设进行交互。因此,当一个容器需要另一个容器才能运行时,一种解决方案是将这两个容器放在一个更大的容器中,称为 _pod_。Pod 确保其容器可以共享重要的命名空间以便相互通信。
正如名字所暗示的那样,容器在设计上是独立的。在容器中运行的应用程序不应该与在容器外的应用程序或基础设进行交互。因此,当一个容器需要另一个容器才能运行时,一种解决方案是将这两个容器放在一个更大的容器中,称为 <ruby>吊舱<rt>pod</rt></ruby>”。吊舱确保其容器可以共享重要的命名空间以便相互通信。
创建一个新的 pod为 pod 提供一个名称,以及希望能够访问的端口:
创建一个新的吊舱,为它提供一个名称,以及希望能够访问的端口:
```
$ podman pod create \
\--name wp_pod \
\--publish 8080:80
--name wp_pod \
--publish 8080:80
```
确认 pod 存在:
确认吊舱存在:
```
$ podman pod list
POD ID        NAME     STATUS    INFRA ID      # OF CONTAINERS
100e138a29bd  wp_pod   Created   22ace92df3ef   1
```
#### 将容器添加到吊舱
#### 将容器添加到 pod
现在你已经为相互依赖的容器创建了一个 pod你可以通过指定一个运行的 pod 来启动每个容器。
现在你已经为相互依赖的容器创建了一个吊舱,你可以通过指定一个运行的吊舱来启动每个容器。
首先,启动一个数据库容器。你可以创建自己的凭据,只要在 WordPress 连接到数据库时使用相同的凭据。
```
$ podman run --detach \
--pod wp_pod \
--restart=always \
-e MYSQL_ROOT_PASSWORD="badpassword0" \
-e MYSQL_DATABASE="wp_db" \
-e MYSQL_USER="tux" \
-e MYSQL_PASSWORD="badpassword1" \
--name=wp_db mariadb
```
接下来,在同一个吊舱中启动 WordPress 容器:
```
$ podman run --detach \
\--pod wp_pod \
\--restart=always \
-e MYSQL_ROOT_PASSWORD="badpassword0" \
-e MYSQL_DATABASE="wp_db" \
-e MYSQL_USER="tux" \
-e MYSQL_PASSWORD="badpassword1" \
\--name=wp_db mariadb
```
接下来,在同一个 pod 中启动 WordPress 容器:
```
$ podman run --detach \
\--restart=always --pod=wp_pod \
-e WORDPRESS_DB_NAME="wp_db" \
-e WORDPRESS_DB_USER="tux" \
-e WORDPRESS_DB_PASSWORD="badpassword1" \
-e WORDPRESS_DB_HOST="127.0.0.1" \
\--name mypress wordpress
--restart=always --pod=wp_pod \
-e WORDPRESS_DB_NAME="wp_db" \
-e WORDPRESS_DB_USER="tux" \
-e WORDPRESS_DB_PASSWORD="badpassword1" \
-e WORDPRESS_DB_HOST="127.0.0.1" \
--name mypress wordpress
```
现在启动你最喜欢的网络浏览器并打开 `localhost:8080`
@ -159,17 +145,13 @@ $ podman run --detach \
![WordPress 启动][8]
(Seth Kenlon, [CC BY-SA 4.0][7])
创建用户账户后,你可以登录查看 WordPress 仪表板。
![WordPress dashboard running in a container][9]
(Seth Kenlon, [CC BY-SA 4.0][7])
### 下一步
你已经创建了两个容器,并在一个 pod 中运行了它们。你现在已经了解了如何在自己的服务器上运行容器及服务。如果你想迁移到云,容器非常适合你。使用像 Kubernetes 和 OpenShift 这样的工具,你可以自动化启动[集群上的容器和 pod][10]。如果你正在考虑采取下一步行动,阅读 Kevin Casey 的 [3 个开始使用 Kubernetes 的方法][11],并尝试他提到的 Minikube 教程。
你已经创建了两个容器,并在一个吊舱中运行了它们。你现在已经了解了如何在自己的服务器上运行容器及服务。如果你想迁移到云,容器非常适合你。使用像 Kubernetes 和 OpenShift 这样的工具,你可以自动化启动 [集群上的容器和吊舱][10]。如果你正在考虑采取下一步行动,阅读 Kevin Casey 的 [3 个开始使用 Kubernetes 的方法][11],并尝试他提到的 Minikube 教程。
--------------------------------------------------------------------------------
@ -178,7 +160,7 @@ via: https://opensource.com/article/22/2/start-running-containers
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者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,171 @@
[#]: subject: "Difference Between Ubuntu 22.04 and Ubuntu 20.04 LTS"
[#]: via: "https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: "PeterPan0106"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14572-1.html"
Ubuntu 22.04 LTS 和 20.04 LTS 之间的十大变化
======
![](https://img.linux.net.cn/data/attachment/album/202205/10/155537gcaaaupqayf5lnua.jpg)
> 这里为准备从 20.04 LTS 迁移到 22.04 LTS 的用户列出了十个最重要的变化。
如果你是一位 [Ubuntu 20.04 LTS “Focal Fossa”][1] 用户,并准备迁移到 [Ubuntu 22.04 LTS “Jammy Jellyfish”][2],这篇文章将为你提供一些指引。在这两个 LTS 版本之间存在巨大的结构性变化,这在 LTS 分支中一般比较罕见。对比下来,不难发现本次更新一次性改变了大量的内容。
了解了这一点之后,本文将针对普通用户关切的方面,列出十个发生根本性变化的特性,并为用户提供一些指引。
### Ubuntu 22.04 LTS 与 Ubuntu 20.04 LTS 特性变化
#### 1、徽标、颜色和 Plymouth 动画
第一个你会注意到的视觉变化便是基调颜色相比早期的两个“棕橙色”变得更“橙色”。同时 Canonical 对徽标进行了修改,这一点体现在开机时 Plymouth 动画中。新的徽标乍一看会显得有些怪异,但看久了会比较顺眼,至少我认为这是一个十分与众不同的徽标。
![New Ubuntu logo and Plymouth][3]
#### 2、安装
Ubuntu 的默认安装程序并没有看到太多变化。我们其实更希望最新的 [基于 Flutter 的安装程序][4] 能够最终落地,但并没有。基于此,整体安装流程并未发生变化。我仅能够观察到对话框和按钮的强调色发生了变化。从功能角度而言,安装流程并未发生任何变化。
![Colour differences between two LTS Versions][5]
#### 3、锁屏与登录界面、桌面的初始界面以及壁纸
锁屏与登录界面的渐变变得更为精细,密码框采用了无边框设计。初次登录时的布局和壁纸发生了很大的变化。桌面的 “家目录” 快捷方式被重命名为 “Home”而非你的用户名但回收站快捷方式则移到了左侧的任务栏中并用分隔符与其他任务栏图标隔开了。
除此之外,顶部状态栏并未大改。系统托盘的菜单则进行了细微的修正,布局更为宽松。这些变化主要来自于 [GNOME 42][6] 的变化。
日历菜单并未发生变化。
![Ubuntu 20.04 Vs Ubuntu 22.04 Login Screen][7]
![Ubuntu 20.04 Vs Ubuntu 22.04 Lock Screen][8]
![Difference between Ubuntu 20.04 and Ubuntu 22.04 default look][9]
#### 4、桌面布局和 GNOME 版本升级
一个十分明显的变化就是 GNOME 版本由 GNOME 3.36 升级到了 GNOME 42。这是所有升级用户都会看到的显而易见的升级。Ubuntu 22.04 LTS 搭载的 GNOME 42 带来了水平的工作区视图以及水平的应用视图。所以,迁移之后手势从垂直转变为水平会有一些不习惯,但用一段时间就好了。
如果你的设备是触控屏的笔记本电脑或屏幕,经过一点学习之后,新的 GNOME 42 手势会给你十分顺滑的使用体验。以下是桌面、应用和工作区的对比图。
![Activities View Difference Ubuntu 20.04 and 22.04][10]
![Application View Difference Ubuntu 20.04 and 22.04][11]
#### 5、新的强调色与显示样式
有一个我非常喜欢的变化是最新的浅色和深色主题。早先 Ubuntu 有三个选择:浅色、深色和混合(标准)。这在 GNOME 42 中发生了改变,因为其本身就带有内置的浅色和深色模式。另一方面,它还引入了一个新的强调色选项(这并不是原本的 GNOME 42 带来的),允许用户在全局进行自定义。
当然,你还不能像 KDE Plasma 一样选择自定义的强调色。这些变化大多来自于最近的 libadwaita 和 GTK4 对 GNOME Shell 和原生应用程序的移植。
而当你在 Ubuntu 22.04 LTS 中打开深色模式,它会自动应用于所有支持的应用,这是一个与 Ubuntu 20.04 LTS 十分显著的区别。
![Accent Color and other changes][12]
![How Accent colour change impact looks in Ubuntu 22.04 LTS][13]
#### 6、文件管理器
在这个版本中,文件管理器的版本由 3.36.x 升级到了 42。区别是你能看到更为紧凑的设计、在文字和选项之间更为合理的布局以及顶部控制栏的小工具风格这一切都归功于 GTK4 和对底层错误的修复。文件中的地址栏有些不同,目录之间有一个分隔符,而汉堡菜单在最后。当然,这些变化都较为细微,你可能不会感受到它们之间有什么不同。
![Files Difference Ubuntu 20.04 vs 22.04][14]
#### 7、截图工作流的变化
另一个值得注意并且需要用户进行学习的是截图方式的改变。它完全改变了。早先你按下 `Print Screen` 键时,会自动截图并保存到图片文件夹中。现在有了 GNOME 42 内置的截图和录屏工具,工作流程被完全改变。
当你在截图时,你会发现有三个选项,你可以选择某个区域、全屏截图或者特定窗口。更重要的是,你还能选择是否让光标出现在截图中,此外还有录屏功能可选。选择完成之后点击“捕捉”按钮,这张图片将在被保存到图片文件夹,并同时复制到你的剪切板。
![New Screenshot tool in Ubuntu 22.04 LTS][16]
总体而言,相较于之前多了一个步骤。
在所有应用程序窗口顶部的右键菜单上,增添了一个新的截图选项。
![Take Screenshot option in top bar menu][17]
#### 8、 Firefox 浏览器成为了 Snap 版本
此外Firefox 浏览器在本次更新中变成了 Snap 版本。而此前在 20.04 LTS 中Firefox 浏览器以 deb 包形式呈现。这对于一般用户而言区别不大。
但是 Firefox 浏览器的 Snap 沙箱运行模式使得安装 GNOME 扩展工具时会产生问题,同时在同等硬件条件之下相较于之前的版本会显得更慢。
这个最为常用的应用的 Snap 迁移所带来的后续影响我们将拭目以待。
#### 9、不同的设置窗口
在设置中出现了一个新的面板:多任务。多任务面板允许你调整触发角以及激活窗口边缘。此外你可以指定工作区的数量,并设置自动删除空的工作区。而针对多显示器用户,现在可以选择仅在主屏幕上显示工作区或是在所有屏幕上显示工作区。
![New Multitasking Panel in Settings][18]
#### 10、主题和应用更新
此外,软件的变化带来了不同的响应式外观并能够适应任何形式。软件商店同时带来了新的界面,包含了按照类别分类的软件视图以及“编辑之选”栏目。
应用详情页面变得更加易读,重要的信息,例如总下载大小、评分、安全标记以及应用截图都以更可辨别地方式呈现。
![GNOME Software Home page difference][19]
![GNOME Software Details page difference][20]
最后,这两个版本的内部差异出现在软件包、官方桌面环境主题和错误修正上。下面是对重要软件包版本变化的一个对比:
**20.04** | **22.04**
---|---
GCC 10.3 | GCC 11.2
Hplip 3.20.3 | Hplip 3.21.12
LibreOffice 6.4.7 | LibreOffice 7.3.2
(未引入) | Pipewire 0.3.48
Python3 3.8.2 | Python3 3.10.1
Samba 4.13 | Samba 4.15
Systemd 245.4 | Systemd 249.11
### 总结
总而言之,这是 Ubuntu LTS 分支历次更新中变化最大的一次,不论是从视觉上还是特性角度。
我希望这个指南能够令读者了解两个版本之间的主要区别,以及应当预期什么样的使用体验。
祝好~
------
via: https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[PeterPan0106](https://github.com/PeterPan0106)
校对:[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/lujun9972
[1]: https://www.debugpoint.com/2021/08/ubuntu-20-04-3-release/
[2]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[3]: https://www.debugpoint.com/wp-content/uploads/2022/01/New-Ubuntu-logo-and-playmouth.jpg
[4]: https://github.com/canonical/ubuntu-desktop-installer
[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Colour-differences-between-two-LTS-Versions.jpg
[6]: https://www.debugpoint.com/2022/03/gnome-42-release/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-20.04-Vs-Ubuntu-22.04-Lock-and-Login-Screen-1024x431.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-20.04-Vs-Ubuntu-22.04-Lock-Screen-1024x408.jpg
[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Difference-between-Ubuntu-20.04-and-Ubuntu-22.04-default-look-1024x421.jpg
[10]: https://www.debugpoint.com/wp-content/uploads/2022/04/Activities-View-Difference-Ubuntu-20.04-and-22.04-1024x425.jpg
[11]: https://www.debugpoint.com/wp-content/uploads/2022/04/Application-View-Difference-Ubuntu-20.04-and-22.04-1024x420.jpg
[12]: https://www.debugpoint.com/wp-content/uploads/2022/04/Accent-Color-and-other-changes-1024x417.jpg
[13]: https://www.debugpoint.com/wp-content/uploads/2022/04/How-Accent-colour-change-impact-looks-in-Ubuntu-22.04-LTS.jpg
[14]: https://www.debugpoint.com/wp-content/uploads/2022/04/Files-Difference-Ubuntu-20.04-vs-22.04-1024x359.jpg
[15]: https://www.debugpoint.com/2022/04/ubuntu-budgie-22-04-lts/
[16]: https://www.debugpoint.com/wp-content/uploads/2022/04/New-Screenshot-tool-in-Ubuntu-22.04-LTS.jpg
[17]: https://www.debugpoint.com/wp-content/uploads/2022/04/Take-Screenshot-option-in-top-bar-menu.jpg
[18]: https://www.debugpoint.com/wp-content/uploads/2022/04/New-Multitasking-Panel-in-Settings.jpg
[19]: https://www.debugpoint.com/wp-content/uploads/2022/04/GNOME-Software-Home-page-difference-1024x416.jpg
[20]: https://www.debugpoint.com/wp-content/uploads/2022/04/GNOME-Software-Details-page-difference-1024x417.jpg
[21]: https://t.me/debugpoint
[22]: https://twitter.com/DebugPoint
[23]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[24]: https://facebook.com/DebugPoint

View File

@ -3,28 +3,31 @@
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14582-1.html"
彭博社开源 Memray一个 Python 内存析器
彭博社开源 Memray一个 Python 内存析器
======
![soft][1]
Memray 是一个内存分析器,由彭博社发,现在已经开源。它可以跟踪 Python 代码中的内存分配,包括本地扩展和 Python 解释器本身。内存剖析是了解程序如何利用内存的有力工具,因此可以检测内存泄漏或确定程序中哪些区域消耗的内存最多。
![](https://img.linux.net.cn/data/attachment/album/202205/12/081556a84j8f331irlszo2.jpg)
Memray 是一个由彭博社开发的<ruby>内存剖析器<rt>memory profiler</rt></ruby>,现在已经开源。它可以跟踪 Python 代码中的内存分配,包括本地扩展和 Python 解释器本身。内存剖析是了解程序如何利用内存的有力工具,因此可以检测内存泄漏或确定程序中哪些区域消耗的内存最多。
与 py-spy 等抽样内存剖析器相比Memray 可以跟踪每个函数调用,包括对 C/C++ 库的调用,并详细显示调用栈。彭博社称,这并不以牺牲性能为代价,剖析只使解释代码的速度变慢一点。然而,原生代码剖析的速度较慢,因此需要直接启用。
Memray 可以根据获得的内存消耗数据生成各种报告,包括火焰图,这对快速、准确地识别最常见的代码路径很有价值。
据 EgdeDB 的联合创始人兼 CEO Yury Selivanov 称,该工具提供了以前无法获得的对 Python 应用的洞察力。Memray 可以用来从命令行中执行和析 Python 应用。
据 EgdeDB 的联合创始人兼 CEO Yury Selivanov 称,该工具提供了以前无法获得的对 Python 应用的洞察力。Memray 可以用来从命令行中执行和析 Python 应用。
```python
```
$ python3 -m memray run -o output.bin my_script.py
$ python3 -m memray flamegraph output.bin
```
另外,你可以使用 pytest-memray 将 Memray 集成到你的测试套件中。你也可以用 -native 命令行选项对所有的 C/C++ 调用进行剖析,或者用 -live 命令行选项在程序执行过程中实时分析内存分配。Memray 可以在 Linux x86/64 系统上用 python3 -m pip install memray 来安装。
另外,你可以使用 pytest-memray 将 Memray 集成到你的测试套件中。你也可以用 `-native` 命令行选项对所有的 C/C++ 调用进行剖析,或者用 `-live` 命令行选项在程序执行过程中实时分析内存分配。Memray 可以在 Linux x86/64 系统上用 `python3 -m pip install memray` 来安装。
(题图由 Frantisek Krejci 在 Pixabay 上发布)
--------------------------------------------------------------------------------
@ -33,7 +36,7 @@ via: https://www.opensourceforu.com/2022/04/bloomberg-open-sources-memray-a-pyth
作者:[Laveesh Kocher][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/) 荣誉推出

View File

@ -3,26 +3,28 @@
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "aREversez"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14588-1.html"
GNOME 新文本编辑器尝鲜
======
如果你是 It's FOSS 的忠实读者,你可能读过这样一篇文章: [GNOME 计划用自家的文本编辑器取代 Gedit][1]。
![](https://img.linux.net.cn/data/attachment/album/202205/13/144247g8w8v9clwdcaagw1.png)
没错GNOME 推出了一款全新的文本编辑器,名字就叫做 Text Editor中文译名文本编辑器
如果你是我们的忠实读者,你可能读过 [GNOME 计划用自家的文本编辑器取代 Gedit][1] 的消息了
尽管 GNOME 桌面的默认文本编辑器还是 Gedit但是新编辑器 Text Editor 已经和 GNOME 42 一起发布了
没错GNOME 推出了一款全新的文本编辑器,名字就叫做,嗯,“<ruby>文本编辑器<rt>Text Editor</rt></ruby>
也就是说,这款新编辑器可以在 Ubuntu 最新的长期发行版或者其他应用 GNOME 42 的发行版上获取(笔者现在使用的正是 Ubuntu 22.04)。
尽管 GNOME 桌面的默认文本编辑器还是 Gedit但是这个新的编辑器已经和 GNOME 42 一起发布了。
也就是说,这款新编辑器可以在 Ubuntu 最新的长期发行版或者其他使用 GNOME 42 的发行版上获取(笔者现在使用的正是 Ubuntu 22.04)。
感兴趣吗?在本文,笔者将分享这款编辑器的使用体验以及安装步骤。
### Text Editor 使用体验
### GNOME 文本编辑器使用体验
Text Editor 基于 [备受争议的 libadwaita 库][3],遵循着其开发委员会的设计新理念,采用圆角边框,外观优美典雅,颇具现代化特点。
GNOME 文本编辑器基于 [有争议的 libadwaita 库][3],遵循着其开发委员会的设计新理念,采用圆角边框,外观优美典雅,颇具现代化特点。
但就功能而言,这款软件并没有什么特别的“过人之处”。毕竟,它并不能取代 [Atom 或者 VS Code][4] 这类专业的代码编辑器。但同时,它也绝不像 Windows 的记事本那样“平平无奇”。
@ -30,17 +32,17 @@ Text Editor 基于 [备受争议的 libadwaita 库][3],遵循着其开发委
#### 会话保存功能
默认情况下,Text Editor 会自动打开上次编辑的文件,这一功能可以让你快速继续之前的工作。
默认情况下,GNOME 文本编辑器会自动打开上次编辑的文件,这一功能可以让你快速继续之前的工作。
你可以通过首选项下的还原会话选项,开启或关闭该功能。
![][5]
你还可以搜索文件记录,打开最近处理的文件。请注意:清除文件记录(见上图 Clear History会清除最近打开的文件列表。
你还可以搜索文件记录,打开最近处理的文件。请注意:清除文件记录(见上图 <ruby>清除历史<rt>Clear History</rt></ruby>)会清除最近打开的文件列表。
#### Themes and in-built themes 主题与内置主题
#### 主题与内置主题
Text Editor 与其他新的 GNOME 软件一样,自带三种主题风格:跟随系统、浅色模式和深色模式。如果你选择了跟随系统,编辑器会根据系统主题(浅色或深色)自动变换自身的深浅主题色。
GNOME 文本编辑器与其他新的 GNOME 软件一样,自带三种主题风格:跟随系统、浅色模式和深色模式。如果你选择了跟随系统,编辑器会根据系统主题(浅色或深色)自动变换自身的深浅主题色。
![System theme option gnome text editor][6]
@ -52,27 +54,27 @@ Text Editor 与其他新的 GNOME 软件一样,自带三种主题风格:跟
#### 文件修改以及未保存文件的处理
如果你修改了某个文件但是没能成功保存,在你下次打开 Text Editor 时,它会再次打开该文件并提醒你保存
在你工作时,已修改和未保存的文件会突出地反映出来
![Unsaved files are more prominently marked][8]
不过,在你修改文件后点击关闭窗口时,编辑器会提醒你选择保存修改还是放弃修改。
在你修改文件后点击关闭窗口时,编辑器会提醒你选择保存修改还是放弃修改。
![][9]
相比之下,[Gedit 有自动保存选项][10],无需插件即可使用,而 Text Editor 没有这一功能
相比之下,[Gedit 有自动保存选项][10],无需插件即可使用。
#### 暂无插件
#### 暂无插件功能
提到插件不得不承认这款新的编辑器还没有推出插件功能。而另一方面Gedit 有着良好的插件生态,所以它的功能更加强大。
不过我不确定 Text Editor 未来是否会引入支持插件的功能。
我不确定 GNOME 文本编辑器未来是否会引入支持插件的功能。
#### 代码语法高亮
近年来,代码语法高亮可以说是文本编辑器的一个必备功能了。Text Editor 也提供了这一功能,支持各种程序语言语法高亮。
近年来,代码语法高亮可以说是文本编辑器的一个必备功能了。GNOME 文本编辑器也提供了这一功能,支持各种程序语言语法高亮。
通常来说,语法高亮的前提是代码文件要有对应的后缀名。不过,我发现 Text Editor 甚至可以在文件保存之前就识别出 bash 脚本和 C/C++ 程序,并对其语法标出高亮。
通常来说,语法高亮的前提是代码文件要有对应的后缀名。不过,我发现 GNOME 文本编辑器甚至可以在文件保存之前就识别出 bash 脚本和 C/C++ 程序,并对其语法标出高亮。
![Bash scripts. C/C++ code are detected even without file extension][11]
@ -80,60 +82,56 @@ Text Editor 与其他新的 GNOME 软件一样,自带三种主题风格:跟
笔者喜欢在常用软件里使用快捷键,因为这样效率会更高。
Text Editor 的各种操作都支持快捷键。你可以点击软件右上角的三条横线(☰ 符号),看到“快捷键”选项;或者直接敲快捷键 Ctrl+?调出“快捷键”窗口
GNOME 文本编辑器的各种操作都支持快捷键。你可以点击软件右上角的汉堡菜单(`☰` 符号)看到快捷键列表;或者直接敲快捷键 `Ctrl+?` 调出
![Keyboard shortcuts in Text Editor][12]
#### 查找和替换
Text Editor 有着完善的查找替换功能。它有三种模式可供选择:正则表达式、区分大小写以及匹配精准字符。
GNOME 文本编辑器有着完善的查找替换功能。它有三种模式可供选择:正则表达式、区分大小写以及匹配精准字符。
![search replace gnome text editor][13]
#### 更多功能
Text Editor 与 Gedit 一样,还具备一些其他功能:
GNOME 文本编辑器与 Gedit 一样,还具备一些其他功能:
* 拼写检查
* 显示行号
* 自动缩进
* 空格空格和制表位缩进
* 空格和制表位缩进
* 大小写转换
* 自动换行
#### GNOME 文本编辑器的局限
#### Text Editor 的局限
归根结底Text Editor 依旧是一个文本编辑器,无法也无意用来打开 doc 文件。如果你执意用它要打开 doc 文件你看到的就只有一堆乱码。当然pdf 文件也是如此。
归根结底GNOME 文本编辑器依旧是一个文本编辑器,无法也无意用来打开 doc 文件。如果你执意用它要打开 doc 文件你看到的就只有一堆乱码。当然pdf 文件也是如此。
![][14]
此外,Text Editor 并不是专门用来写复杂代码的,它无法取代 VS Code 等代码编辑器。如果说偶尔用来读读代码或者写写 shell 脚本,倒也无伤大雅,但是它并不具备管理项目文件夹和运行代码等功能。
此外,GNOME 文本编辑器并不是专门用来写复杂代码的,它无法取代 VS Code 等代码编辑器。如果说偶尔用来读读代码或者写写 shell 脚本,倒也无伤大雅,但是它并不具备管理项目文件夹和运行代码等功能。
### 安装 Text Editor
### 安装 GNOME 文本编辑器
就像笔者在开头所说,Text Editor 已经和 GNOME 42 一起发布了,不过它并不属于默认安装的软件。在 Ubuntu 22.04Universe 仓库里就有 Text Editor,你可以通过输入下面的命令进行安装:
就像笔者在开头所说,GNOME 文本编辑器已经和 GNOME 42 一起发布了,不过它并不属于默认安装的软件。在 Ubuntu 22.04Universe 仓库里就有 GNOME 文本编辑器,你可以通过输入下面的命令进行安装:
```
sudo apt install gnome-text-editor
sudo apt install gnome-text-editor
```
其他应用 GNOME 42 的发行版也可以获取 Text Editor请在安装前查看所用系统的[桌面环境版本][15]。
其他采用 GNOME 42 的发行版也可以获取 GNOME 文本编辑器,请在安装前查看所用系统的 [桌面环境版本][15]。
安装完成后,可以点击屏幕左上角的“活动”按钮,查找打开 Text Editor。它的图标与 Gedit 的图标相似,但设计更为新颖。
安装完成后,可以点击屏幕左上角的“<ruby>活动<rt>Activities</rt></ruby>”按钮,查找并打开 GNOME 文本编辑器。它的图标与 Gedit 的图标相似,但设计更为新颖。
![][16]
### 总结
[Gedit][17] 是一款非常完善的文本编辑器,也是 GNOME 桌面环境长期以来的预装软件。多年前Gedit 的发展尚且不足,不过后期又迎来了新的发展。然而,如今 GNOME 团队正在努力为 GTK 4 和 libadwaita 改进核心应用程序。
[Gedit][17] 是一款非常完善的文本编辑器,也是 GNOME 桌面环境长期以来的预装软件。几年前Gedit 疏于开发,但现在已经恢复了开发。然而,如今 GNOME 团队正在努力为 GTK 4 和 libadwaita 改进核心应用程序。
Text Editor 很像 Gedit 的翻版两者有着相似的界面和功能。不过Text Editor 与新版 GNOME 的设计风格更加统一,使用体验也更加流畅。
GNOME 文本编辑器很像 Gedit 的翻版两者有着相似的界面和功能。不过GNOME 文本编辑器与新版 GNOME 的设计风格更加统一,使用体验也更加流畅。
这款新的编辑器日后很有可能会成为 GNOME 的默认文本编辑器。不过让人感兴趣的是,Text Editor 将来是否会拥有自己的插件生态呢?
这款新的编辑器日后很有可能会成为 GNOME 的默认文本编辑器。不过让人感兴趣的是,GNOME 文本编辑器将来是否会拥有自己的插件生态呢?
--------------------------------------------------------------------------------
@ -142,13 +140,13 @@ via: https://itsfoss.com/gnome-text-editor/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[aREversez](https://github.com/aREversez)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://news.itsfoss.com/gnome-text-editor-to-replace-gedit/
[1]: https://linux.cn/article-14060-1.html
[2]: https://itsfoss.com/ubuntu-22-04-release-features/
[3]: https://news.itsfoss.com/gnome-libadwaita-library/
[4]: https://itsfoss.com/visual-studio-code-vs-atom/

View File

@ -0,0 +1,183 @@
[#]: subject: "How to Remove Snap Packages in Ubuntu Linux"
[#]: via: "https://www.debugpoint.com/2022/04/remove-snap-ubuntu/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: "hwlife"
[#]: reviewer: "turbokernel, wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14567-1.html"
怎样在 Ubuntu Linux 中移除 Snap 软件包
======
![](https://img.linux.net.cn/data/attachment/album/202205/09/103449pfqp2yp2rpzgp92l.jpg)
> 这是一篇关于在 Ubuntu Linux 系统中如何删除 Snap以得到一个无 Snap 系统的教程。
由 Canonical 开发的 Snap 软件包在一些场景下是有益的。它为终端用户直接提供了轻便且快速的程序更新。不仅如此,它还有其他的好处,比如它打包了所有依赖包,并允许安装同一个应用的多个版本。此外,它运行在沙盒模式,提供了安全和其他方面的好处。
在这些好处中, Snap 技术也有一些地方备受争论。举个例子,几乎所有使用 Snap 软件包的用户都说它的性能较差,包括它的启动时间要比本地 deb 或者 RPM 软件包时间要长。另外,由于它的设计,程序安装的体积巨大,浪费磁盘空间,因为它打包了所有用到的依赖包。
不仅如此由于沙盒的天然属性Snap 程序可能无法访问你的 Linux 桌面的几个部分,除非提供了适当的权限。
这个指南阐述了你如何从 Ubuntu 系统中完全移除 Snap。
这些步骤在 [Ubuntu 22.04 LTS Jammy Jellyfish][1] 中进行了测试。然而,它应该也适用于所有的 Ubuntu 系统版本。
> **警告:这些步骤将会移除 Ubuntu 系统中两个关键的程序:软件商店和 Firefox。尝试这些步骤之前确认你已经对书签和 Firefox 的其它设置做了备份。**
### 在 Ubuntu Linux 移除 Snap 软件包
1、在你的系统中打开一个终端使用以下命令查看已经安装的 Snap 软件包的列表。它显示了 Snap 软件包,比如 Firefox软件商店主题以及其它默认已经安装的核心软件包。
```
snap list
```
![ Ubuntu Snap 包列表][2]
2、按照以下的顺序移除 Snap 软件包。首先移除 Firefox。然后是软件商店和用以上命令看到的你的系统中的其它软件包。
```
sudo snap remove --purge firefox
sudo snap remove --purge snap-store
sudo snap remove --purge gnome-3-38-2004
```
```
sudo snap remove --purge gtk-common-themes
sudo snap remove --purge snapd-desktop-integration
sudo snap remove --purge bare
sudo snap remove --purge core20
sudo snap remove --purge snapd
```
3、最后通过 `apt` 命令移除 Snap 服务。
```
sudo apt remove --autoremove snapd
```
![移除 Snap 包和其它][3]
这还没完,即使你用以上命令移除了 Snap 软件包,但是如果你没有关闭 apt 触发器,`sudo apt update` 命令会再一次将 Snap 安装回来。
4、所以要关闭它我们需要在 `/etc/apt/preferences.d/` 目录下创建一个 apt 设置文件 `nosnap.pref` 来关闭 Snap 服务。
```
sudo gedit /etc/apt/preferences.d/nosnap.pref
```
5、添加以下的命令行并保存该文件。
```
Package: snapd
Pin: release a=*
Pin-Priority: -10
```
![创建设置文件][4]
如果你知道如何使用它,那么这个 apt 设置文件是一个潜在的工具。举个例子,在以上的状态中,`Pin-Priority -10` 意思就是阻止 Snap 软件包的安装。
与这个教程不相关的,举个例子,如果你想给所有发行版代号为 “bulleye” 的软件包超高优先权的话,那么就可以查看这些设置文件。如果你想了解更多,你可以访问 [apt 手册页][5]。
```
Package: *
Pin: release n=bullseye
Pin-Priority: 900
```
6、回到我们的主题一旦你已经保存和关闭以上文件从终端中再次运行以下命令。
```
sudo apt update
```
7、最后从 Ubuntu 中移除 Snap 的步骤全部完成。
### 从 Ubuntu 移除 Snap 后使用 deb 文件安装软件商店和 Firefox
你已经移除了 Firefox 和软件商店,但是你的工作还需要它们。
要安装 apt 版的 GNOME 软件商店,你可以使用以下命令。确保使用 `--install-suggests` 参数。否则,将会再次安装上 Snap 版本的软件包管理器!
```
sudo apt install --install-suggests gnome-software
```
要安装 Firefox通过以下命令使用官方 PPA 仓库。
```
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update
sudo apt install -t 'o=LP-PPA-mozillateam' firefox
```
![添加 PPA 仓库][7]
![从 PPA 仓库以 deb 文件形式安装 Firefox][8]
一旦你已经安装完 Firefox使用以下命令开启自动更新。要了解更多[访问此页][9]。
```
echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
```
最后但同样重要,当运行 `apt` 时,为 Firefox 创建另一个设置文件给予以上 PPA 仓库超高优先权。如果你不这么做,`apt update` 命令会再次安装 Snap 版本 Firefox并把它的“ Snap 朋友们”带回来 😂😂😂。
```
sudo gedit /etc/apt/preferences.d/mozillateamppa
```
最后,添加这些命令行并保存文件。
```
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 501
```
完成。
### 在 Ubuntu 系统恢复到 Snap 软件包
如果你改变想法,移除该设置文件,并通过以下命令再次启动安装程序。
```
sudo rm /etc/apt/preferences.d/nosnap.pref
sudo apt update && sudo apt upgrade
sudo snap install snap-store
sudo apt install firefox
```
### 总结
关于在 Ubuntu 下移除 Snap 软件包做个总结,我想说的是这些处理 Snap 软件包的方法实属无奈。主要是这对新用户来说很困难。我希望这个指南能帮助你处理好 Snap 软件包。完结撒花。
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/remove-snap-ubuntu/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwlife)
校对:[turbokernel](https://github.com/turbokernel), [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/lujun9972
[1]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Snap-list-in-Ubuntu.jpg
[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/remove-snap-and-others-1024x544.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/create-a-pref-file.jpg
[5]: https://manpages.ubuntu.com/manpages/focal/man5/apt_preferences.5.html
[6]: https://www.debugpoint.com/2016/07/how-to-install-and-use-snap-packages-in-ubuntu/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Add-the-PPA-1024x550.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Install-Firefox-as-deb-file-from-PPA-1024x548.jpg
[9]: https://www.debugpoint.com/2021/09/remove-firefox-snap-ubuntu/
[10]: https://t.me/debugpoint
[11]: https://twitter.com/DebugPoint
[12]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[13]: https://facebook.com/DebugPoint

View File

@ -0,0 +1,160 @@
[#]: subject: "How to Install h.264 decoder on Ubuntu Linux"
[#]: via: "https://itsfoss.com/install-h-264-decoder-ubuntu/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "hwlife"
[#]: reviewer: "turbokernel"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14583-1.html"
在 Ubuntu Linux 如何安装 H.264 解码器
======
![](https://img.linux.net.cn/data/attachment/album/202205/12/101451szky6vn0vn4ssv2s.jpg)
当你开始使用 [新安装的 Ubuntu 系统][1] 并尝试打开一个 MP4 文件进行播放时,它可能会显示一个错误,即:
> 播放这个文件要求 H.264(高清)解码器 ,但是没有安装。
![当播放特定媒体文件时Ubuntu 的默认视频播放器会显示错误][2]
你可能会猜到原因:系统没有安装所需的多媒体解码器,导致视频播放器播放该视频文件。
所以,解决方案是什么?安装所需的解码器。怎么做呢?
我将讨论解决这个问题的三种方法:
1. 只安装所需的解码器:它能解决所需的文件播放,但是一些其它格式的文件仍然会处在无解码器可用的状态。
2. 一次安装多种多媒体解码器:它会安装解码器之外,还会安装你不需要的其它软件包,类似微软的字体库一样。
3. 安装一个不同的视频播放器:像 VLC 和 MPV 视频播放器默认状态下对解码器有更好的支持。对大多数常规视频文件来说,你不必分别安装它们。
如果你遵从我的建议,我建议你采用第二种和第三种方法。为什么?一会你就知道了。
### 在 Ubuntu Linux 获取 H.264 解码器
这里我使用 Ubuntu Linux。第一和第三种方法应该也适用于其它发行版但是第二种方法不适用因为所提到的包常常是 Ubuntu 所独有的。
#### 方法 1: 只安装所需的解码器(不推荐)
当你看到这个错误时,它给你一个叫做 “在 Ubuntu 软件中心查找” 的按钮。点击这个按钮打开软件中心,可能显示(或不显示)一些将在你的系统上安装 H.264 解码器的软件包。
![在 Ubuntu 软件中心可能提供 H.264 解码器软件包][3]
软件包名可能听起来很相似,但是你需要安装来自<ruby>“不良”组合<rt>"bad" set</rt></ruby>的 GStreamer 多媒体解码器。注意检查软件包的描述。
或者,你可以使用如下命令在终端来安装软件包:
```
sudo apt install gstreamer1.0-plugins-bad
```
如果你对终端不了解,请注意要求使用你的账户密码的提示。**当你输入你的密码时,屏幕什么都不显示**。这是 Linux 的方式。你盲输密码然后按回车键。
一旦软件包安装完成,再次打开文件看看是否能够正常播放。
这可能对你有用,但是解决方案并未结束。你可能有其它格式的一些视频文件要求一些其它的 H.264 解码器或者其它解码器。
![其它的解码器播放视频你可能仍然有问题][4]
你可以通过如下命令安装更多的解码器:
```
sudo apt install libavcodec-extra gstreamer1.0-plugins-ugly gstreamer1.0-libav
```
然而,在 Ubuntu 有一个 [安装多媒体解码器更加方便的方法][5],我会在下一节展示给你。
#### 方法 2: 安装所有多媒体解码器(推荐)
Ubuntu 系统提供了一个名字叫做 `ubuntu-restricted-extras` 的基础软件包,由许多常规的音频和视频解码器以及像类似微软字体库那样多余的一些软件包组成。
安装这个软件包你将不用再担心多媒体解码器的问题了。
在 Ubuntu 打开终端并键入以下命令:
```
sudo apt install ubuntu-restricted-extras
```
由于这个基础软件包包含类似微软字库那样用不到的一些多余的软件你必须得接受最终用户许可协议EULA才行。
![按下 tab 键 然后点击回车接受 EULA 协议][6]
下一屏类似如下。按下 `tab` 键会高亮显示选项。当正确的选项高亮显示时,按下回车键来确认你的选择。
![当高亮显示你正确的选项时,按下 tab 键,按回车键确认][7]
当多媒体解码器安装完成后,你应该能够播放绝大多数媒体文件了。你的音乐播放器能播放 MP3 文件,你的视频播放器能播放 MP4MKV 等等格式。
然而,这也不是解决方案的终点,至少对某些人来说。
为什么我要那样说?因为我已经注意到 Ubuntu 系统下的默认视频播放器 Totem 在播放某些视频格式文件时常常遇到问题。你会注意到突然你的系统主机发热,风扇狂转并且鼠标指针停止运行。
为什么?因为 Totem 播放器在视频解码方面占用了大量的处理器资源。
当你播放视频的时候你可以通过 `top` 命令尝试查看名称为 `totem` 这个进程(那是默认视频播放器的名字)。
![Ubuntu 默认的视频播放器 Totem 可能消耗过多的必要的 CPU 资源][8]
你现在能够做什么?你的麻烦看起来永无止境,别担心。[在 Linux 上有更好的视频播放器][9] 并且它们能帮助你解决问题。
#### 方法 3: 安装一个更优秀的视频播放器(推荐)
在 Linux 上有很多优秀的视频播放器。我发现它们优于默认的 Totem 视频播放器。
就我个人来说,那么多个我只喜欢这两个:[VLC][10] 和 [MPV][11]。
VLC 是一个功能丰富且超级流行的视频播放器。很可能你已经使用过 VLC 。
MPV 媒体播放器不是那么流行,但使用这个轻量级的程序播放视频文件是再合适不过了。
VLC 和 MPV 播放器都擅长处理多媒体解码器。你甚至不必分开来安装多媒体解码器。只需要 [安装 VLC][12] 或者 MPV ,你就能够播放各种格式的视频文件。
在软件中心也可以找到它:
![在 Ubuntu 软件中心 MPV 可用][13]
或者 使用命令行 [在 Ubuntu 安装 MPV][14]
```
sudo apt install mpv
```
现在你已经有了一个新的视频播放器,你应该右键点击视频文件,选择新的视频播放器来打开。
或者,你可以[使其作为默认程序][15] 双击来播放视频文件。
### 对你有用吗?
我在这里没有说太多细节。我想阐述各种方法以及对应的优缺点。
你在 Ubuntu 处理好 H.264 解码器的问题了吗?哪种方法对你有用?
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-h-264-decoder-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwlife)
校对:[turbokernel](https://github.com/turbokernel)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/install-ubuntu/
[2]: https://itsfoss.com/wp-content/uploads/2022/04/h264-decoder-error-ubuntu-800x241.png
[3]: https://itsfoss.com/wp-content/uploads/2022/04/h264-decoder-ubuntu-software-center-800x532.png
[4]: https://itsfoss.com/wp-content/uploads/2022/04/ac3-decoder-missing-ubuntu-800x251.png
[5]: https://itsfoss.com/install-media-codecs-ubuntu/
[6]: https://itsfoss.com/wp-content/uploads/2020/02/installing_ubuntu_restricted_extras.jpg
[7]: https://itsfoss.com/wp-content/uploads/2020/02/installing_ubuntu_restricted_extras_1.jpg
[8]: https://itsfoss.com/wp-content/uploads/2022/04/totem-consuming-more-cpu-ubuntu-800x454.webp
[9]: https://itsfoss.com/video-players-linux/
[10]: https://www.videolan.org/vlc/
[11]: https://mpv.io/
[12]: https://itsfoss.com/install-latest-vlc/
[13]: https://itsfoss.com/wp-content/uploads/2022/04/mpv-player-ubuntu-software-center-800x346.png
[14]: https://itsfoss.com/mpv-video-player/
[15]: https://itsfoss.com/change-default-applications-ubuntu/

View File

@ -0,0 +1,108 @@
[#]: subject: "Tools You Can Use for the Security Audit of IoT Devices"
[#]: via: "https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/"
[#]: author: "Dr Kumar Gaurav https://www.opensourceforu.com/author/dr-gaurav-kumar/"
[#]: collector: "lkxed"
[#]: translator: "tendertime"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14566-1.html"
物联网安全审计工具集锦
======
数字化转型涉及数据驱动的决策与人工智能AI的结合。重要数据通过物联网IoT设备和智能组件进行传播。由于物联网设备常常处于不安全的环境而且由于缺乏内生安全机制的脆弱性很难免于潜在的网络攻击。以下是一些用于实现安全审计的开源工具可以降低此类攻击风险。
![](https://img.linux.net.cn/data/attachment/album/202205/09/090119h337d3shyoj3ou28.jpg)
网络攻击者和嗅探器可以从物联网设备中获取敏感数据,并利用这些信息对其他相关系统发起攻击。反病毒和计算机安全服务公司卡巴斯基表示,在 2021物联网黑客数量同比增长了四倍多。
在很大程度上,黑客通过使用 Telnet 协议访问物联网网络,该协议为通过互联网与设备或服务器进行通信提供了命令行接口。根据研究报告,超过 58% 的物联网入侵使用各种协议以求实现挖掘加密货币、通过分布式拒绝服务DDoS攻击关闭系统、窃取机密数据的目的。
由于人们在疫情期间居家使用物联网设备的时间增加,安全风险也随之上升。这些物联网组件中的大部分无论是个人用还是商用,都缺乏基本的安全措施。人工智能和边缘计算等新技术也使网络和数据安全形势复杂化。卡巴斯基的一位安全专家 Dan Demeter 表示:智能组件变得流行,攻击的数量也随之上升了。
![Key components in PENIOT][2]
### 物联网组件的安全审计需求
网络攻击一直在演变,商业公司和政府部门都在采用越来越复杂的网络安全设施以防止他们的应用和基础设施免于在线攻击。全球渗透测试市场预计将从 2021 的 16 亿美元增长到 2026 年的 30 亿美元2021 至 2026 年的复合年增长率为 13.8%。
物联网设备的渗透测试是一个热门话题,在这一领域有大量研究。即使采用“设计安全”的方法,渗透对于识别真正的安全危险并采取适当的预防措施也是至关重要的。
物联网部署中需要安全和隐私的关键部分和协议包括:
* <ruby>受限应用协议<rt>Constraint application protocol</rt></ruby>CoAP
* <ruby>低功耗蓝牙<rt>Bluetooth low energy</rt></ruby>BLE
* <ruby>高级消息队列协议<rt>Advanced message queuing protocol</rt></ruby>AMQP
* <ruby>消息队列遥测传输<rt>Message queuing telemetry transport</rt></ruby>MQTT
攻击者有多种可能的入口访问到联网设备。在物联网渗透测试(或安全审计)时,要测试完整的物联网场景和生态。测试内容包括从单个层和嵌入式软件到通信协议和服务器的所有内容。对服务器、在线接口和移动应用的测试并非物联网独有,但至关重要,因为它们涵盖了故障可能性很高的领域。物联网漏洞是电气、嵌入式软件和通信协议测试的重点。
在评估联网设备的安全性时会进行以下测试。这些测试都是使用不同的针对漏洞的高性能渗透测试和安全审计工具进行的:
* 通信端口中的攻击和操纵的测试
* 基于无线电信号捕获和分析的 IoT 嗅探
* 接口和后门测试
* 缓冲区溢出测试
* 密码破解测试
* 调试
* 密码学分析
* 固件操纵测试
* 逆向工程
* 内存转储
![][3]
### 物联网安全审计使用的开源工具
物联网设备在我们的日常生活中变得越来越普遍,比如,智能自行车、健身跟踪器、医疗传感器、智能锁和联动工厂等。所有这些设备和组件都可以使用开源工具来抵御网络攻击,本文将简要介绍其中一些工具。
#### PENIOT
[PENIOT](https://github.com/yakuza8/peniot) 是一种物联网渗透测试工具,使安全审计团队能够通过利用设备的连接来测试和破坏具有各种安全威胁的设备。可以测试主动和被动安全威胁。在确定目标设备和相关信息(或参数)后,可以进行主动安全攻击,例如改变系统资源、重放合法通信单元等。还可以分析被动安全威胁,例如破坏敏感数据的机密性或访问网络流量分析。
#### Objection
[Objective](https://github.com/sensepost/objection) 是一个对物联网环境中使用的安卓和 iOS 应用程序进行详细分析和安全审计的工具。
目前许多智能组件和设备都在使用安卓和 iOS 平台,使用该工具可以通过详细的日志和安全审计报告对这些平台进行分析。
#### Routersploit
[这个](https://github.com/threat9/routersploit) 针对嵌入式设备的开源开发框架具有多个用于渗透测试和安全审计的功能和模块:
* Exploits —— 漏洞评估
* Creds —— 网络服务和证书的测试
* Scanners —— 对目标进行详细的安全审计
* Payloads —— 有效载荷和注入关键点的生成
* Generic —— 执行和测试攻击
#### Wireshark
[Wireshark](https://www.wireshark.org) 是一款功能丰富的、免费的网络协议分析器。MQTT 等多种物联网协议可通过该工具实现有效分析。为了发现弱点,可以根据协议配置安全规则并检查流量。可以使用 `tcpdump` 通过命令行访问网络数据包分析器。此类工具用于检查物联网设备和网络之间交换的数据包。
#### Binwalk
[Binwalk](https://www.kali.org/tools/binwalk) 是一种逆向硬件设计的工具。它是 Kali Linux 的关键组件之一,用于渗透测试、服务器指纹识别、安全审计和取证应用。
#### Firmwalker
[Firmwalker](https://github.com/craigz28/firmwalker) 是一款自由开源的工具,用于搜索和扫描固件文件系统,无论是否被提取或挂载。使用这个工具可以做一个详细的安全审计。
在物联网IoT和万物互联IoE的时代有必要设计并使用高性能工具包进行渗透测试和安全审计。随着物联网设备数量的增加安全风险也在增加。为了物联网和万物互联部署有更高级别的安全和隐私有必要根据最新的协议和动态的流量定制化自由及开源的工具箱和软件包。
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/
作者:[Dr Kumar Gaurav][a]
选题:[lkxed][b]
译者:[tendertime](https://github.com/tendertime)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/dr-gaurav-kumar/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-154427-696x422.png
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-1-Key-components-in-PENIOT.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-153653-590x282.png

View File

@ -0,0 +1,44 @@
[#]: subject: "Nvidia Begins To Set The Foundation For Future Open And Parallel Coding"
[#]: via: "https://www.opensourceforu.com/2022/05/nvidia-begins-to-set-the-foundation-for-future-open-and-parallel-coding/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "zxcv545"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14565-1.html"
英伟达开始着手为未来的开放和并行编程建立基础
======
![](https://img.linux.net.cn/data/attachment/album/202205/09/080227sdxqcd3rxooc3cq3.jpg)
随着图形处理器在计算机里变得越来越常见,英伟达正在扩大与标准和开源社区的合作,以便于包括先前仅限于该公司开发工具的下游技术。虽然人们在 C++ 和 Fortran 等语言上投入了大量精力,但这些语言被认为在高度并行的计算机上执行代码落后于原生实现的编程语言。
英伟达结合了开放和专有库的 CUDA 并行编程框架影响了许多正在开放和主流化的技术。在 2007 年CUDA 作为一个为程序员开发基于 GPU 的系统的一系列编程工具和框架而推出。然而,随着 GPU 利用率在更多应用程序和领域中的增长CUDA 理念发生了转变。
英伟达因其在 GPU 上的主导地位而广为人知,但 CUDA 是这家以 1 万亿市值为目标的软件和服务供应商重塑品牌的核心。英伟达的长期目标是成为一个全栈提供商,专注于自动驾驶、量子计算、医疗保健、机器人、网络安全和量子计算等特定领域。
英伟达已经在特定领域创建了专用的 CUDA 库,以及企业可以使用的硬件和服务。其 CEO 黄仁勋在最近的 GPU 技术大会上宣布的 “AI 工厂” 概念,最能体现全栈战略。客户可以将应用程序放入英伟达的大型数据中心,从而获得针对特定行业或应用程序需求量身定制的定制 AI 模型。
英伟达可以通过两种方式从 AI 工厂原则中受益:利用 GPU 容量或利用特定领域的 CUDA 库。在英伟达 GPU 上,程序员可以使用 OpenCL 等开源并行编程框架。另一方面CUDA 将为那些愿意投资的人提供额外的最后一英里增长,因为其已调整为与英伟达的 GPU 密切运作。
虽然并行编程在高性能计算中很常见常见,但英伟达的目标是让其成为主流计算的标准。该公司正在协助实现一流工具的标准化,无论品牌、加速器类型或并行编程框架是什么,都可以编写可跨硬件平台移植的并行代码。
一方面,英伟达是 C++ 小组的成员,该小组正在为跨硬件同时执行可移植代码奠定基础。上下文可以是主要执行 IO 的 CPU 线程,也可以是执行高要求计算的 CPU 或 GPU 线程。英伟达特别致力于为 C++ 程序员提供异步和并行的标准语言和基础设施。
第一项工作侧重于内存模型,该模型已合并到 C++ 11 中但当并行性和并发性变得更加普遍时必须对其进行更新。C++ 11 的内存模型强调跨多核 CPU 的并发执行但它缺乏并行编程钩子。C++ 17 标准为更高级别的并行特性奠定了基础但真正的可移植性必须等待未来的标准。C++ 20 是当前标准,而 C++ 23 即将推出。
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/nvidia-begins-to-set-the-foundation-for-future-open-and-parallel-coding/
作者:[Laveesh Kocher][a]
选题:[lkxed][b]
译者:[zxcv545](https://github.com/zxcv545)
校对:[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/Nvidia_logo_angled_shutterstock.jpg

View File

@ -3,21 +3,22 @@
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14578-1.html"
包分析实时检查开源仓库中的包
软件包分析项目实时检查开源仓库中的包
======
![openssf-logo][1]
开源安全基金会 (OpenSSF) 发布了一个新工具的测试版,它可以对发布到著名开源仓库的所有包进行动态分析。包分析项目试图通过识别和警告用户任何恶意行为来保护开源包,目的是增强对开源软件的信任并加强软件供应链的安全性。
开源安全基金会OpenSSF发布了一个新工具的测试版,它可以对发布到著名开源仓库的所有软件包进行动态分析。软件包分析项目试图通过识别任何恶意行为并警告用户来保护开源软件包,目的是增强对开源软件的信任并加强软件供应链的安全性。
OpenSSF 说:“包分析项目旨在了解开源仓库上可用包的行为和功能:它们访问哪些文件,它们连接到哪些地址,以及它们运行哪些命令?”
OpenSSF 说:“软件包分析项目旨在了解开源仓库上可用软件包的行为和功能:它们访问哪些文件,它们连接到哪些地址,以及它们运行哪些命令?”
该基金会的 Caleb Brown 和 David A. Wheeler 补充说:“该项目还跟踪软件包随时间的行为变化,以确定以前安全的软件何时开始出现可疑行为。”
该程序在为期一个月的测试运行中发现了 200 多个发布到 PyPI 和 NPM 的恶意程序包,其中大多数流氓库依赖于依赖混淆和仿冒攻击。谷歌是 OpenSSF 的成员,它支持包分析计划,强调“在发布包之前审查包以确保用户安全”的重要性。
该程序在为期一个月的测试运行中发现了 200 多个发布到 PyPI 和 NPM 的恶意软件包,其中大多数流氓库依赖于依赖混淆和仿冒攻击。谷歌是 OpenSSF 的成员,它支持软件包分析计划,强调“在发布软件包之前审查软件包以确保用户安全”的重要性。
去年该公司的开源安全团队提出了软件工件的供应链级别SLSA架构以验证软件包的完整性并防止未经授权的更改。这一发展是在开源生态系统越来越多地被武器化用加密货币矿工和数据窃贼等恶意软件攻击开发者的情况下进行的。
@ -28,7 +29,7 @@ via: https://www.opensourceforu.com/2022/05/package-analysis-examines-packages-i
作者:[Laveesh Kocher][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/) 荣誉推出

View File

@ -3,26 +3,26 @@
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "Veryzzj"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14571-1.html"
ESI 集团同 ENSAM 合作,开源其”Inpsector“软件
ESI 集团同 ENSAM 合作,开源其 Inpsector 软件
======
![software][1]
Inspector 是一个可视化的交互式数据探索软件,能够对海量数据进行分析并提取相关信息,可用于预测性维修、网络安全、控制、机器学习算法分析等。
通过让更多的人使用 Inspector 软件让他们能够合作开发可靠灵活的方案以解决社区的技术问题和特殊需求ESI集团增加了对工业界和学术界的贡献。
通过让更多的人使用 Inspector 软件让他们能够合作开发可靠灵活的方案以解决社区的技术问题和特殊需求ESI 集团增加了对工业界和学术界的贡献。
作为 ESI 集团 和 ENSAM 之间持续赞助合作和共创伙伴关系的一部分ENSAM巴黎高科国立高等工程技术大学领导 Inspector 的增长和扩展。通过共同参与建设由新加坡CNRS协调的 Descartes 计划、CREATE-ID 国际研究讲座以及 ESI ENSAM 虚拟工程实验室,双方加强了合作。
作为 ESI 集团和 ENSAM 之间持续赞助合作和共创伙伴关系的一部分,将由 ENSAM<ruby>巴黎高科国立高等工程技术大学<rt>Ecole Nationale Supérieure dArts et Métiers</rt></ruby>)领导 Inspector 的增长和扩展。通过共同参与建设由新加坡国家科学研究中(CNRS协调的 Descartes 计划、CREATE-ID 国际研究讲座以及 ESI ENSAM 虚拟工程实验室,双方加强了合作。
这种开源方式有许多好处。首先社区能够以最有效的方式使用该软件科学界能够从根据用户需求定制的新功能以及安全方面的改进中受益。其次ESI 集团希望提供一个从软件中获利机会,包括汽车及航空在内的各种行业的客户已经证明了这一软件的可靠性。由于许多利益相关者的参与,“Inspector”将持续发展以应对社区需求。
这种开源方式有许多好处。首先社区能够以最有效的方式使用该软件科学界能够从根据用户需求定制的新功能以及安全方面的改进中受益。其次ESI 集团希望提供一个从软件中获利机会,包括汽车及航空在内的各种行业的客户已经证明了这一软件的可靠性。由于许多利益相关者的参与,Inspector 将持续发展以应对社区需求。
ESI 集团打算将其数据分析软件开源发布,得到了一些行业领导者和“Inspector”用户的兴趣和支持。例如CNS
ESI 集团打算将其数据分析软件开源发布,得到了一些行业领导者和 Inspector 用户的兴趣和支持,例如 CNS 就是其中一例
CNS 的总经理 Stephane Perrin 表示“ESI 集团这一决定证明了集团的先进技术对创新和科学生态系统的贡献。CNS 作为一家网络与安全的专业公司,我们用行动支持 Inspector 的未来。 除了将 Inspector 集成到我们的持续网络审计软件套件中外,不久后我们还将通过我们创新解决方案的业务部门为该软件提供支持。”
CNS 的总经理 Stephane Perrin 表示“ESI 集团这一决定证明了集团的先进技术对创新和科学生态系统的贡献。CNS 作为一家网络与安全的专业公司,我们用行动支持 Inspector 的未来。除了将 Inspector 集成到我们的持续网络审计软件套件中外,不久后我们还将通过我们创新解决方案的业务部门为该软件提供支持。”
--------------------------------------------------------------------------------
@ -31,7 +31,7 @@ via: https://www.opensourceforu.com/2022/05/esi-group-collaborates-with-ensam-op
作者:[Laveesh Kocher][a]
选题:[lkxed][b]
译者:[Veryzzj](https://github.com/Veryzzj)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,24 +3,24 @@
[#]: author: "Kevin Sonney https://opensource.com/users/ksonney"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14573-1.html"
我如何用 ZeroTier 管理自己的虚拟网络
ZeroTier你自己的虚拟骨干网
======
ZeroTier 是一个加密的虚拟网络主干,允许多台机器像在一个网络上一样通信。
![Person drinking a hat drink at the computer][1]
(图片由: [Jonas Leupe][2] 发布于 [Unsplash][3]
> ZeroTier 是一个加密的虚拟骨干网,允许多台机器像在一个网络上一样通信。
![](https://img.linux.net.cn/data/attachment/album/202205/10/170306m9263ud6wu23ul3e.jpg)
*自动化是现在的一个热门话题。在我作为网站可靠性工程师SRE的日常工作中我的部分职责是将尽可能多的重复性任务自动化。但是我们当中有多少人在日常生活、非工作生活中这样做呢 今年,我专注于自动化工作,以便我们可以专注于重要的事情。*
在实现一切自动化的同时,我遇到了一些远程站点的困难。我不是一个网络专家所以我开始研究我的选择。在研究了各种虚拟专用网络VPN、硬件端点、防火墙规则以及支持多个远程站点的所有东西后我感到困惑、暴躁并对这一切的复杂性感到沮丧。
在实现一切自动化的同时,我在一些远程站点上遇到了困难。我不是一个网络专家所以我开始研究我的选择。在研究了各种虚拟专用网络VPN、硬件端点、防火墙规则以及支持多个远程站点的所有东西后我感到困惑、暴躁并对这一切的复杂性感到沮丧。
然后我发现了 [ZeroTier][4]。ZeroTier 是一个加密的虚拟网络主干,允许多台机器像在一个网络上一样通信。代码全部是开源的,你可以自行托管控制器,或者使用 [ZeroTierOne][5] 服务,有免费或付费计划。我现在使用的是它们的免费计划,它很强大、稳固,而且非常稳定.
然后我发现了 [ZeroTier][4]。ZeroTier 是一个加密的虚拟骨干网,允许多台机器像在一个网络上一样通信。代码全部是开源的,你可以自行托管控制器,或者使用 [ZeroTierOne][5] 服务,有免费或付费计划。我现在使用的是它们的免费计划,它很强大、可靠,而且非常稳定。
因为我使用的是网络服务所以我不打算详细介绍运行控制器和根服务。ZeroTier 在他们的[文档][6]中对如何做到这一点有完整的参考,而且非常好。
因为我使用的是 Web 服务所以我不打算详细介绍运行控制器和根服务。ZeroTier 在他们的 [文档][6] 中对如何做到这一点有完整的参考,而且非常好。
在 Web 用户界面中创建了我自己的虚拟网络之后客户端的安装几乎是微不足道的。ZeroTier 有 APT、RPM、FreeBSD 和许多其他平台的软件包,所以让第一个节点上线不需要什么努力。
@ -31,14 +31,13 @@ $ sudo zerotier-cli info
200 info 469584783a 1.x.x ONLINE
```
你也可以使用 `zerotier-cli` 来获得连接和可用节点的列表,改变网络设置,离开网络。
你也可以使用 `zerotier-cli` 来获得连接和可用节点的列表,改变网络设置,以及离开网络。
![Image of Setting up a New Node][7]
图片由Kevin SonneyCC BY-SA 4.0
在加入一个网络后你必须批准该节点的访问可以通过网络控制台或调用应用程序编程接口API。这两种方法在 ZeroTier 网站上都有记录。连接两个节点后,无论你身在何处或位于防火墙的哪一侧,你都可以相互连接,就像你们在同一个建筑的同一个网络中。我的主要用例之一是[远程访问我的家庭助理设置][8],而不需要打开防火墙端口或将其暴露在互联网上(关于我的家庭助理设置和相关服务的更多信息,见后文)。
在加入一个网络后你必须批准该节点的访问可以通过网络控制台或调用应用程序编程接口API。这两种方法在 ZeroTier 网站上都有文档说明。连接两个节点后,无论你身在何处或位于防火墙的哪一侧,你都可以相互连接,就像你们在同一个建筑的同一个网络中。我的主要用例之一是 [远程访问我的家庭助理环境][8],而不需要打开防火墙端口或将其暴露在互联网上(关于我的家庭助理设置和相关服务的更多信息,见后文)。
我自己做的一件事是为内部 DNS 设置了一个 [Beta ZeroNDS 服务][9]。这为我管理自己的名称服务或为我所有的私人主机和 IP 地址创建公共记录节省了很多复杂性。我发现说明是非常直接的,并且能够在大约 5 分钟内为我的私人网络建立一个 DNS 服务器。每个客户必须允许 Zerotier 设置 DNS这在 GUI 客户中非常简单。要使它在 Linux 客户端上使用,请使用:
我自己做的一件事是为内部 DNS 设置了一个 [Beta ZeroNDS 服务][9]。这为我管理自己的名称服务或为我所有的私人主机和 IP 地址创建公共记录减少了很多复杂性。我发现操作说明非常简单直白,并且能够在大约 5 分钟内为我的私人网络建立一个 DNS 服务器。每个客户必须允许 Zerotier 设置 DNS这在 GUI 客户中非常简单。要使它在 Linux 客户端上使用,请使用:
```
$ sudo zerotier-cli setNETWORKID allowDNS=1
@ -61,7 +60,7 @@ $ sudo zerotier-cli peers
992fcf1db7 - PLANET RECT 79124 DI47 2813 195. 181.173.159/9993
```
我只提到了它所有功能的表面。ZeroTier 还允许在 ZeroTier 网络之间建立桥接,高级路由规则等。它们甚至有一个 [Terraform provider][10] 和一个[很棒的 Zerotier 文章][11]清单。到今天为止,我正在使用 ZeroTier 连接四个物理站点的机器,其中三个在 NAT 防火墙后面。Zerotier 的设置很简单,而且管理起来几乎完全不费力。
我只提到了它所有功能的表面。ZeroTier 还允许在 ZeroTier 网络之间建立桥接、高级路由规则等。它们甚至有一个 [Terraform 提供者][10] 和一个 [很棒的 Zerotier 资源][11] 清单。到今天为止,我正在使用 ZeroTier 连接四个物理站点的机器,其中三个在 NAT 防火墙后面。Zerotier 的设置很简单,而且管理起来几乎完全不费力。
--------------------------------------------------------------------------------
@ -70,7 +69,7 @@ via: https://opensource.com/article/22/5/zerotier-network
作者:[Kevin Sonney][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/) 荣誉推出

View File

@ -3,17 +3,18 @@
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14575-1.html"
开源开发者创建首个支持维护者的基金
开源开发者创建首个支持维护者的基金
======
![opensourceBETTERimage][1]
Appwrite 是一个为 Web、移动和 flutter 开发者提供的开源“<ruby>后端即服务<rt>Backend-as-a-Service</rt></ruby>BaaS平台。今天它宣布成立开源软件基金OSS 基金会),该基金会将在第一年,向那些为当下数字基础设施奠定基础,却没有得到补偿的开源维护者,提供 5 万美元的资助。
![](https://img.linux.net.cn/data/attachment/album/202205/11/091909u7kjzkp3tsf7p74s.jpg)
Appwrite 每年的开源基金将用于协助开源开发者、促进技术革新,并为各种开源开发方案创造知名度。每年,它都会对基金数额进行审查,以确保其继续满足社区的需求。目前已经开始接受申请,并且每年都会接受申请。获奖者将由 Appwrite 开发者关系团队选出。了解更多:[https://appwrite.io/oss-fund][2]。
Appwrite 是一个为 Web、移动和 flutter 开发者提供的开源“<ruby>后端即服务<rt>Backend-as-a-Service</rt></ruby>BaaS平台。今天它宣布成立<ruby>开源软件基金<rt>Open Source Software Fund</rt></ruby>OSS 基金),第一年该基金将向那些为当下数字基础设施奠定基础,却没有得到补偿的开源维护者,提供 5 万美元的资助。
Appwrite 每年的开源基金将用于协助开源开发者、促进技术革新,并为各种开源开发方案打造知名度。每年,它都会对基金数额进行审查,以确保其继续满足社区的需求。目前已经开始接受申请,并且每年都会接受申请。受资助者将由 Appwrite 开发者关系团队选出。了解更多:[https://appwrite.io/oss-fund][2]。
创始人兼 CEO Eldad Fux 说:“我懂这种感受,你在电脑前花费大量时间,把血汗和泪水投入到热爱的事物中,而且这些事物还在使全世界成千上万甚至数百万人受益。我一直就有这个想法:借用 Appwrite 的一些成功经验和投资,来支持其他像我一样的开发者和维护者,以回馈的方式来展望未来。希望我们的贡献能够带来改变。”
@ -30,7 +31,7 @@ via: https://www.opensourceforu.com/2022/05/open-source-developer-creates-first-
作者:[Laveesh Kocher][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,13 +3,17 @@
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14568-1.html"
Tails 5.0 发布:基于 Debian 11附带新的 Kleopatra 工具
Tails 5.0 发布:基于 Debian 11附带新的 Kleopatra 工具
======
> Tails 5.0 是一次令人印象深刻的升级,采用了 Debian 11 和一个新的工具,为用户配备了增强的安全和隐私。
![](https://news.itsfoss.com/wp-content/uploads/2022/05/tail-5-0-release.jpg)
Tails 是一个流行的 Linux 发行版,它专注于保护人们免受审查和监视,是 [注重隐私的 Linux 发行版][1] 之一。
你可以在任何地方使用它和 U 盘 来完成工作,而不用担心暴露你的信息。
@ -26,21 +30,21 @@ Tails 5.0 是最新的版本,它基于 Debian 11Bullseye构建。因此
![][3]
Kleopatra 是 [GnuPG][4] 的一个图形界面,它用于加密文本和文件。在 Tails 5.0 中Kleopatra 取代了 _OpenPGP_ 小程序 和 _Seahorse_ 工具。
Kleopatra 是 [GnuPG][4] 的一个图形界面,它用于加密文本和文件。在 Tails 5.0 中Kleopatra 取代了 OpenPGP 小程序 和 Seahorse 工具。
Kleopatra 只在一个软件包中就完成了这一切。并且相对而言Kleopatra 的维护更加积极,问题最少。
Kleopatra 只在一个软件包中就完成了这一切。并且相对而言Kleopatra 的维护更加活跃,问题最少。
#### 默认启用的附加软件
当使用持久化存储时,附加软件功能是默认启用的。
因此,你可以在短时间内快速配置想要的东西。
因此,你可以在短时间内快速配置想要的东西。
#### 对活动概览的改进
![][5]
在 Tails 5.0 中,你可以使用活动概览来访问你的窗口和应用程序。你只需点击屏幕左上角的<ruby>活动<rt>Activities</rt></ruby>按钮或按下键盘上的<ruby>超级<rt>Super</rt></ruby>LCTT 译注:在某些键盘上是 WIN 键)即可。
在 Tails 5.0 中,你可以使用活动概览来访问你的窗口和应用程序。你只需点击屏幕左上角的<ruby>活动<rt>Activities</rt></ruby>按钮或按下键盘上的<ruby>超级<rt>Super</rt></ruby>LCTT 译注:在某些键盘上是 WIN 键)即可。
你还可以在同一屏幕中搜索应用程序、文件和文件夹。
@ -48,11 +52,11 @@ Kleopatra 只在一个软件包中就完成了这一切。并且,相对而言
Tails 5.0 基于 Debian 11因此所有的基本软件都已升级包括
* Tor Browser to 11.0.11
* Tor 浏览器 to 11.0.11
* GNOME 3.38
* MAT to 0.12
* Audacity 2.4.2
* Disk Utility 3.38
* 磁盘工具 3.38
* GIMP 2.10.12
* LibreOffice 7.0
@ -66,7 +70,7 @@ Tails 5.0 基于 Debian 11因此所有的基本软件都已升级包括
你可以在官方网站下载最新的 Tails 5.0 ISO。
[Tails 5.0][7]
> **[Tails 5.0][7]**
注意,如果你已经在使用 Tails请不要执行自动升级。你需要按照 [官方说明][8] 进行手动升级。
@ -77,7 +81,7 @@ via: https://news.itsfoss.com/tails-5-0-release/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者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,88 @@
[#]: subject: "Announcing Fedora Linux 36"
[#]: via: "https://fedoramagazine.org/announcing-fedora-36/"
[#]: author: "Matthew Miller https://fedoramagazine.org/author/mattdm/"
[#]: collector: "lujun9972"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14579-1.html"
Fedora Linux 36 发布
======
![](https://img.linux.net.cn/data/attachment/album/202205/11/162224g07rzfbbniwbrgbn.jpg)
今天,我很高兴与大家分享一个消息,它是成千上万的 Fedora 项目贡献者辛勤工作的成果:我们的最新版本 —— Fedora Linux 36和大家见面了
### 由社区开发,为社区服务
通常当我写这些公告时我会谈论版本中的一些很棒的技术变化。但这一次我想把重点放在实现这些变化的社区上。Fedora 社区不是一群孤立地工作的人 —— 我们是朋友。事实上,这也是我们的“<ruby>四个理念<rt>Four Foundations</rt></ruby>”之一。
我们最新的“Fedora 朋友”之一Juan Carlos Araujo 在一篇 [Fedora 讨论帖子][2] 中说得很好:
> 除了功能、稳定性、特性、工作方式以及前沿性外,我认为决定一个发行版成败的还有那些无形的东西,比如文档和社区。而 Fedora 拥有这一切……尤其是无形的东西。
多年来,我们一直努力使 Fedora 成为一个包容和欢迎的社区。我们希望它成为经验丰富的贡献者和新手能一起工作的地方。就像我们希望 Fedora Linux 是一个既能吸引资深用户又能吸引新手的发行版一样。
说到 Fedora Linux让我们看看新版本的一些亮点。像往常一样在从旧版本升级之前请确保你的系统是最新的。这次尤其需要注意因为我们在 F34/F35 更新中修复了一些非常重要的与升级有关的错误。如果不先应用这些更新,系统升级可能会失败。
### 桌面改进
Fedora 工作站专注于桌面体验,尤其是面向那些希望获得“刚刚好”的 Linux 系统体验的用户。像往常一样Fedora 工作站采用最新的 GNOME 版本:[GNOME 42][3]。虽然 GNOME 42 不能完全解决生命、宇宙和一切问题,但它带来了很多改进。许多应用程序都被移植到了 GTK 4以改善风格和性能。它还附带了两个新的应用程序<ruby>文本编辑器<rt>Text Editor</rt></ruby><ruby>控制台<rt>Console</rt></ruby>。它们的名字起得很贴切,所以你可以猜出它们是干什么的。文本编辑器是新的默认文本编辑器,而控制台可以在软件仓库中下载。
如果你使用了英伟达的专有图形驱动,你的桌面会话现在将默认使用 Wayland 协议。这使你能够在使用现代桌面管理器时,充分利用硬件加速。
当然,我们生产的不仅仅是 “Editions”。[Fedora Spins][4] 和 [Labs][5] 针对不同的受众和使用场景。例如 [Fedora Comp Neuro][6] ,它为计算神经科学提供工具,以及 [Fedora LXQt][7],它提供一个轻量级的桌面环境。并且,我们附加了可选架构:[ARM AArch64、Power 和 S390x][8]。
### 针对系统管理员的改进
Fedora Linux 36 包含最新的 Ansible 版本。Ansible 5 将“引擎”拆分为 ansible-core 包和 [collection 包][9]。这使得维护更容易,并允许你只下载需要的集合。请参阅 [Ansible 5 迁移指南][10] 以了解如何更新你的 Playbook。
从 Fedora Server 36 开始Cockpit 提供了一个用于配置和持续管理 NFS 及 Samba 共享的模块。这使得管理员可以通过 Cockpit 网页界面(用于配置其他服务器属性)来管理网络文件共享。
### 其他更新
无论你使用 Fedora Linux 的哪个衍生版你都会得到开源世界所提供的最新成果。Podman 4.0 将在 Fedora Linux 36 中首次全面发布。它带来了大量变化和一个全新的网络栈。不过,它也带来了向下**不兼容**的 API 变化,所以请仔细阅读 [上游文档][11]。
遵循 Fedora 的 “<ruby>[争先][12]<rt>First</rt></ruby>” 理念,我们已经更新了关键的编程语言和系统库包,包括 Ruby 3.1、Golang 1.18 和 PHP 8.1。 
我们很高兴你能试用新版本!请访问 [https://getfedora.org](https://getfedora.org) 并立即下载它吧!或者,如果你正在使用 Fedora Linux请按照我们的 [简易升级说明][13] 进行。想了解更多关于 Fedora Linux 36 新功能的信息,请查看 [发行说明][14]。
### 虽然不大可能会出现问题……
但是,如果你真的遇到了问题,请访问我们的 [Ask Fedora][15] 用户支持论坛。这里有一个 [常见问题][16] 的分类。
### 谢谢大家
感谢在本次发布周期内为 Fedora 项目做出贡献的成千上万的人。Fedora 社区有你们,真好!请务必在 5 月 13 日至 14 日参加我们的 [虚拟发布派对][17]
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/announcing-fedora-36/
作者:[Matthew Miller][a]
选题:[lujun9972][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/mattdm/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2022/05/f36-final-816x345.jpg
[2]: https://discussion.fedoraproject.org/t/the-end-of-my-distro-hopping-days/38445
[3]: https://release.gnome.org/42/
[4]: https://spins.fedoraproject.org/
[5]: https://labs.fedoraproject.org/
[6]: https://labs.fedoraproject.org/en/comp-neuro/
[7]: https://spins.fedoraproject.org/en/lxqt/
[8]: https://alt.fedoraproject.org/alt/
[9]: https://koji.fedoraproject.org/koji/search?match=glob&type=package&terms=ansible-collection*
[10]: https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_5.html
[11]: https://podman.io/releases/2022/02/22/podman-release-v4.0.0.html
[12]: https://docs.fedoraproject.org/en-US/project/#_first
[13]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/
[14]: https://docs.fedoraproject.org/en-US/fedora/f36/release-notes/
[15]: https://ask.fedoraproject.org/
[16]: https://ask.fedoraproject.org/tags/c/common-issues/141/f36
[17]: https://hopin.com/events/fedora-linux-36-release-party/registration

View File

@ -3,13 +3,14 @@
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14576-1.html"
Ubuntu MATE 的负责人开发了一个漂亮的工具,专用于安装第三方 deb 包
======
这是一个有趣的工具,它可以替代 apt-get 来安装 Ubuntu 上的第三方 deb 包。它应该能帮为你节省时间!
> 这是一个有趣的工具,它可以替代 apt-get 来安装 Ubuntu 上的第三方 deb 包。它应该能帮为你节省时间!
![deb-get][1]
@ -17,7 +18,7 @@ Ubuntu MATE 的负责人 **Martin Wimpress** 为 Linux 用户带来了另一个
你可能不知道,这个 Martin 经常开发一些有趣的东西。去年,我们报道了 [Quickemu][2],它通过一个基于 QEMU 的 GUI 工具,帮助用户在 Linux 中创建虚拟机,使这个过程变得简单。
现在,他又带来了一个有趣的 “**deb-get**” 工具,其目标是模仿 “**apt-get**” 对第三方 .deb 包的支持。
现在,他又带来了一个有趣的 `deb-get` 工具,其目标是为第三方 .deb 包模仿 `apt-get` 的支持。
让我们来详细了解一下它吧!
@ -27,31 +28,31 @@ Ubuntu MATE 的负责人 **Martin Wimpress** 为 Linux 用户带来了另一个
如果我现在告诉你,你可以直接在终端中安装它们,就好像官方软件库中有它们一样呢?
这就是 deb-get 工具想要做到的事。
这就是 `deb-get` 工具想要做到的事。
通常,当在终端中安装一个软件包时,你会使用下面的命令:
```shell
```
sudo apt install packagename
```
或者
```shell
```
sudo apt-get install packagename
```
要使用这个工具,你只需把 `apt-get` 替换为 `deb-get`,其他格式保持不变。就像下面这样:
```shell
```
sudo deb-get install packagename
```
举个例子,通常,我们 [在 Linux 上安装 Vivaldi][5] 时需要添加 PPA 或下载 .deb 文件。
现在,如果你在系统上配置好了 deb-get 工具(**配置指南在本文末尾**),你就可以使用以下命令轻松地安装 Vivaldi
现在,如果你在系统上配置好了 `deb-get` 工具(**配置指南在本文末尾**),你就可以使用以下命令轻松地安装 Vivaldi
```shell
```
sudo deb-get install vivaldi-stable
```
@ -59,15 +60,15 @@ sudo deb-get install vivaldi-stable
另外,类似于 `apt-get upgrade`,你可以使用下面的命令来升级软件包:
```shell
```
sudo deb-get upgrade
```
**注意:**虽然 deb-get 使安装第三方 .deb 包变得很容易,但它是有限制的,你只能安装它提供的核实列表中的软件。不过,它已经支持许多 [必要的应用程序][7],相信支持的软件包列表很快就会扩大。
> **注意:** 虽然 `deb-get` 使安装第三方 .deb 包变得很容易,但它是有限制的,你只能安装它提供的核实列表中的软件。不过,它已经支持许多 [必要的应用程序][7],相信支持的软件包列表很快就会扩大。
你也可以使用下面的命令,检查你 deb-get 可用软件包的列表:
你也可以使用下面的命令,检查你 `deb-get` 可用软件包的列表:
```shell
```
sudo deb-get list
```
@ -75,11 +76,11 @@ sudo deb-get list
### 在基于 Ubuntu 的发行版上设置 deb-get
deb-get 工具适用于 Ubuntu 22.04 LTS我测试过也应该适用于其他基于 Ubuntu 的发行版。
`deb-get` 工具适用于 Ubuntu 22.04 LTS我测试过也应该适用于其他基于 Ubuntu 的发行版。
你可以使用下面的命令来安装它:
```shell
```
sudo apt install curl && curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get
```
@ -98,7 +99,7 @@ via: https://news.itsfoss.com/deb-get-ubuntu/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者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,73 @@
[#]: subject: "Good News! Docker Desktop is Now Here for Linux Users"
[#]: via: "https://news.itsfoss.com/docker-desktop-linux/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14586-1.html"
好消息Docker Desktop 现已支持 Linux
======
> 你现在可以在 Linux 上使用 Docker Desktop 无缝地创建容器了!它可在 Debian、Ubuntu 和 Fedora 上使用,并为 Arch Linux 提供了实验性支持。
![Docker][1]
Docker Desktop 是容器化应用程序的最简单的方法。有了它,你就不需要预先设置平台相关环境。
你只需要安装 Docker Desktop就可以开始了。Docker Desktop 附带了许多容器工具,如 Kubernetes、Docker Compose、BuildKit 和漏洞扫描工具。
此前,它可用于 Windows 和 macOS但不支持 Linux 平台。所以Linux 用户只好直接与 docker 引擎交互,以创建/测试他们的 docker 容器。
终于,现在所有 Linux 用户也可以通过 Docker Desktop 来方便地使用 Docker 了。
### Linux 版的 Docker Desktop 来了
在 Docker 团队关于未来开发/改进的公共路线图中Linux 版的 [Docker Desktop][2] 是呼声最高的。
有了 Linux 版的 Docker Desktop你终于可以不费吹灰之力地得到跨平台的 Docker 体验。
我在这里列出其中一些亮点。现在,作为一名使用 Linux 桌面的开发者,你可以:
* 使用 Docker <ruby>扩展<rt>Extension</rt></ruby> 访问新功能
* 与 Kubernetes 无缝集成
* 轻松地管理和组织 <ruby>数据卷<rt>volumes</rt></ruby><ruby>容器<rt>containers</rt></ruby><ruby>镜像<rt>images</rt></ruby>
### 在 Linux 上安装 Docker Desktop
值得注意的是,目前(在 Linux 上)安装 Docker Desktop 并不算超简单,但也不会十分复杂。
Docker 团队计划尽快改进安装和更新过程。
截至目前,你可以得到官方支持的 Ubuntu、Debian 和 Fedora 的 deb 或 rpm 包。支持 Arch Linux 的软件包还未开发完成,但已经可以下载来测试了。
如果你的桌面环境不是 GNOME 的话,你还需要安装 GNOME 终端。
在 Linux 上安装 Docker Desktop 对系统也有整体要求,包括:
* 64 位 Ubuntu 22.04 LTS、Ubuntu 21.10、Fedora 35、Fedora 36 或 Debian 11。
* 支持 KVM 虚拟化
* QEMU 5.2 或更新版本
* Systemd 系统守护工具
* GNOME 或 KDE 桌面环境
* 4GB 的内存
至于安装步骤,你可以参照文档中的 [官方说明][3] 进行。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/docker-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/docker-desktop-available-on-linux.jpg
[2]: https://www.docker.com/products/docker-desktop/
[3]: https://docs.docker.com/desktop/linux/install/

View File

@ -0,0 +1,102 @@
[#]: subject: "NVIDIA Takes a Big Step to Improve its GPU Experience on Linux"
[#]: via: "https://news.itsfoss.com/nvidia-open-source-linux/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "chunyang-wen"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14587-1.html"
英伟达在提升 Linux 上的 GPU 使用体验上迈出了一大步
=====
> 英伟达公司提升其 GPU 在 Linux 上的体验的重大开源计划终于来了。
![][1]
Linus Torvalds 听到这个消息一定会很高兴……
英伟达终于公布了提升 Linux 上的 GPU 使用体验的开源计划。
不过不幸的是,和你想象的可能不完全一样,你仍然会看到一些专有的驱动程序。
但是,它的意义不亚于甩掉专有驱动程序。
具体来说就是,**英伟达发布了开源的 GPU 内核模块,支持数据中心所用的 GPU 和消费级显卡GeForce/RTX**。
此外,它同时采用 GPL/MIT 两种许可证,听起来很棒,对吗?
### 此举对 Linux 桌面用户有什么帮助?
开源的 GPU 内核模块有助于改善内核和专有驱动程序之间的交互。
所以,此举对 **游戏玩家和开发者** 都有利,阻碍与英伟达专有驱动程序配合的问题最终会被消除。
发布公告中提到的技术收益包括:
> 开发者可以跟踪到具体的代码路径,并观察到内核事件调度是如何与他们的工作负载交互的,从而在调试时更快定位根本原因。此外,企业软件开发者可以将该驱动程序无缝地集成到他们为项目定制的 Linux 内核中。
>
> 来自 Linux 最终用户社区的投入和评价,将进一步提升英伟达 GPU 驱动程序的质量和安全性。
而从最终用户或者游戏玩家方面来看,你会发现安装将更便捷,整体会更安全。
Canonical 和 SUSE 会立即为他们的企业用户打包该开源内核模块,而其它厂商也会很快跟进。
当它可以用在桌面环境时Canonical 应该会在未来几个月内把这个内核模块放到 Ubuntu 22.04 LTS 版本中。其它的 Linux 发行版应该也会做相应的升级。
### 现在可以试用吗?
![][2]
这个开源的 GPU 内核模块的第一个版本是 R515它是作为 CUDA 工具集 11.7 一部分一起发布的开发驱动程序。
你可以从 [官方驱动下载页面][3] 或者从 [CUDA 下载页面][4] 找到。
虽然它被认为可用于数据中心生产环境,**但对于 GeForce 或者工作站 GPU 来说,还处于 alpha 阶段**。
事实上,在 Turing 和 Ampere 架构的 GPU 型号上可以使用这个驱动程序,以使用 Vulkan 和 Optix 中的 **多显示器、G-Sync、Nvidia RTX 光线追踪** 等功能。
然而,除非你想运行一些“实验性测试”,否则还是等几个月,以便直接从你的 Linux 发行版中获得为桌面用户发布的稳定版。
### 对 Nouveau 驱动程序开发也有益
不仅仅是提升了专有驱动程序的体验,公布的这个开源 GPU 内核代码也会改善 Nouveau 驱动。
正如发布公告所说:
> Nouveau 可以利用英伟达驱动程序所使用的同样固件,它公开了许多 GPU 功能,例如时钟管理、散热管理,可以为树内的 Nouveau 驱动程序带来新的特性。
>
> 请关注未来的驱动更新以及在 Github 上的合作。
英伟达公司提到并可能合作改进开源的英伟达驱动程序(即 Nouveau这真是太好了。
这也很好地表明了,他们确实希望为 Linux 提供一个更好的开源驱动程序版本。
### 开源 Nivida 驱动程序的未来?
毋容置疑,英伟达计划不断发布开源的 GPU 内核模块。
所以,尽管他们不会单独开源他们的驱动程序,但我们仍然可以寄希望于 Nouveau 释放所有的显卡特性。
想知道他们更多的计划,你可以参考 [官方的发布声明][5]。
*你如何看待这件事?英伟达最终会爱开源和 Linux 吗?嗯,至少这是一个好的开始。在下面的评论区分享你的想法吧。*
------
via: https://news.itsfoss.com/nvidia-open-source-linux/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[chunyang-wen](https://github.com/chunyang-wen)
校对:[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/linus-torvalds-nvidia.jpg
[2]: https://news.itsfoss.com/wp-content/uploads/2022/05/nvidia-opensource-linux-drivers-1024x576.jpg
[3]: https://www.nvidia.com/en-us/drivers/unix/
[4]: https://developer.nvidia.com/cuda-downloads
[5]: https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/

View File

@ -0,0 +1,81 @@
[#]: subject: "Red Hat Enterprise Linux 9 Announced as the Next-Gen Backbone of Enterprise IT"
[#]: via: "https://news.itsfoss.com/rhel-9-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Red Hat Enterprise Linux 9 Announced as the Next-Gen Backbone of Enterprise IT
======
RHEL 9 is the latest upgrade built using the CentOS Stream. Its the first major release under IBM as well.
![red hat 9][1]
Red Hat Enterprise Linux is undoubtedly a significant player in the open-source enterprise ecosystem.
If you didnt know, IBM acquired it for $34 Billion in 2019. So, it is safe to say that Red Hat Enterprise Linux 8 was the last major release before the acquisition.
There have been several updates to RHEL 8 over the years.
Finally, Red Hat announced the release of Red Hat Enterprise Linux 9 as the next-gen upgrade to power up enterprise IT infrastructure.
Here, let me highlight the key additions to the release.
### Red Hat Enterprise Linux 9: Whats New?
Note that the platform will be generally available in the coming weeks. But, now that it is officially announced, it should not take long.
If you are a Linux desktop user and arent concerned about cloud innovation, you will find numerous technical jargon. You will need to refer to Red Hats official documentation to know more about them.
If youre already using [CentOS Stream][2], you might have an idea about the RHEL 9 upgrade.
Yes, RHEL 9 is the first production release built from CentOS Stream.
As per the [press release][3], the new version focuses on two different capabilities:
* Comprehensive edge management, delivered as a service, to oversee and scale remote deployments with greater control and security functionality, encompassing zero-touch provisioning, system health visibility, and more responsive vulnerability mitigations all from a single interface.
* Automatic container roll-back with Podman, Red Hat Enterprise Linuxs integrated container management technology, which can automatically detect if a newly-updated container fails to start and then roll the container back to the previous working version.
Other key highlights include:
* A new image builder service.
* Integration with AWS Graviton processors.
* Improvements to address hardware-level security vulnerabilities like Spectre and Meltdown.
* Introducing a new integrity measurement architecture.
* WireGuard VPN technology is available as an unsupported technology preview.
* Improved automation.
* Python 3.9
* Node.js 16
* Linux Kernel 5.14
You can refer to [RHEL 9 beta release notes][4] to know more about the release.
### Wrapping Up
While the release may not feature the latest and greatest technologies, updated features and capabilities should help provide enhanced support for newer IT requirements.
The latest version should be available in the coming weeks via the Red Hat Customer portal and cloud provider marketplaces. You can check the pricing for Linux platforms on the [official site][5] if youre new.
Of course, you can also get free access to it for some systems to test through the [Red Hat Developer programs][6].
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/rhel-9-release/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [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/rhel-9-0.jpg
[2]: https://itsfoss.com/centos-stream-faq/
[3]: https://www.redhat.com/en/about/press-releases/red-hat-defines-new-epicenter-innovation-red-hat-enterprise-linux-9
[4]: https://www.redhat.com/en/blog/whats-new-rhel-90-beta
[5]: https://www.redhat.com/en/store/linux-platforms
[6]: https://developers.redhat.com/products/rhel/overview

View File

@ -0,0 +1,84 @@
[#]: subject: "Cloud service providers: How to keep your options open"
[#]: via: "https://opensource.com/article/22/5/cloud-service-providers-open"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Cloud service providers: How to keep your options open
======
No matter what level of openness your cloud service operates on, you have choices for your own environment.
![Sky with clouds and grass][1]
(Image by Flickr user: theaucitron, CC BY-SA 2.0)
For Linux users, there's a new kind of computer on the market, and it's known as the cloud.
As with the PC sitting on your desk, the laptop in your backpack, and the virtual private server you rent from your favorite web hosting service, you have your choice in vendors for cloud computing. The brand names are different than the hardware brands you've known over the years, but the concept is the same.
To run Linux, you need a computer. To run Linux on the cloud, you need a cloud service provider. And just like the hardware and firmware that ships with your computer, there's a spectrum for how open source your computing stack can be.
As a user of open source, I prefer my computing stack to be as open as possible. After a careful survey of the cloud computing market, I've developed a three-tier view of cloud service providers. Using this system as your guide, you can make intelligent choices about what cloud provider you choose.
### Open stack
A cloud that's fully open is a cloud built on open source technology from the ground up. So much cloud technology is open source, and has been from the beginning, that an open stack isn't all that difficult to accomplish, at least on the technical level. However, there are cloud providers reinventing the wheel in a proprietary way, which makes it easy to stumble into a cloud provider that's mixed a lot of closed source components in with the usual open source tooling.
If you're looking for a truly open cloud, look for a cloud provider providing [OpenStack][2] as its foundation. OpenStack provides the software infrastructure for clouds, including Software-Defined Networking (SDN) through Neutron, object storage through Swift, identity and key management, image services, and much more. Keeping with my hardware computer analogy, OpenStack is the "kernel" that powers the cloud.
I don't mean that literally, of course, but if your cloud provider runs OpenStack, that's reasonably as far down in the stack as you can go. From a user perspective, OpenStack is the reason your cloud exists and has a filesystem, network, and so on.
Sitting on top of OpenStack, there may be a web UI such as Horizon or Skyline, and there may be extra components such as [OpenShift][3] or OKD (not an acronym, but formerly known as OpenShift Origin). All of these are open source, and they help you run containers, which are minimalist Linux images with applications embedded within them.
Because OpenShift and OKD don't require OpenStack, that's the next tier of my cloud-based world view.
### Open platform
You don't always have a choice in which stack your cloud is running. Instead of OpenStack, your cloud might be running Azure, Amazon Web Services (AWS), or something similar.
Those are the "binary blobs" of the cloud world. You have no insight into how or why they work; all you know is that your cloud exists and has a filesystem, a networking stack, and so on.
Just as with desktop computing, you can have an "operating system" running on the box you've been given. Again, I'm not speaking literally, and there's a strong argument that OpenStack itself is essentially an operating system for the cloud. Still, it's usually OpenShift that a cloud user interacts with directly.
OpenShift is an open source "desktop" or workspace in which you can manage containers and pods with Podman and Kubernetes. It lets you run applications on the cloud much as you might launch an app on your laptop.
### Open standards
Last but not least, there are those situations when you have no choice in cloud service providers. You're put on a platform with a proprietary "kernel," a proprietary "operating system," and all that's left for you to influence is what you run inside that environment.
All is not lost.
When you're dealing with open source, you have the ability to construct your own scaffolding. You can choose what components you use inside your containers. You can and should design your working environment around open source tools, because if you do get to change service providers, you can take everything you've built with you.
This might mean implementing something already built into the (non-open) platform you're stuck on. For instance, your cloud provider might entice you with an API management system or continuous integration/continuous delivery (CI/CD) pipeline that's included in their platform "for free," but you know better. When a non-open application is offered as "free," it usually bears a cost in some other form. One cost is that once you start building on top of it, you'll be all the more hesitant to migrate away because you know that you'll have to leave behind everything you built.
Instead of using the closed "features" of your cloud provider, reimplement those services as open source for your own use. Run [Jenkins][4] and [APIMan][5] in containers. Find the problems your cloud provider claims to solve with proprietary code, then use an open source solution to ensure that, when you leave for an open provider, you can migrate the system you've built.
### Open source computing
For too many people, cloud computing is a place where open source is incidental. In reality, open source is as important on the cloud as it is on your personal computer and the servers powering the internet.
Look for open source cloud services.
When you're stuck with something that doesn't provide source code, be the one using open source in your cloud.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/cloud-service-providers-open
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/bus-cloud.png
[2]: https://opensource.com/resources/what-is-openstack
[3]: https://cloud.redhat.com/?intcmp=7013a000002qLH8AAM
[4]: https://opensource.com/article/19/9/intro-building-cicd-pipelines-jenkins
[5]: https://www.apiman.io/latest/

View File

@ -0,0 +1,56 @@
[#]: subject: "6 easy ways to make your first open source contribution with LibreOffice"
[#]: via: "https://opensource.com/article/22/5/first-open-source-contribution-libreoffice"
[#]: author: "Klaatu https://opensource.com/users/klaatu"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
6 easy ways to make your first open source contribution with LibreOffice
======
May 2022 is LibreOffice month. Here are some easy ways to make your first open source contribution.
![Dandelion zoomed in][1]
(Photo by Rob Tiller, CC BY-SA 4.0)
"Getting involved" with open source can seem a little confusing. Where do you go to get started? What if you don't know how to code? Who do you talk to? How does anybody know that you have contributed, and besides that does anybody care?
There are actually answers to questions like those (your choice, it's OK, nobody, you tell them, yes) but during the month of May 2022, there's one simple answer: LibreOffice. This month is a month of participation at LibreOffice and its governing body, The Document Foundation. They're inviting contributors of all sorts to help in any of six different ways, and only one of those has anything at all to do with code. No matter what your skill, you can probably find a way to help the world's greatest office suite.
### 6 ways to contribute to LibreOffice
Here's what you can do:
* Handy Helper: Go answer questions from other LibreOffice users on Ask LibreOffice. If you're an avid user of LibreOffice and think you have useful tips and tricks that will help others, this is the role you've been waiting for.
* First Responder: Bug reports are better when they're confirmed by more than just one user. If you're good at installing software (sometimes bug reports are for older versions than what you might be using normally) then go to the LibreOffice Bugzilla and find new bugs that have yet to be confirmed. When you find one, try to replicate what's been reported. Assuming you can do that, add a comment like “CONFIRMED on Linux (Fedora 35) and LibreOffice 7.3.2”.
* Drum Beater: Open source projects rarely have big companies funneling marketing money into promoting them. It would be nice if all the companies claiming to love open source would help out, but not all of them do, so why not lend your voice? Get on social media and tell your friends why you love LibreOffice, or what youre using it for (and of course add the #libreoffice hashtag.)
* Globetrotter: LibreOffice is already available in many different languages, but not literally all languages. And LibreOffice is actively being developed, so its interface translations need to be kept up-to-date. Get involved here.
* Docs Doctor: LibreOffice has online help as well as user handbooks. If you're great at explaining things to other people, or if you're great at proof-reading other people's documentation, then you should contact the docs team.
* Code Cruncher: You're probably not going to dive into LibreOffice's code base and make major changes right away, but that's not generally what projects need. If you know how to code, then you can join the developer community by following the instructions on this wiki page.
```
#libreoffice
```
### Free stickers
I didn't want to mention this up-front because obviously you should get involved with LibreOffice just because you're excited to get involved with a great open source project. However, you're going to find out eventually so I may as well tell you: By contributing to LibreOffice, you can sign up to get free stickers from The Document Foundation. Surely you've been meaning to [decorate your laptop][2]?
Don't get distracted by the promise of loot, though. If you're confused but excited to get involved with open source, this is a great opportunity to do so. And it is representative of how you get involved with open source in general: You look for something that needs to be done, you do it, and then you talk about it with others so you can get ideas for what you can do next. Do that often enough, and you find your way into a community. Eventually, you stop wondering how to get involved with open source, because you're too busy contributing!
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/first-open-source-contribution-libreoffice
作者:[Klaatu][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/klaatu
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/dandelion_zoom.jpg
[2]: https://opensource.com/business/15/11/open-source-stickers

View File

@ -0,0 +1,69 @@
[#]: subject: "My open source journey with C from a neurodiverse perspective"
[#]: via: "https://opensource.com/article/22/5/my-journey-c-neurodiverse-perspective"
[#]: author: "Rikard Grossman-Nielsen https://opensource.com/users/rikardgn"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
My open source journey with C from a neurodiverse perspective
======
I've learned that if you can find the method that works for you, no matter what teachers and other students may say, you can learn any open source skill that interests you.
![][1]
(Image by: pensource.com)
I was born in 1982, which in human years is only 40 years in the past (at the time of writing). In terms of computer development, it's eons ago. I got my first computer, a Commodore 64, when I was ten years old. Later, I got an Amiga, and by 13 I got an "IBM Compatible" (that's what they were called, then) PC.
In high school, I did a lot basic programming on my graphing calculator. In my second year of high school, I learned basic C programming, and in my third year I started doing more advanced C programming, using libraries, pointers, and graphics.
### My journey from programming student to teacher
In my college days, I learned Java and so [Java became my primary language][2]. I also made some C# programs for a device known as a personal data assistant (PDA), which were pre-cursors to the modern smart phone. Because Java is object-oriented, multi-platform, and made GUI programming easy, I thought I'd do most of my programming in Java from now on.
In college, I also discovered that I had a talent for teaching, so I helped others with programming, and they helped me with math when I took computer science. I took some courses on C programming, aimed at basic embedded programming and controlling measurement instruments in my later college years.
After turning 30, I've used C as a teaching tool for high school kids learning to program in C. I've also used [Fritzing][3] to teach high school kids how to program an Arduino. My interest in C programming was awakened again last year, when I got a job helping college students with learning differences in computing subjects.
### How I approach programming in C and other languages
All people learn differently. Being a neurodiverse person with Asperger's and ADHD, my learning process is sometimes quite different from others. Of course, everyone has different learning styles, though people who are neurodiverse might have a greater preference for a certain learning style than someone else.
I tend to think in both pictures and words. Personally I need to decode things step by step, and understand them, step by step. This makes C a suitable language for my learning style. When I learn code, I gradually incorporate the code into my mind by learning to see lines of code, like `#include <stdio.h>` in front of me. From what I've read from descriptions of other neurodiverse people on the internet, some of them seem to have this kind of learning style as well. We “internalize code”.
Some autistic people are a lot better at memorizing large chunks of code than me, but the process seems to be the same. When understanding concepts such as structs, pointers, pointers to pointers, matrices, and vectors, it's helpful for me to think in pictures, such as the ones you find in programming tutorials and books.
I like to use C to understand how things are done at a lower level, such as [file input and output (I/O)][4], networking programming, and so on. This doesn't mean I don't like libraries that handle tasks such as string manipulation or making arrays. I also like the ease of creating arrays and vectors in Java. However, for creating a user interface, though I have looked at such code in C, I prefer to use grapical editors, such as Netbeans and similar.
### My ideal C GUI open source tool for creating applications
If I imagine an ideal open source tool for creating a GUI using C, it would be something similar to [Netbeans][5] that, for example, making GTK-interfaces by dragging and dropping. It should also be possible to put C on buttons, and so on, to make them perform actions. There may be such a tool. I admittedly haven't looked around that much.
### Why I encourage young neurodiverse people to learn C
[Gaming][6] is a big industry. Some studies suggest neurodiverse kids may be even more focused on gaming than other kids. I would tell a neurodiverse high school or college kid that If you learn C, you may be able to learn the basics of, for example, writing efficient drivers for a graphics card, or to make efficient file I/O routines to optimize their favorite game. I would also be honest that it takes time and effort to learn, but that it's worth the effort. Once you learn it, you have greater control of things like hardware.
For learning C, I recommend a neurodiverse kid to install a beginner-friendly Linux distro, and then find some tutorials on the net. I also recommend breaking down things step by step, and drawing diagrams of, for example, pointers. I did that to better understand the concept, and it worked for me.
In the end, that's what it's about: Find a learning method that works for you, no matter what teachers and other students may say, and use it to learn the open source skill that interests you. It can be done, and anyone can do it.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/my-journey-c-neurodiverse-perspective
作者:[Rikard Grossman-Nielsen][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/rikardgn
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/images/life/computer_code_programming_laptop_0.jpg
[2]: https://opensource.com/article/20/12/learn-java
[3]: https://fritzing.org
[4]: https://opensource.com/article/21/3/file-io-c
[5]: https://opensource.com/article/20/12/netbeans
[6]: https://opensource.com/tags/gaming

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (hanszhao80)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
@ -74,7 +74,7 @@ via: https://opensource.com/article/21/1/kstars
作者:[Don Watkins][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
译者:[hanszhao80](https://github.com/hanszhao80)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,77 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (FYJNEVERFOLLOWS )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (8 tips for the Linux command line)
[#]: via: (https://opensource.com/article/21/1/linux-commands)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
8 tips for the Linux command line
======
Take advantage of all of the powers the almighty Linux command line has
to offer.
![Terminal command prompt on orange background][1]
The Linux command line provides a great deal of flexibility. Whether you are managing a server or launching a terminal window on a desktop system, the command line brings with it an extensive toolkit to update files, tweak system performance, and manage processes. The command line is where it's at.
Testifying to the command line's popularity, Opensource.com publishes many excellent articles about how to get the most out of your system. The following were some of Opensource.com's most-read articles about Linux commands in 2020:
### [Make Bash history more useful with these tips][2]
Bash is the default command line shell on most Linux systems. Seth Kenlon wrote this guide to help you with your Bash **history**. Manipulating history is usually less dangerous than it sounds, especially when you're curating it with a purpose in mind. Tell Bash what you want it to remember—or even rewrite history by deleting entries you don't want or need. Use your history sessions as required, and exercise your power over history wisely.
### [How I balance features and performance in my Linux terminal][3]
Ricardo Gerardi is a big fan of command line applications and spends a lot of his time working in a terminal. Ricardo invested some time to make the command line a pleasant environment to work in. Learn how to customize terminal apps, themes, and the prompt to create a feature-rich terminal that's easy on system resources.
### [Drop Bash for the fish shell to get beautiful defaults][4]
Matt Broberg recently let go of the default command line interpreter, Bash, in favor of fish, which proudly markets itself as "a command line shell for the '90s." The fish-themed "friendly interactive shell" creates a more enjoyable experience on the command line. Read Matt's article to learn more about how to get the most out of fish. If you're looking to move away from tinkering with your terminal, focus more on code, and have a more beautiful default shell, give fish a try.
### [10 ways to analyze binary files on Linux][5]
We work with binaries daily, yet we understand so little about them. Linux provides a rich set of tools that makes analyzing binaries a breeze! These simple commands and tools can help you sail through the task of analyzing binary files. Whatever your job role, knowing the basics about these tools will help you understand your Linux system better. Gaurav Kamathe covers some of the most popular Linux tools and commands to manage binaries, including **file**, **nm**, **strings**, and **hexdump**.
### [4 Markdown tools for the Linux command line][6]
When it comes to working with files formatted with Markdown, command line tools rule the roost. They're light, fast, powerful, and flexible, and most of them follow the Unix philosophy of doing one thing well. Scott Nesbitt reviews four command line utilities that can help you work more efficiently with Markdown files.
### [Improve Linux system performance with noatime][7]
Whenever I upgrade Linux on my home computer, I have a list of tasks I usually do. They've become habits over the years: I back up my files, wipe the system, reinstall from scratch, restore my files, then reinstall my favorite extra applications. I also make a few system tweaks. One tweak is **atime**, which is one of the three timestamps on every file on Linux. Turning off **atime** is a small but effective way to improve system performance. Here's what it is and why it matters.
### [Extend the life of your SSD drive with fstrim][8]
Over the past decade, solid-state drives (SSD) have brought about a new way of managing storage. SSDs have benefits like silent and cooler operation and a faster interface spec, compared to their elder spinning ancestors. Of course, new technology brings with it new methods of maintenance and management. Alan Formy-Duval wrote about a new **systemd** service to make your life easier when managing SSDs.
### [5 modern alternatives to essential Linux command line tools][9]
In our daily use of Linux/Unix systems, we use many command line tools to complete our work, and to help us understand and manage our systems better. Over the years, these tools have been modernized and ported to different systems. However, in general, they still follow their original idea, look, and feel. In recent years, the open source community has developed alternative tools that offer additional benefits. Ricardo Gerardi shows us how to gain new benefits by improving old command line tools with these five updated alternatives.
### Wrap up
Use these articles as a springboard to finding your own tips and tricks for the command line. Is there something missing from this list? Comment below, or better yet, submit an article of your own!
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/linux-commands
作者:[Jim Hall][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/terminal_command_linux_desktop_code.jpg?itok=p5sQ6ODE (Terminal command prompt on orange background)
[2]: https://opensource.com/article/20/6/bash-history-control
[3]: https://opensource.com/article/20/7/performance-linux-terminal
[4]: https://opensource.com/article/20/3/fish-shell
[5]: https://opensource.com/article/20/4/linux-binary-analysis
[6]: https://opensource.com/article/20/3/markdown-apps-linux-command-line
[7]: https://opensource.com/article/20/6/linux-noatime
[8]: https://opensource.com/article/20/2/trim-solid-state-storage-linux
[9]: https://opensource.com/article/20/6/modern-linux-command-line-tools

View File

@ -1,121 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (10 ways big data and data science impacted the world in 2020)
[#]: via: (https://opensource.com/article/21/1/big-data)
[#]: author: (Lauren Maffeo https://opensource.com/users/lmaffeo)
10 ways big data and data science impacted the world in 2020
======
Learn how open source data science languages, libraries, and tools are
helping us understand our world better by reviewing 2020's top 10 data
science articles on Opensource.com.
![Looking at a map][1]
Big datas one of many domains where open source shines. From open source alternatives for Google Analytics to new features in MySQL, 2020 brought several ways for open source enthusiasts to learn big data skills.
Get up to speed on how open source data science languages, libraries, and tools help us understand our world better by reviewing the top 10 data science articles published on Opensource.com last year. 
### The 7 most popular ways to plot data in Python
Once upon a time, Matplotlib was the lone way to make plots in Python. In recent years, Python's status as data science's de facto language changed that. We have a plethora of ways to plot data using Python today.
In this article, Shaun Taylor-Morgan walks through [seven ways to plot data in Python][2]. Don't worry if you're a Matplotlib user: It's covered, along with Seaborn, Plotly, and Bokeh. You'll find codes and charts per plotting library, plus some newcomers to the Python plotting field: Altair, Pygal, and pandas.
### Transparent, open source alternative to Google Analytics
Many websites use Google Analytics to track their activity metrics. Its status as a de facto tool leaves some to wonder if open source options exist. In this [overview of Plausible Analytics][3], Marko Saric proves they do.
If you want to compare Google Analytics against open source options, you will find Marko's article helpful. It's especially great if you're a website admin trying to comply with new data collection regulations, such as GDPR.
If you want to learn more about Plausible, you'll find links to Plausible's code and roadmap on GitHub in Marko's article.
### 5 MySQL features you need to know
After MySQL 8.0 came out in April 2018, its release cycle for new features updated to four times per year. Despite the more frequent deployments, many users don't know about [new MySQL features][4] that could save them hours of time.
In this March 2020 article, Dave Stokes shares five features that were new to MySQL. They include dual passwords, new shells, and better SQL support. But keep in mind that these updates are now close to a year old: There's a lot more to discover in MySQL since then!
### Using C and C++ for data science
Did you know that C and C++ are both strong options for data science projects? They're especially good choices to [run data science programs on the command line][5].
In this article, Cristiano L. Fontana uses [C99][6] and [C++11][7] to write a program that uses [Anscombe's quartet][8] dataset. The step-by-step instructions include reading data from a CSV file, interpolating data, and plotting results to an image file.
### Using Python to visualize COVID-19 projections
The COVID-19 pandemic brought an influx of data to the proverbial forefront. In this article, Anurag Gupta shows how to use Python to [project COVID-19 cases and deaths][9] across India.
Anurag walks through downloading and parsing data, selecting and plotting data for India, and creating an animated horizontal bar graph. If you're interested in the complete script, you'll find a link at the end of this article.
### How I use Python to map the global spread of COVID-19
If you want to [track the spread of COVID-19 globally][10], you can use Python, pandas, and Plotly to do it. In this article, Anurag Gupta explains how you can use them to clean and visualize raw data.
Using screenshots to help, Anurag shares how to load data into a pandas DataFrame; clean and modify the DataFrame; and visualize the spread in Plotly. The complete code yields a gorgeous graph, and the article ends with a link to download and run it.
### 3 ways to use PostgreSQL commands
In this follow-up to his article on getting started with PostgreSQL, Greg Pittman shares how he uses PostgreSQL commands to [keep his grocery shopping list updated][11].
Whether you want to do per-item entry or bring order to complex tables, Greg explains how to create the commands you need. He also shows how to output your lists once you're ready to print them.
No matter how long your shopping list is, PostgreSQL commands—especially the WHERE parameter—can bring ease to your life beyond programming.
### Using Python and GNU Octave to plot data
Python is data science's language du jour, but how can you use it for specific tasks? In this article, Cristiano Fontana shares how to [write a program in Python and GNU Octave][12].
Cristiano walks through each step to read data from a CSV file, interpolate the data with a straight line, and plot the result to an image file. From printing output and reading data to plotting the outcome, Fontana's step-by-step guidelines explain the whole process in Python and GNU Octave.
### Fast data modeling with JavaScript
Want a way to [model data in a few minutes][13]? In this article, Szymon shares how to do it using less than 15 lines of JavaScript code.
It really is that simple: You merely need to create a class and use the defaultsDeep function in the [Lodash][14] JavaScript library. Szymon shows this process using screenshots and code samples.
It keeps your data in one place, avoids code repetition, and is fully customizable. If you want to try out the code in this article, Szymon links to it in CodeSandbox at the end.
### How to process real-time data with Apache tools
We process so much data today that storing data for analysis later might be impossible soon. Teams that handle failure prediction and other context-sensitive data need to get this information in real time, before it hits a database. Luckily, you can do this with Apache tools.
In this article, Simon Crosby explains how Apache Spark—a unified analytics engine—can [process large datasets][15] in real time at scale. For instance, "Spark Streaming breaks data into mini-batches that are each independently analyzed by a Spark model or some other system," he writes.
If Apache's not your thing, Simon presents other open source options. Flink, Beam, and Stanza—along with Apache-licensed SwimOS and Hazelcast—are just a few of your choices.
### What do you want to know?
What would you like to know about big data and data science? Please share your suggestions for article topics in the comments. And if you have something interesting to share about data science, please consider [writing an article][16] for Opensource.com.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/big-data
作者:[Lauren Maffeo][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/lmaffeo
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png?itok=L0BQHgjr (Looking at a map)
[2]: https://opensource.com/article/20/4/plot-data-python
[3]: https://opensource.com/article/20/5/plausible-analytics
[4]: https://opensource.com/article/20/3/mysql-features
[5]: https://opensource.com/article/20/2/c-data-science
[6]: https://en.wikipedia.org/wiki/C99
[7]: https://en.wikipedia.org/wiki/C%2B%2B11
[8]: https://en.wikipedia.org/wiki/Anscombe%27s_quartet
[9]: https://opensource.com/article/20/4/python-data-covid-19
[10]: https://opensource.com/article/20/4/python-map-covid-19
[11]: https://opensource.com/article/20/2/postgresql-commands
[12]: https://opensource.com/article/20/2/python-gnu-octave-data-science
[13]: https://opensource.com/article/20/5/data-modeling-javascript
[14]: https://en.wikipedia.org/wiki/Lodash
[15]: https://opensource.com/article/20/2/real-time-data-processing
[16]: https://opensource.com/how-submit-article

View File

@ -1,123 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Why KubeEdge is my favorite open source project of 2020)
[#]: via: (https://opensource.com/article/21/1/kubeedge)
[#]: author: (Mike Calizo https://opensource.com/users/mcalizo)
Why KubeEdge is my favorite open source project of 2020
======
KubeEdge is a workload framework for edge computing.
![Tips and gears turning][1]
I believe [edge computing][2], which "brings computation and data storage closer to the location where it is needed to improve response times and save bandwidth," is the next major phase of technology adoption. The widespread use of mobile devices and wearable gadgets and the availability of free city-wide WiFi in some areas create a lot of data that can provide many advantages if used properly. For example, this data can help people fight crime, learn about nearby activities and events, find the best sale price, avoid traffic, and so on.
[Gartner][3] says the rapid growth in mobile application adoption requires an edge infrastructure to use the data from these devices to further progress and improve quality of life. Some of the brightest minds are looking for ways to use the rich data generated from our mobile devices. Take the COVID-19 pandemic, for example. Edge computing can gather data that can help fight the spread of the virus. In the future, mobile devices might warn people about the potential for community infection by providing live updates to their devices based on processing and serving data collected from other devices (using artificial intelligence and machine learning).
In defining an edge-computing architecture, one thing is constant: The platform must be flexible and scalable to deploy a smart or intelligent application on it and in your core data center. As an open source advocate and user, this naturally triggers my interest in using open source technology to harness the power of edge computing.
This is why [KubeEdge][4], which delivers container orchestration to resource-constrained environments, is my favorite open source project of 2020. This extremely lightweight but fully compliant Kubernetes distribution was created to run cloud-native workloads in Internet of Things (IoT) devices at the network's edge.
![Edge computing architecture][5]
(Michael Calizo, [CC BY-SA 4.0][6])
### Challenges of collecting and consuming data
Having a rich data source does not mean anything if the data isn't used properly. This is the dilemma that edge computing is trying to solve. To be able to use data properly, the platform must be flexible enough to handle the demand required to collect, process, and serve data and make smart decisions about whether the data can be processed at the edge or must be processed in a regional or core data center.
The challenges when moving data from the edge location to a core data center include:
* Network reliability
* Security
* Resource constraints
* Autonomy
A Kubernetes platform on the edge, such as KubeEdge, meets these requirements, as it provides the scalability, flexibility, and security needed to perform data collection, processing, and serving. KubeEdge is open source, lightweight, and easy to deploy, has low resource requirements, and provides everything you need.
### KubeEdge's architecture
KubeEdge was [introduced in 2018][7] at KubeCon in Seattle. In 2019, it was accepted as a Cloud Native Computing Foundation (CNCF) sandbox project, which gives it wider public visibility and puts it on the way to becoming a full-fledged CNCF-sanctioned project.
![KubeEdge architecture][8]
(©2019 [The New Stack][9])
In a nutshell, KubeEdge has two main components or parts: Cloud and Edge.
#### Cloud
The Cloud part is where the Kubernetes Master components, the EdgeController, and edge CloudHub reside.
* **CloudHub** is a communication interface module in the Cloud component. It acts as a caching mechanism to ensure changes in the Cloud part are sent to the Edge caching mechanism (EdgeHub).
* The **EdgeController** manages the edge nodes and performs reconciliation between edge nodes.
#### Edge
The Edge part is where edge nodes are found. The most important Edge components are:
* **EdgeHub** is a communication interface module to the Cloud component.
* **Edged** does the kubelet's job, including managing pod lifecycles and other related kubelet jobs on the nodes.
* **MetaManager** makes sure that all node-level metadata is persistent.
* **DeviceTwin** is responsible for syncing devices between the Cloud and the Edge components.
* **EventBus** handles the internal edge communications using Message Queuing Telemetry Transport (MQTT).
### Kubernetes for edge computing
Kubernetes has become the gold standard for orchestrating containerized workloads on premises and in public clouds. This is why I think KubeEdge is the perfect solution for using edge computing to reap the benefits of the data that mobile technology generates.
The KubeEdge architecture allows autonomy on an edge computing layer, which solves network latency and velocity problems. This enables you to manage and orchestrate containers in a core data center as well as manage millions of mobile devices through an autonomous edge computing layer. This is possible because of how KubeEdge uses a combination of the message bus (in the Cloud and Edge components) and the Edge component's data store to allow the edge node to be independent. Through caching, data is synchronized with the local datastore every time a handshake happens. Similar principles are applied to edge devices that require persistency.
KubeEdge handles machine-to-machine (M2M) communication differently from other edge platform solutions. KubeEdge uses [Eclipse Mosquitto][10], a popular open source MQTT broker from the Eclipse Foundation. Mosquitto enables WebSocket communication between the edge and the master nodes. Most importantly, Mosquitto allows developers to author custom logic and enable resource-constrained device communication at the edge.
**[Read next: [How to explain edge computing in plain terms][11]]**
Security is a must for M2M communication; it is the only way you can trust sensitive data sent through the web. Currently, KubeEdge supports Secure Production Identity Framework for Everyone ([SPIFFE][12]), ensuring that:
1. Only verifiable nodes can join the edge cluster.
2. Only verifiable workloads can run on the edge nodes.
3. Short-lived certificates are used with rotation policies.
### Where KubeEdge is heading
KubeEdge is in the very early stage of adoption, but it is gaining popularity due to its flexible approach to making edge computing communications secure, reliable, and autonomous so that they won't be affected by network latency.
KubeEdge is a flexible, vendor-neutral, lightweight, heterogeneous edge computing platform. This enables it to support use cases such as data analysis, video analytics, machine learning, and more. Because it is vendor-neutral, KubeEdge allows big cloud players to use it.
These are the reasons why KubeEdge is my favorite project of 2020. There is much more to come, and I expect to see more contributions from the community for wider adoption. I am excited about its future of enabling us to consume available data and use it for the greater good.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/kubeedge
作者:[Mike Calizo][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/mcalizo
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/gears_devops_learn_troubleshooting_lightbulb_tips_520.png?itok=HcN38NOk (Tips and gears turning)
[2]: https://en.wikipedia.org/wiki/Edge_computing
[3]: https://www.gartner.com/smarterwithgartner/what-edge-computing-means-for-infrastructure-and-operations-leaders/
[4]: https://kubeedge.io/en/
[5]: https://opensource.com/sites/default/files/uploads/edgecomputing.png (Edge computing architecture)
[6]: https://creativecommons.org/licenses/by-sa/4.0/
[7]: https://www.youtube.com/watch?v=nWFkxuRvZ7U&feature=youtu.be&t=1755
[8]: https://opensource.com/sites/default/files/uploads/kubeedge-architecture.png (KubeEdge architecture)
[9]: https://thenewstack.io/kubeedge-extends-the-power-of-kubernetes-to-the-edge/
[10]: https://mosquitto.org/
[11]: https://enterprisersproject.com/article/2019/7/edge-computing-explained-plain-english
[12]: https://spiffe.io/

View File

@ -1,180 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (What's new with ownCloud in 2021?)
[#]: via: (https://opensource.com/article/21/2/owncloud)
[#]: author: (Martin Loschwitz https://opensource.com/users/martinloschwitzorg)
What's new with ownCloud in 2021?
======
The open source file sharing and syncing platform gets a total overhaul
based on Go and Vue.js and eliminates the need for a database.
![clouds in the sky with blue pattern][1]
The newest version of ownCloud, [ownCloud Infinite Scale][2] (OCIS), is a complete rewrite of the venerable open source enterprise file sharing and syncing software stack. It features a new backend written in Go, a frontend in Vue.js, and many changes, including eliminating the need for a database. This scalable, modular approach replaces ownCloud's PHP, database, and [POSIX][3] filesystem and promises up to 10 times better performance.
Traditionally, ownCloud was centered around the idea of having a POSIX-compatible filesystem to store data uploaded by users—different versions of the data and trash files, as well as configuration files and logs. By default, an ownCloud user's files were found in a path on their ownCloud instance, like `/var/www` or `/srv/www` (a web server's document root).
Every admin who has maintained an ownCloud instance knows that they grow massive; today, they usually start out much larger than ownCloud was originally designed for. One of the largest ownCloud instances is Australia's Academic and Research Network (AARNet), a company that stores more than 100,000 users' data.
### Let's 'Go' for microservices
ownCloud's developers determined that rewriting the codebase with [Go][4] could bring many advantages over PHP. Even when computer programs appear to be one monolithic piece of code, most are split into different components internally. The web servers that are usually deployed with ownCloud (such as Apache) are an excellent example. Internally, one function handles TCP/IP connections, another function might handle SSL, and yet another piece of code executes the requested PHP files and delivers the results to the end user. All of those events must happen in a certain order.
ownCloud's developers wanted the new version to serve multiple steps concurrently so that events can happen simultaneously. Software capable of handling requests in parallel doesn't have to wait around for one process to finish before the next can begin, so they can deliver results faster. Concurrency is one of the reasons Go is so popular in containerized micro-architecture applications.
With OCIS, ownCloud is adapting to an architecture centered around the principle of microservices. OCIS is split into three tiers: storage, core, and frontend. I'll look at each of these tiers, but the only thing that really matters to people is overall performance. Users don't think about software in tiers; they just want the software to work well and work quickly.
### Tier 1: Storage
The storage available to the system is ownCloud's lowest tier. Performance also brings scalability; large ownCloud instances must be able to cope with the load of thousands of clients and add additional disk space if the existing storage fills up.
Like so many other concepts today, object stores and scalable storage weren't available when ownCloud was designed. Administrators now are used to having more choices, so ownCloud permits outsourcing physical storage device handling to an external solution. While S3-based object storage, Samba-based storage, and POSIX-compatible filesystem options are still supported in OCIS, the preferred way to deploy it is with [Earth Observing System][5] (EOS) storage.
#### EOS to the rescue
EOS is optimized for very low latency when accessing files. It provides disk-based storage to clients through the [XRootD][6] framework but also permits other protocols to access files. ownCloud uses EOS's HTTP protocol extension to talk to the storage solution (using the HTTPS protocol). EOS also allows almost "infinite" scalability. For instance, [CERN's EOS setup][7] includes more than 200PB of disk storage and continues to grow.
By choosing EOS, ownCloud eliminated several shortcomings of traditional storage solutions:
* EOS doesn't have a typical single point of failure.
* All relevant services are run redundantly, including the ability to scale out and add instances of all existing services.
* EOS promises to never run out of actual disk space and comes with built-in redundancy for stored data.
For large environments, ownCloud expects the administrator to deploy an EOS instance with OCIS. In exchange for the burden of maintaining a separate storage system, the admin gets the benefit of not having to worry about the OCIS instance's scalability and performance.
#### What about small setups?
This hints at ownCloud's assumed use case for OCIS: It's no longer a small business all-in-one server nor a small home server. ownCloud's strategy with OCIS targets large data centers. For small or home office setups, EOS is likely to be excessive and overly demanding for a single admin to manage. OCIS serves small setups through the [Reva][8] framework, which enables support for S3, Samba, and even POSIX-compatible filesystems. This is possible because EOS is not hardcoded into OCIS. Reva can't provide the same feature set as EOS, but it accomplishes most of the needs of end users and small installations.
### Tier 2: Core
OCIS's second tier is (due to Go) more of a collection of microservices than a singular core. Each one is responsible for handling a single task in the background (e.g., scanning for viruses). Basically, all of OCIS's functionality results from a specific microservice's work, like authenticating requests using OpenID Connect against an identity provider. In the end, that makes it a simple task to connect existing user directories—such as Active Directory Federation Services (ADFS), Azure AD, or Lightweight Directory Access Protocol (LDAP)—to ownCloud. For those that do not have an existing identity provider, ownCloud ships its own instance, effectively making ownCloud maintain its own user database.
### Tier 3: Frontend
OCIS's third tier, the frontend, is what the vendor calls ownCloud Web. It's a complete rewrite of the user interface and is based on the Vue.js JavaScript framework. Like the OCIS core, the web frontend is written based on microservices principles and hence allows better performance and scalability. The developers also used the opportunity to give the web interface a makeover; compared to previous ownCloud versions, the OCIS web interface looks smaller and slicker.
OCIS's developers did an impressive job complying with modern software design principles. The fundamental problem in building applications according to the microservices approach is making the environment's individual components communicate with each other. APIs can come to the rescue, but that means every micro component must have its own well-defined API interface.
Luckily, there are existing tools to take that burden off developers' shoulders, most notably [gRPC][9]. The idea behind gRPC is to have a set of predefined APIs that trigger actions in one component from within another.
### Other notable design changes
#### Tackling network traffic with Traefik
This new application design brings some challenges to the underlying network. OCIS's developers chose the [Traefik][10] framework to tackle them. Traefik automatically load-balances different instances of microservices, manages automated SSL encryption, and allows additional deployments of firewall rules.
The split between the backend and the frontend add advantages to OCIS. In fact, the user's actions triggered through ownCloud Web are completely decoupled from the ownCloud engine performing the task in the backend. If a user manually starts a virus check on files stored in ownCloud, they don't have to wait for the check to finish. Instead, the check happens in the background, and the user sees the results after the check is completed. This is the principle of concurrency at work.
#### Extensions as microservices
Like other web services, ownCloud supports extending its capabilities through extensions. OCIS doesn't change this, but it promises to tackle a well-known problem, especially with community apps. Apps of unknown origin can cause trouble in the server, hamper updates, and negatively impact the server's overall performance.
OCIS's new, gRPC-based architecture makes it much easier to create extensions alongside existing microservices. Because the API is predefined by gRPC, developers merely need to create a microservice featuring the desired functionality that can be controlled by gRPC. Traefik, on a per-case basis, ensures that newly deployed add-ons are automatically added to the existing communication mesh.
#### Goodbye, MySQL!
ownCloud's switch to gRPC and microservices eliminates the need for a relational database. Instead, components that need to store metadata do it on their own. Due to Reva and the lack of a MySQL dependency, the complexity of running ownCloud in small environments is reduced considerably—an especially welcome bonus for maintainers of large-scale data centers, but nice for admins of any size installation.
### Getting OCIS up and running
ownCloud published a technical preview of OCIS 1.0 in December 2020, [shipping it][11] as a Docker container and binaries. More examples of getting it running are linked in the deployment section of its [GitHub repository][12].
#### Install with Docker
Getting OCIS up and running with Docker containers is easy, although things can get complicated if you're new to EOS. Docker images for OCIS are available on [Docker Hub][13]. Look for the Latest tag for the current master branch.
Any standard virtual machine from one of the big cloud providers or any entry-level server in a data center that uses a standard Linux distribution should be sufficient, provided the system has a container runtime installed.
Assuming you have Docker or Podman installed, the command to start OCIS is simple:
```
`$ docker run --rm -ti -p 9200:9200 owncloud/ocis`
```
That's it! OCIS is now waiting at your service on localhost port 9200. Open a web browser and navigate to `http://localhost:9200` to check it out.
The demo accounts and passwords are `einstein:relativity`, `marie:radioactivity`, and `richard:superfluidity`. Admin accounts are `moss:vista` and `admin:admin`. If OCIS runs on a server with a resolvable hostname, it can request an SSL certificate from Let's Encrypt using Traefik.
![OCIS contains no files at first login][14]
(Martin Loschwitz, [CC BY-SA 4.0][15])
![OCIS user management interface][16]
(Martin Loschwitz, [CC BY-SA 4.0][15])
#### Install with binary
As an alternative to Docker, there also is a pre-compiled binary available. Thanks to Go, users can [download the latest binaries][17] from the Master branch.
OCIS's binary edition expects `/var/tmp/ocis` as the default storage location, but you can change that in its configuration. You can start the OCIS server with:
```
`$ ./ocis server`
```
Here are some of the subcommands available through the `ocis` binary:
* `ocis health` runs a health check. A result greater than 0 indicates an error.
* `ocis list` prints all running OCIS extensions.
* `ocis run foo` starts a particular extension (`foo`, in this example).
* `ocis kill foo` stops a particular extension (`foo`, in this example).
* `ocis --help` prints a help message.
The project's GitHub repository contains full [documentation][11].
### Setting up EOS (it's complicated)
Following ownCloud's recommendations to deploy OCIS with EOS for large environments requires some additional steps. EOS not only adds required hardware and increases the whole environment's complexity, but it's also a slightly bigger task to set it up. CERN provides concise [EOS documentation][18] (linked from its [GitHub repository][19]), and ownCloud offers a [step-by-step guide][20].
In a nutshell, users have to get and start EOS and OCIS containers; configure LDAP support; and kill home, users', and metadata storage before starting them with the EOS configuration. Last but not least, the accounts service needs to be set up to work with EOS. All of these steps are "docker-compose" commands documented in the GitHub repository. The Storage Backends page on EOS also provides information on verification, troubleshooting, and a command reference for the built-in EOS shell.
### Weighing risks and rewards
ownCloud Infinite Scale is easy to install, faster than ever before, and better prepared for scalability. The modular design, with microservices and APIs (even for its extensions), looks promising. ownCloud is embracing new technology and developing for the future. If you run ownCloud, or if you've been thinking of trying it, there's never been a better time. Keep in mind that this is still a technology preview and is on a rolling release published every three weeks, so please report any bugs you find.
Jos Poortvliet shares some of his favorite uses for the open source self-hosted storage platform.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/2/owncloud
作者:[Martin Loschwitz][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/martinloschwitzorg
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003601_05_mech_osyearbook2016_cloud_cc.png?itok=XSV7yR9e (clouds in the sky with blue pattern)
[2]: https://owncloud.com/infinite-scale/
[3]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
[4]: https://golang.org/
[5]: https://en.wikipedia.org/wiki/Earth_Observing_System
[6]: https://xrootd.slac.stanford.edu/
[7]: https://eos-web.web.cern.ch/eos-web/
[8]: https://reva.link/
[9]: https://en.wikipedia.org/wiki/GRPC
[10]: https://opensource.com/article/20/3/kubernetes-traefik
[11]: https://owncloud.github.io/ocis/getting-started/
[12]: https://github.com/owncloud/ocis
[13]: https://hub.docker.com/r/owncloud/ocis
[14]: https://opensource.com/sites/default/files/uploads/ocis5.png (OCIS contains no files at first login)
[15]: https://creativecommons.org/licenses/by-sa/4.0/
[16]: https://opensource.com/sites/default/files/uploads/ocis2.png (OCIS user management interface)
[17]: https://download.owncloud.com/ocis/ocis/
[18]: https://eos-docs.web.cern.ch/
[19]: https://github.com/cern-eos/eos
[20]: https://owncloud.github.io/ocis/storage-backends/eos/

View File

@ -2,7 +2,7 @@
[#]: via: (https://itsfoss.com/nvidia-linux-mint/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (hwlife)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,87 +0,0 @@
[#]: subject: (WebAssembly Security, Now and in the Future)
[#]: via: (https://www.linux.com/news/webassembly-security-now-and-in-the-future/)
[#]: author: (Dan Brown https://training.linuxfoundation.org/announcements/webassembly-security-now-and-in-the-future/)
[#]: collector: (lujun9972)
[#]: translator: (hanszhao80)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
WebAssembly Security, Now and in the Future
======
_By Marco Fioretti_
**Introduction**
WebAssembly is, as we [explained recently][1], a binary format for software written in any language, designed to eventually run on any platform without changes. The first application of WebAssembly is inside web browsers, to make websites faster and more interactive. Plans to push WebAssembly beyond the Web, from servers of all sorts to the Internet of Things (IoT), create as many opportunities as security issues. This post is an introductory overview of those issues and of the WebAssembly security model.
**WebAssembly is like JavaScript**
Inside web browsers, WebAssembly modules are managed by the same Virtual Machine (VM) that executes JavaScript code. Therefore, WebAssembly may be used to do much of the same harm that is doable with JavaScript, just more efficiently and less visibly. Since JavaScript is plain text that the browser will compile, and WebAssembly a ready-to-run binary format, the latter runs faster, and is also harder to scan (even by antivirus software) for malicious instructions.
This “code obfuscation” effect of WebAssembly has been already used, among other things, to pop up unwanted advertising or to open fake “tech support” windows that ask for sensitive data. Another trick is to automatically redirect browsers to “landing” pages that contain the really dangerous malware.
Finally, WebAssembly may be used, just like JavaScript, to “steal” processing power instead of data. In 2019, an [analysis of 150 different Wasm modules][2] found out that about _32%_ of them were used for cryptocurrency-mining.
**WebAssembly sandbox, and interfaces**
WebAssembly code runs closed into a [sandbox][3] managed by the VM, not by the operating system. This gives it no visibility of the host computer, or ways to interact directly with it. Access to system resources, be they files, hardware or internet connections, can only happen through the WebAssembly System Interface (WASI) provided by that VM.
The WASI is different from most other application programming interfaces, with unique security characteristics that are truly driving the adoption of WASM on servers/edge computing scenarios, and will be the topic of the next post. Here, it is enough to say that its security implications greatly vary, when moving from the web to other environments. Modern web browsers are terribly complex pieces of software, but lay on decades of experience, and of daily tests from billions of people. Compared to browsers, servers or IoT devices are almost uncharted lands. The VMs for those platforms will require extensions of WASI and thus, in turn, surely introduce new security challenges.
**Memory and code management in WebAssembly**
Compared to normal compiled programs, WebAssembly applications have very restricted access to memory, and to themselves too. WebAssembly code cannot directly access functions or variables that are not yet called, jump to arbitrary addresses or execute data in memory as bytecode instructions.
Inside browsers, a Wasm module only gets one, global array (“linear memory”) of contiguous bytes to play with. WebAssembly can directly read and write any location in that area, or request an increase in its size, but thats all. This linear memory is also separated from the areas that contain its actual code, execution stack, and of course the virtual machine that runs WebAssembly. For browsers, all these data structures are ordinary JavaScript objects, insulated from all the others using standard procedures.
**The result: good, but not perfect**
All these restrictions make it quite hard for a WebAssembly module to misbehave, but not impossible.
The sandboxed memory that makes it almost impossible for WebAssembly to touch what is _outside_ also makes it harder for the operating system to prevent bad things from happening _inside_. Traditional memory monitoring mechanisms like [“stack canaries”][4], which notice if some code tries to mess with objects that it should not touch, [cannot work there][5].
The fact that WebAssembly can only access its own linear memory, but directly, may also _facilitate_ the work of attackers. With those constraints, and access to the source code of a module, it is much easier to guess which memory locations could be overwritten to make the most damage. It also seems [possible][6] to corrupt local variables, because they stay in an unsupervised stack in the linear memory.
A 2020 paper on the [binary security of WebAssembly][5] noted that WebAssembly code can still overwrite string literals in supposedly constant memory. The same paper describes other ways in which WebAssembly may be less secure than when compiled to a native binary, on three different platforms (browsers, server-side applications on Node.js, and applications for stand-alone WebAssembly VMs) and is recommended further reading on this topic.
In general, the idea that WebAssembly can only damage whats inside its own sandbox can be misleading. WebAssembly modules do the heavy work for the JavaScript code that calls them, exchanging variables every time. If they write into any of those variables code that may cause crashes or data leaks in the unsafe JavaScript that called WebAssembly, those things _will_ happen.
**The road ahead**
Two emerging features of WebAssembly that will surely impact its security (how and how much, its too early to tell) are [concurrency][7], and internal garbage collection.
Concurrency is what allows several WebAssembly modules to run in the same VM simultaneously. Today this is possible only through JavaScript [web workers][8], but better mechanisms are under development. Security-wise, they may bring in [“a lot of code… that did not previously need to be”][9], that is more ways for things to go wrong.
A [native Garbage Collector][10] is needed to increase performance and security, but above all to use WebAssembly outside the well-tested Java VMs of browsers, that collect all the garbage inside themselves anyway. Even this new code, of course, may become another entry point for bugs and attacks.
On the positive side, general strategies to make WebAssembly even safer than it is today also exist. Quoting again from [here][5], they include compiler improvements, _separate_ linear memories for stack, heap and constant data, and avoiding to compile as WebAssembly modules code in “unsafe languages, such as C”.
The post [WebAssembly Security, Now and in the Future][11] appeared first on [Linux Foundation Training][12].
--------------------------------------------------------------------------------
via: https://www.linux.com/news/webassembly-security-now-and-in-the-future/
作者:[Dan Brown][a]
选题:[lujun9972][b]
译者:[hanszhao80](https://github.com/hanszhao80)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://training.linuxfoundation.org/announcements/webassembly-security-now-and-in-the-future/
[b]: https://github.com/lujun9972
[1]: https://training.linuxfoundation.org/announcements/an-introduction-to-webassembly/
[2]: https://www.sec.cs.tu-bs.de/pubs/2019a-dimva.pdf
[3]: https://webassembly.org/docs/security/
[4]: https://ctf101.org/binary-exploitation/stack-canaries/
[5]: https://www.usenix.org/system/files/sec20-lehmann.pdf
[6]: https://spectrum.ieee.org/tech-talk/telecom/security/more-worries-over-the-security-of-web-assembly
[7]: https://github.com/WebAssembly/threads
[8]: https://en.wikipedia.org/wiki/Web_worker
[9]: https://googleprojectzero.blogspot.com/2018/08/the-problems-and-promise-of-webassembly.html
[10]: https://github.com/WebAssembly/gc/blob/master/proposals/gc/Overview.md
[11]: https://training.linuxfoundation.org/announcements/webassembly-security-now-and-in-the-future/
[12]: https://training.linuxfoundation.org/

View File

@ -16,12 +16,10 @@ Whenever I start learning a new programming language, I focus on defining variab
To help me practice a new programming language, I like to write a few test programs. One sample program I often write is a simple "guess the number" game, where the computer picks a number between one and 100 and asks me to guess it. The program loops until I guess correctly. This is a very simple program, as you can see using pseudocode like this:
1. The computer picks a random number between 1 and 100
2. Loop until I guess the random number
1. The computer reads my guess
2. It tells me if my guess is too low or too high
* The computer picks a random number between 1 and 100
* Loop until I guess the random number
+ The computer reads my guess
+ It tells me if my guess is too low or too high
Recently, Opensource.com ran an article series that wrote this program in different languages. This was an interesting opportunity to compare how to do the same thing in each language. I also found that most programming languages do things similarly, so learning the next programming language is mostly about learning its differences.
@ -33,59 +31,242 @@ For example, look at how these different programming languages implement the maj
You can see a lot of similarities here. Most of the programming languages generate a random number with a function like `rand()` that you can put into a range on your own. Other languages use a special function where you can specify the range for the random value.
C | Using the Linux `getrandom` system call:
`getrandom(&randval, sizeof(int), GRND_NONBLOCK); number = randval % maxval + 1;`
C
```c
// Using the Linux `getrandom` system call
getrandom(&randval, sizeof(int), GRND_NONBLOCK);
number = randval % maxval + 1;
Using the standard C library:
`number = rand() % 100 + 1;`
---|---
C++ | `int number = rand() % 100+1;`
Rust | `let random = rng.gen_range(1..101);`
Java | `private static final int NUMBER = r.nextInt(100) + 1;`
Groovy | `int randomNumber = (new Random()).nextInt(100) + 1`
JavaScript | `const randomNumber = Math.floor(Math.random() * 100) + 1`
awk | `randomNumber = int(rand() * 100) + 1`
Lua | `number = math.random(1,100)`
// Using the standard C library
number = rand() % 100 + 1;
```
C++
```cpp
int number = rand() % 100+1;
```
Rust
```rust
let random = rng.gen_range(1..101);
```
Java
```java
private static final int NUMBER = r.nextInt(100) + 1;
```
Groovy
```groovy
int randomNumber = (new Random()).nextInt(100) + 1
```
JavaScript
```javascript
const randomNumber = Math.floor(Math.random() * 100) + 1
```
awk
```awk
randomNumber = int(rand() * 100) + 1
```
Lua
```lua
number = math.random(1,100)
```
### Loop until I guess the random number
Loops are usually done with a flow-control block such as `while` or `do-while`. The JavaScript implementation doesn't use a loop and instead updates the HTML page "live" until the user guesses the correct number. Awk supports loops, but it doesn't make sense to loop to read input because awk is based around data pipelines, so it reads input from a file instead of directly from the user. 
C | `do { … } while (guess != number); `
---|---
C++ | `do { …  } while ( number != guess ); `
Rust | `for line in std::io::stdin().lock().lines() { … break; } `
Java | `while ( guess != NUMBER ) { … } `
Groovy | `while ( … ) { … break; } `
Lua | ` while ( player.guess ~= number ) do … end`
C
```c
do {
} while (guess != number);
```
C++
```cpp
do {
} while ( number != guess );
```
Rust
```rust
for line in std::io::stdin().lock().lines() {
break;
}
```
Java
```java
while ( guess != NUMBER ) {
}
```
Groovy
```groovy
while ( … ) {
break;
}
```
Lua
```lua
while ( player.guess ~= number ) do
end
```
### The computer reads my guess
Different programming languages handle input differently. So there's some variation here. For example, JavaScript reads values directly from an HTML form, and awk reads data from its data pipeline.
C | `scanf("%d", &guess); `
---|---
C++ | `cin >> guess; `
Rust | `let parsed = line.ok().as_deref().map(str::parse::<i64>); if let Some(Ok(guess)) = parsed { … } `
Java | `guess = player.nextInt(); `
Groovy | `response = reader.readLine() int guess = response as Integer `
JavaScript | `let myGuess = guess.value `
awk | `guess = int($0) `
Lua | `player.answer = io.read() player.guess = tonumber(player.answer) `
C
```c
scanf("%d", &guess);
```
C++
```cpp
cin >> guess;
```
Rust
```rust
let parsed = line.ok().as_deref().map(str::parse::<i64>);
if let Some(Ok(guess)) = parsed {
}
```
Java
```java
guess = player.nextInt();
```
Groovy
```groovy
response = reader.readLine()
int guess = response as Integer
```
JavaScript
```javascript
let myGuess = guess.value
```
awk
```awk
guess = int($0)
```
Lua
```lua
player.answer = io.read()
player.guess = tonumber(player.answer)
```
### Tell me if my guess is too low or too high
Comparisons are fairly consistent across these C-like programming languages, usually through an `if` statement. There's some variation in how each programming language prints output, but the print statement remains recognizable across each sample.
C | `    if (guess < number) {       puts("Too low");     }     else if (guess > number) {       puts("Too high");     } …   puts("That's right!");``  `
---|---
C++ | `  if ( guess > number) { cout << "Too high.\n" << endl; }   else if ( guess < number ) { cout << "Too low.\n" << endl; }   else {     cout << "That's right!\n" << endl;     exit(0);   }``  `
Rust | `                _ if guess < random => println!("Too low"),                 _ if guess > random => println!("Too high"),                 _ => {                     println!("That's right");                     break;                 } `
Java | `            if ( guess > NUMBER ) {                 System.out.println("Too high");             } else if ( guess < NUMBER ) {                 System.out.println("Too low");             } else {                 System.out.println("That's right!");                 System.exit(0);             } `
Groovy | `                  if (guess < randomNumber)                       print 'too low, try again: '                   else if (guess > randomNumber)                       print 'too high, try again: '                   else {                       println "that's right"                       break                   } `
JavaScript | `      if (myGuess === randomNumber) {         feedback.textContent = "You got it right!"       } else if (myGuess > randomNumber) {         feedback.textContent = "Your guess was " + myGuess + ". That's too high. Try Again!"       } else if (myGuess < randomNumber) {        feedback.textContent = "Your guess was " + myGuess + ". That's too low. Try Again!"      } `
awk | `            if (guess < randomNumber) {                 printf "too low, try again:"             } else if (guess > randomNumber) {                 printf "too high, try again:"             } else {                 printf "that's right\n"                 exit             } `
Lua | `  if ( player.guess > number ) then     print("Too high")   elseif ( player.guess < number) then     print("Too low")   else     print("That's right!")     os.exit()   end `
C
```c
if (guess < number) {
puts("Too low");
}
else if (guess > number) {
puts("Too high");
}
puts("That's right!");
```
C++
```cpp
if ( guess > number) { cout << "Too high.\n" << endl; }
else if ( guess < number ) { cout << "Too low.\n" << endl; }
else {
cout << "That's right!\n" << endl;
exit(0);
}
```
Rust
```rust
_ if guess < random => println!("Too low"),
_ if guess > random => println!("Too high"),
_ => {
println!("That's right");
break;
}
```
Java
```java
if ( guess > NUMBER ) {
System.out.println("Too high");
} else if ( guess < NUMBER ) {
System.out.println("Too low");
} else {
System.out.println("That's right!");
System.exit(0);
}
```
Groovy
```groovy
if (guess < randomNumber)
print 'too low, try again: '
else if (guess > randomNumber)
print 'too high, try again: '
else {
println "that's right"
break
}
```
JavaScript
```javascript
if (myGuess === randomNumber) {
feedback.textContent = "You got it right!"
} else if (myGuess > randomNumber) {
feedback.textContent = "Your guess was " + myGuess + ". That's too high. Try Again!"
} else if (myGuess < randomNumber) {
feedback.textContent = "Your guess was " + myGuess + ". That's too low. Try Again!"
}
```
awk
```awk
if (guess < randomNumber) {
printf "too low, try again:"
} else if (guess > randomNumber) {
printf "too high, try again:"
} else {
printf "that's right\n"
exit
}
```
Lua
```lua
if ( player.guess > number ) then
print("Too high")
elseif ( player.guess < number) then
print("Too low")
else
print("That's right!")
os.exit()
end
```
### What about non-C-based languages?
@ -93,12 +274,51 @@ Programming languages that are not based on C can be quite different and require
As an example of how these other programming languages can differ, I'll compare just the "if" statement that sees if one value is less than or greater than another and prints an appropriate message to the user.
Racket | `  (cond [(> number guess) (displayln "Too low") (inquire-user number)]         [(< number guess) (displayln "Too high") (inquire-user number)]         [else (displayln "Correct!")])) `
---|---
Python | `    if guess < random:         print("Too low")     elif guess > random:         print("Too high")     else:         print("That's right!") `
Elixir | `    cond do       guess < num ->         IO.puts "Too low!"         guess_loop(num)       guess > num ->         IO.puts "Too high!"         guess_loop(num)       true ->         IO.puts "That's right!"     end `
Bash | `        [ "0$guess" -lt $number ] && echo "Too low"         [ "0$guess" -gt $number ] && echo "Too high" `
Fortran | `      IF (GUESS.LT.NUMBER) THEN          PRINT *, 'TOO LOW'       ELSE IF (GUESS.GT.NUMBER) THEN          PRINT *, 'TOO HIGH'       ENDIF `
Racket
```racket
(cond [(> number guess) (displayln "Too low") (inquire-user number)]
[(< number guess) (displayln "Too high") (inquire-user number)]
[else (displayln "Correct!")]))
```
Python
```python
if guess < random:
print("Too low")
elif guess > random:
print("Too high")
else:
print("That's right!")
```
Elixir
```elixir
cond do
guess < num ->
IO.puts "Too low!"
guess_loop(num)
guess > num ->
IO.puts "Too high!"
guess_loop(num)
true ->
IO.puts "That's right!"
end
```
Bash
```bash
[ "0$guess" -lt $number ] && echo "Too low"
[ "0$guess" -gt $number ] && echo "Too high"
```
Fortran
```fortran
IF (GUESS.LT.NUMBER) THEN
PRINT *, 'TOO LOW'
ELSE IF (GUESS.GT.NUMBER) THEN
PRINT *, 'TOO HIGH'
ENDIF
```
### Read more
@ -106,26 +326,22 @@ This "guess the number" game is a great introductory program when learning a new
Learn how to write the "guess the number" game in C and C-like languages:
* [C][2], by Jim Hall
* [C++][3], by Seth Kenlon
* [Rust][4], by Moshe Zadka
* [Java][5], by Seth Kenlon
* [Groovy][6], by Chris Hermansen
* [JavaScript][7], by Mandy Kendall
* [awk][8], by Chris Hermansen
* [Lua][9], by Seth Kenlon
* [C][2], by Jim Hall
* [C++][3], by Seth Kenlon
* [Rust][4], by Moshe Zadka
* [Java][5], by Seth Kenlon
* [Groovy][6], by Chris Hermansen
* [JavaScript][7], by Mandy Kendall
* [awk][8], by Chris Hermansen
* [Lua][9], by Seth Kenlon
And in non-C-based languages:
* [Racket][10], by Cristiano L. Fontana
* [Python][11], by Moshe Zadka
* [Elixir][12], by Moshe Zadka
* [Bash][13], by Jim Hall
* [Fortran][14], by Jim Hall
* [Racket][10], by Cristiano L. Fontana
* [Python][11], by Moshe Zadka
* [Elixir][12], by Moshe Zadka
* [Bash][13], by Jim Hall
* [Fortran][14], by Jim Hall
--------------------------------------------------------------------------------

View File

@ -1,148 +0,0 @@
[#]: subject: (What's new with Drupal in 2021?)
[#]: via: (https://opensource.com/article/21/4/drupal-updates)
[#]: author: (Shefali Shetty https://opensource.com/users/shefalishetty)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
What's new with Drupal in 2021?
======
Its newest initiatives include decoupled menus, automated updates, and
other usability-focused updates.
![Computer screen with files or windows open][1]
The success of open source projects is largely carried by the pillars of the community and group collaborations. Without putting a stake in the ground to achieve strategic initiatives, an open source project can lose focus. Open source strategic initiatives should aim at solving impactful problems through collaboration involving the project's stakeholders.
### The why and how of Drupal's strategic initiatives
As one of the leading open source projects, [Drupal][2]'s success largely thrives on implementing its various proposed strategic initiatives. Drupal's focus on strategic initiatives and continuous innovation since Drupal 7 brought huge architectural changes in Drupal 8, 9, and beyond that offer a platform for continuous innovation on the web and an easy upgrade path for end users.
The vision for Drupal's core strategic initiatives is determined by Dries Buytaert, Drupal project lead. These initiatives are backed by community collaboration and lead to significant developments driven by forces like:
* Collaboration with the core maintainers
* Survey data and usability studies
* A vision to build a leading open source digital experience platform
* Relevancy in the market by improving editorial, developer, and customer experiences
* Validation by broader community discussions and collaborations
Once initiatives are **proposed**, they move ahead to the **planned** initiatives stage, where each initiative is nurtured with detailed plans and goals by a strong team of contributors. When an initiative passes through this stage, it moves to the **active** initiatives stage. Here's where the initiatives take structure and come alive.
Some of the most successful Drupal 8 initiatives, like Twig and Bigpipe, did not follow the traditional process. However, following a thoughtfully planned process will avoid a lot of [bike-shedding][3].
### Popular past initiatives
In 2011, at DrupalCon Chicago, Dries announced that Drupal 8 would feature core initiatives that would cause big changes to Drupal's architecture. To support the transition, each initiative would have a few leads involved in decision-making and coordination with Dries. Some popular initiatives included:
* **Configuration Management Initiative (CMI):** This was the first key initiative announced at the 2011 DrupalCon. The idea was to offer site builders more powerful, flexible, and traceable configuration handling in Drupal 8 core. As planned, the Configuration Manager module is now a Drupal 8 core module that allows deploying configurations between different environments easily.
* **Web Services and Context Core Initiative:** This initiative aimed at embracing a modern web and turned Drupal into a first-class REST server with a first-class content management system (CMS) on top of it. The result? Drupal is now a competent REST server providing the ability to manage content entities through HTTP requests. This is part of why Drupal has been the leading CMS for decoupled experiences for several years.
* **Layout Initiative:** This initiative's focus was on improving and simplifying the site-building experience by non-technical users, like site builders and content authors. This initiative came alive in Drupal 8 by introducing the Layout Discovery API (a Layout plugin API) in v.8.4 and the Layout Builder module (a complete layout management solution) in v.8.5 core.
* **Media Initiative:** The Media Initiative was proposed to launch a rich, intuitive, easy-to-use, API-based media solution with extensible media functionalities in the core. This resulted in bringing in the Media API (which manages various operations on media entities) and Media Library (a rich digital asset management tool) to Drupal 8 core.
* **Drupal 9 Readiness Initiative:** The focus of this initiative was to get Drupal 9 ready by June 3, 2020, so that Drupal 7 and 8 users had at least 18 months to upgrade. Since Drupal 9 is just a cleaned-up version of the last version of Drupal 8 (8.9), the idea was to update dependencies and remove any deprecated code. And as planned, Drupal 9 was successfully released on June 3, 2020. Drupal 8-compatible modules were ported to Drupal 9 faster than any major version upgrade in Drupal's history, with more than 90% of the top 1,000 modules already ported (and many of the remaining now obsolete).
### The new strategic initiatives
Fast-forward to 2021, where everything is virtual. DrupalCon North America will witness a first-of-its-kind "Initiative Days" event added to the traditional DrupalCon content. Previously, initiatives were proposed during the [Driesnote][4] session, but this time, initiatives are more interactive and detailed. DrupalCon North America 2021 participants can learn about an initiative and participate in building components and contributing back to the project.
#### The Decoupled Menus Initiative
Dries proposed the Decoupled Menus Initiative in his keynote speech during DrupalCon Global 2020. While this initiative's broader intent is to make Drupal the best decoupled CMS, to accomplish the larger goal, the project chose to work on decoupled menus as a first step because menus are used on every project and are not easy to implement in decoupled architectures.
The goals of this initiative are to build APIs, documentation, and examples that can:
* Give JavaScript front-end developers the best way to integrate Drupal-managed menus into their front ends.
* Provide site builders and content editors with an easy-to-use experience to build and update menus independently.
This is because, without web services for decoupled menus in Drupal core, JavaScript developers are often compelled to hard-code menu items. This makes it really hard for a non-developer to edit or remove a menu item without getting a developer involved. The developer needs to make the change, build the JavaScript code, and then deploy it to production. With the Decoupled Menus Initiative, the developer can easily eliminate all these steps and many lines of code by using Drupal's HTTP APIs and using JavaScript-focused resources.
The bigger idea is to establish patterns and a roadmap that can be adapted to solve other decoupled problems. At DrupalCon 2021, on the [Decoupled Menus Initiative day][5], April 13, you can both learn about where it stands and get involved by building custom menu components and contributing them back to the project.
#### The Easy Out-Of-The-Box Initiative
During DrupalCon 2019 in Amsterdam, CMS users were asked about their perceptions of their CMS. The research found that beginners did not favor Drupal as much as intermediate- and expert-level users. However, it was the opposite for other CMS users; they seemed to like their CMS less over time.
![CMS users' preferences][6]
([Driesnote, DrupalCon Global 2020][7])
Hence, the Easy Out-Of-The-Box Initiative's goal is to make Drupal easy to use, especially for non-technical users and beginners. It is an extension of the great work that has been done for Layouts, Media, and Claro. Layout Builder's low-code design flexibility, Media's robust management of audio-visual content, and Claro's modern and accessible administrative UI combine to empower less-technical users with the power Drupal has under the hood.
This initiative bundles all three of these features into one initiative and aims to provide a delightful user experience. The ease of use can help attract new and novice users to Drupal. On April 14, DrupalCon North America's [Easy Out-Of-The-Box Initiative day][8], the initiative leads will discuss the initiative and its current progress. Learn about how you can contribute to the project by building a better editorial experience.
#### Automated Updates Initiative
The results of a Drupal survey in 2020 revealed that automated updating was the most frequently requested feature. Updating a Drupal site manually can be tedious, expensive, and time-consuming. Luckily, the initiative team has been on this task since 2019, when the first prototype for the Automated Update System was developed as a [contributed module][9]. The focus of the initiative now is to bring this feature into Drupal core. As easy as it may sound, there's a lot more work that needs to go in to:
* Ensure site readiness for a safe update
* Integrate composer
* Verify updates with package signing
* Safely apply updates in a way that can be rolled back in case of errors
In its first incarnation, the focus is on Drupal Core patch releases and security updates, but the intent is to support the contributed module ecosystem as well.
The initiative intends to make it easier for small to midsized businesses that sometimes overlook the importance of updating their Drupal site or struggle with the manual process. The [Automated Updates Initiative day][10] is happening on April 15 at DrupalCon North America. You will get an opportunity to know more about this initiative and get involved in the project.
#### Drupal 10 Readiness Initiative
With the release of Drupal 10 not too far away (as early as June 2022), the community is gearing up to welcome a more modern version of Drupal. Drupal now integrates more third-party technologies than ever. Dependencies such as Symfony, jQuery, Guzzle, Composer, CKEditor, and more have their own release cycles that Drupal needs to align with.
![CMS Release Cycles][11]
([Driesnote, DrupalCon 2020][7])
The goal of the initiative is to get Drupal 10 ready, and this involves:
* Releasing Drupal 10 on time
* Getting compatible with the latest versions of the dependencies for security
* Deprecating the dependencies, libraries, modules, and themes that are no longer needed and removing them from Drupal 10 core.
At the [Drupal 10 Readiness Initiative day][12], April 16, you can learn about the tools you'll use to update your websites and modules from Drupal 9 to Drupal 10 efficiently. There are various things you can do to help make Drupal better. Content authors will get an opportunity to peek into the new CKEditor 5, its new features, and improved editing experience.
### Learn more at DrupalCon
Drupal is celebrating its 20th year and its evolution to a more relevant, easier to adopt open source software. Leading an evolution is close to impossible without taking up strategic initiatives. Although the initial initiatives did not focus on offering great user experiences, today, ease of use and out-of-the-box experience are Drupal's most significant goals.
Our ambition is to create software that works for everyone. At every DrupalCon, the intent is to connect with the community that fosters the same belief, learn from each other, and ultimately, build a better Drupal.
[DrupalCon North America][13], hosted by the Drupal Association, is the largest Drupal event of the year. Drupal experts, enthusiasts, and users will unite online April 1216, 2021, share lessons learned and best practices, and collaborate on creating better, more engaging digital experiences. PHP and JavaScript developers, designers, marketers, and anyone interested in a career in open source will be able to learn, connect, and build by attending DrupalCon.
The [Drupal Association][14] is the nonprofit organization focused on accelerating Drupal, fostering the Drupal community's growth, and supporting the project's vision to create a safe, secure, and open web for everyone. DrupalCon is the primary source of funding for the Drupal Association. Your support and attendance at DrupalCon make our work possible.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/4/drupal-updates
作者:[Shefali Shetty][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/shefalishetty
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/browser_screen_windows_files.png?itok=kLTeQUbY (Computer screen with files or windows open)
[2]: https://www.drupal.org/
[3]: https://en.wikipedia.org/wiki/Law_of_triviality
[4]: https://events.drupal.org/global2020/program/driesnote
[5]: https://events.drupal.org/northamerica2021/decoupled-menus-day
[6]: https://opensource.com/sites/default/files/uploads/cms_preferences.png (CMS users' preferences)
[7]: https://youtu.be/RIeRpLgI1mM
[8]: https://events.drupal.org/northamerica2021/easy-out-box-day
[9]: http://drupal.org/project/automatic_updates/
[10]: https://events.drupal.org/northamerica2021/automatic-updates-day
[11]: https://opensource.com/sites/default/files/uploads/cms_releasecycles.png (CMS Release Cycles)
[12]: https://events.drupal.org/northamerica2021/drupal-10-readiness-day
[13]: https://events.drupal.org/northamerica2021?utm_source=replyio&utm_medium=email&utm_campaign=DCNA2021-20210318
[14]: https://www.drupal.org/association

View File

@ -1,145 +0,0 @@
[#]: subject: (Fedora Workstation 34 feature focus: Btrfs transparent compression)
[#]: via: (https://fedoramagazine.org/fedora-workstation-34-feature-focus-btrfs-transparent-compression/)
[#]: author: (nickavem https://fedoramagazine.org/author/nickavem/)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
Fedora Workstation 34 feature focus: Btrfs transparent compression
======
![][1]
Photo by [Patrick Lindenberg][2] on [Unsplash][3]
The release of Fedora 34 grows ever closer, and with that, some fun new features! A [previous feature focus][4] talked about some changes coming to GNOME version 40. This article is going to go a little further under the hood and talk about data compression and _transparent compression_ in _btrfs_. A term like that may sound scary at first, but less technical users need not be wary. This change is simple to grasp, and will help many Workstation users in several key areas.
### What is transparent compression exactly?
Transparent compression is complex, but at its core it is simple to understand: it makes files take up less space. It is somewhat like a compressed tar file or ZIP file. Transparent compression will dynamically optimize your file systems bits and bytes into a smaller, reversible format. This has many benefits that will be discussed in more depth later on, however, at its core, it makes files smaller. This may leave most computer users with a question: “I cant just read ZIP files. You need to decompress them. Am I going to need to constantly decompress things when I access them?”. That is where the “transparent” part of this whole concept comes in.
Transparent compression makes a file smaller, but the final version is indistinguishable from the original by the human viewer. If you have ever worked with Audio, Video, or Photography you have probably heard of the terms “lossless” and “lossy”. Think of transparent compression like a lossless compressed PNG file. You want the image to look exactly like the original. Small enough to be streamed over the web but still readable by a human. Transparent compression works similarly. Your file system will look and behave the same way as before (no ZIP files everywhere, no major speed reductions). Everything will look, feel, and behave the same. However, in the background it is taking up much less disk space. This is because BTRFS will dynamically compress and decompress your files for you. Its “Transparent” because even with all this going on, you wont notice the difference.
> You can learn more about transparent compression at <https://btrfs.wiki.kernel.org/index.php/Compression>
### Transparent compression sounds cool, but also too good to be true…
I would be lying if I said transparent compression doesnt slow some things down. It adds extra CPU cycles to pretty much any I/O operation, and can affect performance in certain scenarios. However, Fedora is using the extremely efficient _zstd:1_ algorithm. [Several tests][5] show that relative to the other benefits, the downsides are negligible (as I mentioned in my explanation before). Better disk space usage is the greatest benefit. You may also receive reduction of write amplification (can increase the lifespan of SSDs), and enhanced read/write performance.
Btrfs transparent compression is extremely performant, and chances are you wont even notice a difference when its there.
### Im convinced! How do I get this working?
In fresh **installations of Fedora 34 and its [corresponding beta][6], it should be enabled by default. However, it is also straightforward to enable before and after an upgrade from Fedora 33. You can even enable it in Fedora 33, if you arent ready to upgrade just yet.
1. (Optional) Backup any important data. The process itself is completely safe, but human error isnt.
2. To truly begin you will be editing your _[fstab][7]_. This file tells your computer what file systems exist where, and how they should be handled. You need to be cautious here, but only a few small changes will be made so dont be intimidated. On an installation of Fedora 33 with the default Btrfs layout the _/etc/fstab_ file will probably look something like this:
```
```
&lt;strong&gt;$ $EDITOR /etc/fstab&lt;/strong&gt;
UUID=1234 /                       btrfs   subvol=root     0 0
UUID=1234 /boot                   ext4    defaults        1 2
UUID=1234         /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=1234 /home                   btrfs   subvol=home     0 0
```
```
NOTE: _While this guide builds around the standard partition layout, you may be an advanced enough user to partition things yourself. If so, you are probably also advanced enough to extrapolate the info given here onto your existing system. However, comments on this article are always open for any questions._
Disregard the _/boot_ and _/boot/efi_ directories as they arent ([currently][8]) compressed. You will be adding the argument _compress=zstd:1_. This tells the computer that it should transparently compress any newly written files if they benefit from it. Add this option in the fourth column, which currently only contains the _subvol_ option for both /home and /:
```
```
UUID=1234 /                       btrfs   subvol=root,compress=zstd:1     0 0
UUID=1234 /boot                   ext4    defaults        1 2
UUID=1234         /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=1234 /home                   btrfs   subvol=home,compress=zstd:1     0 0
```
```
Once complete, simply save and exit (on the default _nano_ editor this is CTRL-X, SHIFT-Y, then ENTER).
3\. Now that fstab has been edited, tell the computer to read it again. After this, it will make all the changes required:
```
$ sudo mount -o remount / /home/
```
Once youve done this, you officially have transparent compression enabled for all newly written files!
### Recommended: Retroactively compress old files
Chances are you already have many files on your computer. While the previous configuration _will_ compress all newly written files, those old files will not benefit. I recommend taking this next (but optional) step to receive the full benefits of transparent compression.
1. (Optional) Clean out any data you dont need (empty trash etc.). This will speed things up. However, its not required.
2. Time to compress your data. One simple command can do this, but its form is dependent on your system. Fedora Workstation (and any other desktop spins using the DNF package manager) should use:
```
$ sudo btrfs filesystem defrag -czstd -rv / /home/
```
Fedora Silverblue users should use:
```
$ sudo btrfs filesystem defrag -czstd -rv / /var/home/
```
Silverblue users may take note of the immutability of some parts of the file system as described [here][9] as well as this [Bugzilla entry][10].
NOTE: _You may receive several warnings that say something like “Cannot compress permission denied.”. This is because some files, on Silverblue systems especially, the user cannot easily modify. This is a tiny subset of files. They will most likely compress on their own, in time, as the system upgrades._
Compression can take anywhere from a few minutes to an hour depending on how much data you have. Luckily, since all new writes are compressed, you can continue working while this process completes. Just remember it may partially slow down your work at hand and/or the process itself depending on your hardware.
Once this command completes you are officially fully compressed!
### How much file space is used, how big are my files
Due to the nature of transparent compression, utilities like _du_ will only report exact, uncompressed, files space usage. This is not the actual space they take up on the disk. The [_compsize_][11] utility is the best way to see how much space your files are actually taking up on disk. An example of a _compsize_ command is:
```
$ sudo compsize -x / /home/
```
This example provides exact information on how the two locations, / and /home/ are currently, transparently, compressed. If not installed, this utility is available in the Fedora Linux repository.
### Conclusion:
Transparent compression is a small but powerful change. It should benefit everyone from developers to sysadmin, from writers to artists, from hobbyists to gamers. It is one among many of the changes in Fedora 34. These changes will allow us to take further advantage of our hardware, and of the powerful Fedora Linux operating system. I have only just touched the surface here. I encourage those of you with interest to begin at the [Fedora Project Wiki][12] and [Btrfs Wiki][13] to learn more!
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/fedora-workstation-34-feature-focus-btrfs-transparent-compression/
作者:[nickavem][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/nickavem/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/btrfs_compression-1-816x345.jpg
[2]: https://unsplash.com/@heapdump?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[3]: https://unsplash.com/s/photos/hdd-compare?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[4]: https://fedoramagazine.org/fedora-34-feature-focus-updated-activities-overview/
[5]: https://fedoraproject.org/wiki/Changes/BtrfsTransparentCompression#Simple_Analysis_of_btrfs_zstd_compression_level
[6]: https://fedoramagazine.org/announcing-fedora-34-beta/
[7]: https://en.wikipedia.org/wiki/Fstab
[8]: https://fedoraproject.org/wiki/Changes/BtrfsTransparentCompression#Q:_Will_.2Fboot_be_compressed.3F
[9]: https://docs.fedoraproject.org/en-US/fedora-silverblue/technical-information/#filesystem-layout
[10]: https://bugzilla.redhat.com/show_bug.cgi?id=1943850
[11]: https://github.com/kilobyte/compsize
[12]: https://fedoraproject.org/wiki/Changes/BtrfsTransparentCompression
[13]: https://btrfs.wiki.kernel.org/index.php/Compression

View File

@ -1,139 +0,0 @@
[#]: subject: (6 exciting new ShellHub features to look for in 2021)
[#]: via: (https://opensource.com/article/21/5/shellhub-new-features)
[#]: author: (Domarys https://opensource.com/users/domarys)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
6 exciting new ShellHub features to look for in 2021
======
ShellHub's community has been busy adding new features to the open
source remote-access tool.
![People work on a computer server with devices][1]
ShellHub is a cloud server that allows universal access to your networked devices from any external network. Using it prevents being blocked by firewalls or overly complex networks because [ShellHub][2] uses the HTTP protocol to encapsulate the SSH protocol. This transport layer allows seamless use on most networks, as it is commonly available and accepted by most companies' firewall rules and policies.
Best of all, ShellHub is open source (released under the Apache 2.0 license) and facilitates developers' and programmers' remote tasks and making access to Linux devices possible for any hardware architecture.
For a full demo, please read my previous article, [_Bypass your Linux firewall with SSH over HTTP_][3]. In this follow-up article, I'll cover some of the developments and additions in the [0.7.0 release][4].
ShellHub offers a safe and quick way to access your devices from anywhere. It has a robust [community][5], whose contributions are essential to the tool's growth, new features, and improvements. I'll describe some of the updates that are (or will soon be) in the [tool's code][6] below.
### Namespace
The namespace enables you to create a set of devices to share with other ShellHub users. You can put as many devices as you want in a namespace, but a device registered in one namespace cannot belong to another.
You can access your namespace by using the top-right button on the Dashboard. There, you will find the namespace Tenant ID, which is used to register a device, and any other namespaces you have created. You can also create a new namespace and access namespace settings.
You can rename, delete, and invite other users to your namespace. Namespace user permissions work based on privilege, depending on user rank. (See [Privileges][7] for more information.)
![Namespace][8]
(Domarys, [CC BY-SA 4.0][9])
This feature is available in all editions. The difference is that in the open source version, you must use the terminal to issue commands:
```
`./bin/add-namespace <namespace> <owner>`
```
![Running namespace commands in the terminal][10]
(Domarys, [CC BY-SA 4.0][9])
### Privileges
Privileges are an organization-level mode for authoring actions in ShellHub. This ensures only the owner has permissions to do potentially dangerous actions.
There are two privilege ranks:
* **ADM:** Only the namespace owner has administrator privileges to run an action. The admin can accept and reject devices; view and delete session recordings; create, change, or delete firewall rules; and invite users to the namespace.
* **USER:** A user must be invited by the owner. A user can access devices and any information in the namespace enabled by the owner but cannot remove devices, change firewall rules, or watch session recordings.
### Session recordings
This new feature records all actions in a ShellHub connection executed by a user or owner. Session recordings are available in the Dashboard in ShellHub Cloud and Enterprise versions.
![Session recordings][11]
(Domarys, [CC BY-SA 4.0][9])
The session recording feature is on by default. If you are the owner, you can change this in a namespace's Settings.
![Session recording settings][12]
(Domarys, [CC BY-SA 4.0][9])
Each session's page has details such as hostname, user, authentication, IP address, and session begin and end time. The device's user ID (UID) is available in Details.
### Firewall rules
![Firewall rules][13]
(Domarys, [CC BY-SA 4.0][9])
Firewall rules define network traffic permissions (or blocks) to ShellHub devices. This feature is available in the Cloud and Enterprise editions. These rules allow or prevent a device's connection to defined IPs, users, or hostnames. Rules can be set only by a namespace owner.
In addition to defining the rules, ShellHub enables an owner to set priorities, which block sets of locations or permit access to a location in a blocked set if necessary.
### Admin console
![Admin console][14]
(Domarys, [CC BY-SA 4.0][9])
ShellHub developed the admin console to facilitate user support. It offers an easy and clear interface for administrators of large teams to manage and check the activities executed in the ShellHub server. It's available in the Enterprise edition.
### Automatic access with public keys
![ShellHub public key][15]
(Domarys, [CC BY-SA 4.0][9])
Automatic connection using public keys is a new feature that will be released soon. It aims to simplify access for users with many different devices and credentials because using a public key makes access quicker and more secure.
The ShellHub server keeps public key information safe and uses the key only for logging into devices. It also does not have access to users' private keys or other sensitive information.
Automatic connections using public keys is a recent feature added in ShellHub.
### Learn more
Stay up to date on this and other new features and updates on OS Systems' [Twitter][16], [LinkedIn][17], [GitHub][18], or [website][19].
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/5/shellhub-new-features
作者:[Domarys][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/domarys
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003499_01_linux11x_cc.png?itok=XMDOouJR (People work on a computer server with devices)
[2]: https://www.shellhub.io/
[3]: https://opensource.com/article/20/7/linux-shellhub
[4]: https://github.com/shellhub-io/shellhub/releases/tag/v0.7.0
[5]: https://www.shellhub.io/community
[6]: https://github.com/shellhub-io
[7]: tmp.jW5CEfWWTN#Privileges
[8]: https://opensource.com/sites/default/files/uploads/shellhub_3namespace.png (Namespace)
[9]: https://creativecommons.org/licenses/by-sa/4.0/
[10]: https://opensource.com/sites/default/files/uploads/shellhub_2terminal.png (Running namespace commands in the terminal)
[11]: https://opensource.com/sites/default/files/uploads/shellhub_1sessionrecordings.png (Session recordings)
[12]: https://opensource.com/sites/default/files/uploads/shellhub_6sessionrecording.png (Session recording settings)
[13]: https://opensource.com/sites/default/files/uploads/shellhub_5firewallrules.png (Firewall rules)
[14]: https://opensource.com/sites/default/files/uploads/shellhub_4admin.png (Admin console)
[15]: https://opensource.com/sites/default/files/pictures/public_key.png (ShellHub public key)
[16]: https://twitter.com/os_systems
[17]: https://www.linkedin.com/company/ossystems/
[18]: https://www.facebook.com/ossystems
[19]: https://www.ossystems.com.br/

View File

@ -2,7 +2,7 @@
[#]: via: (https://itsfoss.com/set-up-ssh-ubuntu/)
[#]: author: (Chris Patrick Carias Stas https://itsfoss.com/author/chris/)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (hwlife)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -0,0 +1,159 @@
[#]: subject: "10 Best Features of Fedora 36 That Makes it a Powerful Release"
[#]: via: "https://www.debugpoint.com/2022/05/fedora-36-features/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
10 Best Features of Fedora 36 That Makes it a Powerful Release
======
IF YOU ARE EXCITED ABOUT THE FEDORA 36 RELEASE, HERES A QUICK SUMMARY
OF THE 10 BEST FEDORA 36 FEATURES THAT YOU SHOULD CHECK OUT BEFORE
TRYING.
![Fedora 36 Workstation Desktop][1]
Fedora 36 releases on May 10, 2022, and it brings a list of special features across the desktop, flavours, internal structures and more. Before installing or upgrading it, you should know about the unique features. Here they are.
### Best Fedora 36 Features
#### 1\. GNOME 42 as Default Workstation Desktop
The most important feature of Fedora 36 is the brand new GNOME 42, which comes as default with the Fedora Workstation edition. With the Fedora Workstation edition, you get the original GNOME 42 version without any customisation, unlike Ubuntu. Hence to experience the vanilla GNOME 42, Fedora 36 is the perfect choice for you.
Firstly, GNOME 42 brings the modern GTK4 and libadwaita based Shell and native applications. Most native GNOME apps are already ported to GTK4, giving a revamped look with friendly UI components. You should notice the difference in every nook and corner of the desktop.
Not only that, this version of GNOME introduces the Dark and Light Style in the Appearance section. The native applications also adapt to the light and dark styles automatically. Moreover, the wallpaper can also change based on the style, and you can create [dark and light versions of the wallpaper][2].
Furthermore, GNOME 42 brings a [new text editor][3], a new screenshot and screencast tool and well designed on-screen display. You may want to read the [features of GNOME 42 here in detail][4].
#### 2\. Linux Kernel 5.17
In addition to that, Fedora 36 also brings the latest mainline Linux Kernel 5.17, which has support for all the modern GPU, CPU and other improvements. The updates in this Kernel include temperature support for the AMD Zen family of devices, a long-standing Floppy Disk hangs bug, a handful of ARM/SoC support and performance improvements across all subsystems.
You can read our [detailed Linux Kernel 5.17][5] coverage to learn more.
#### 3\. Wayland by Default for NVIDIA Proprietary Drivers
Perhaps the most impactful change in this release is the decision from Fedora to make [Wayland as default][6] session with NVIDIA proprietary driver. If you remember, Wayland was the default server since Fedora 22, but it has not defaulted when the NVIDIA proprietary driver is in use. And it changes now. So, while updating or installing an NVIDIA system, check the session type before login.
#### 4\. Systemd Messages Updates
Other than the above changes, the systemd messages become more friendly with a small but impactful change on how the messages are logged in this release. In Fedora 36, the systemd messages show the unit name with the usual name. For example, if it shows “Network Manager”, it would now show “NetworkManager.service” and the name. This will help debug some problems in a system requiring scrolling through thousands of messages.
![More detailed journalctl messages in Fedora 36][1]
#### 5\. System Font Changes
On top of the above changes, the default font type is changing to Noto Font from DejaVu fonts. This will provide a better experience and consistent text rendering across the desktop. So, google-noto-sans* packages will be installed by default to replace dejavu*.
#### 6\. Updated Spins
Thats not all the changes, the official Fedora flavours or Spins are also refreshed with their stable versions. Not all desktop environments get major releases in a year, but you always get the latest bugfix versions with Fedora.
Heres a quick recap of the version of the official Fedora Spins in this release.
* Fedora KDE with KDE Plasma 5.24
* Fedora with Xfce 4.16
* Fedora with LXQt 1.1
* Fedora MATE-Compiz with MATE 1.24
#### 7\. Tool Chain Updates
Many Fedora users are the developers who use it for their personal or professional work. For programmers or developers, the toolchain is important. Because Fedora features the latest compilers, databases and other dependent packages. Heres a quick list of packages and applications:
* PHP 8.1
* Ruby on Rails 7.0
* OpenJDK 17
* Django 4.0
* gcc 12
* glibc 2.35
* Golang 1.18
* OpenSSL 3.0
* Ruby 3.1
* Ansible 5
* Firefox 98
* LibreOffice 7.3
#### 8\. Single User as Admin
The majority of the Fedora workstation installations are single-user types than the shared or enterprise users. Hence, Fedora 36 makes the single user as administrator by default during installation with this release. The Anaconda installer sets the admin option by default.
#### 9\. RPM Structure
The internal RPM package database in the Fedora system is located under `/var` today. With this release, it is [moving][7] to `/usr` directory. The primary reason is consistency with other RPM-based distributions such as openSUSE and Fedora rpm-ostree based systems (Kinoite, Silverblue, etc.)
#### 10\. NetworkManager Configuration
Finally, this release removes the NetworkManager legacy configuration file support (ifcfg files). This is a classic case of Fedora being a pioneer in adopting new methods, deprecating the older way of doing things. The NetworkManager evolved over the years and now uses more streamlined configuration files called keyfiles. Hence, it is no longer necessary to support the older ifcfg files for compatibility reasons. For more details about this change, visit this [excellent article][8] from Fedora Magazine.
### Closing Notes
In addition to the above changes, this release brings many more under the hood performance tweaks and bug fixes which you can read [here][9].
Fedora 36 releases on May 10, 2022.
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][10], [Twitter][11], [YouTube][12], and [Facebook][13] and never miss an update!
#### Share this:
* [Twitter][14]
* [Facebook][15]
* [Print][16]
* [LinkedIn][17]
* [Reddit][18]
* [Telegram][19]
* [WhatsApp][20]
* [Email][21]
*
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/fedora-36-features/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
[2]: https://www.debugpoint.com/2022/04/custom-light-dark-wallpaper-gnome/
[3]: https://www.debugpoint.com/2021/12/gnome-text-editor/
[4]: https://www.debugpoint.com/2022/03/gnome-42-release/
[5]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
[6]: https://www.debugpoint.com/wp-admin/.org/wiki/Changes/WaylandByDefaultOnNVIDIA
[7]: https://fedoraproject.org/wiki/Changes/RelocateRPMToUsr
[8]: https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/
[9]: https://fedoraproject.org/wiki/Releases/36/ChangeSet
[10]: https://t.me/debugpoint
[11]: https://twitter.com/DebugPoint
[12]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[13]: https://facebook.com/DebugPoint
[14]: https://www.debugpoint.com/2022/05/fedora-36-features/?share=twitter (Click to share on Twitter)
[15]: https://www.debugpoint.com/2022/05/fedora-36-features/?share=facebook (Click to share on Facebook)
[16]: tmp.uluFZDN4yr#print (Click to print)
[17]: https://www.debugpoint.com/2022/05/fedora-36-features/?share=linkedin (Click to share on LinkedIn)
[18]: https://www.debugpoint.com/2022/05/fedora-36-features/?share=reddit (Click to share on Reddit)
[19]: https://www.debugpoint.com/2022/05/fedora-36-features/?share=telegram (Click to share on Telegram)
[20]: https://www.debugpoint.com/2022/05/fedora-36-features/?share=jetpack-whatsapp (Click to share on WhatsApp)
[21]: https://www.debugpoint.com/2022/05/fedora-36-features/?share=email (Click to email this to a friend)

View File

@ -1,168 +0,0 @@
[#]: subject: (Things to do after installing Fedora 34 Workstation)
[#]: via: (https://fedoramagazine.org/things-to-do-after-installing-fedora-34-workstation/)
[#]: author: (Arman Arisman https://fedoramagazine.org/author/armanwu/)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
Things to do after installing Fedora 34 Workstation
======
![][1]
Using a new operating system can be a lot of fun. But it often becomes confusing when we first use it, especially for new users who are not very familiar with computer systems. For those of you who are using Fedora for the first time and have successfully installed Fedora 34 Workstation, this article can be an initial guide. Im sure that you want to feel more at home with your new fresh Fedora. These are several things to do after installing your Fedora 34 Workstation.
### System update
Maybe you think that you have installed the most recent version of Fedora 34 Workstation, so your Fedora should be up to date. But you still have to make sure that your Fedora Linux has all the updated packages. Because in every new release of an operating system, usually there are still many things that continue to be improved. You can use the terminal or GNOME software to run the update.
If you want to update via the terminal, then you just have to open a terminal and type the following command.
```
$ sudo dnf update
```
But if you want to do it with GNOME _Software_, open the application by selecting _Activities_ then locating and selecting the _Software_ item in the taskbar at the bottom of the screen. When it opens select the _Update_s tab at the top. After that you just click the _Download_ button. An update may require a restart afterwards and _Update_ will tell you that.
![GNOME Software location in the taskbar at the bottom of the screen][2]
_note: another way to select Activities is to press the super key on the keyboard. Super key is the button that has the Windows logo on most keyboards._
![Gnome Software showing Updates][3]
### System settings
You can view and configure your devices system through _System Settings_. These include items like network, keyboard, mouse, sound, displays, etc. You can run it by pressing the _super_ key on your keyboard, clicking _Show Applications_ in the task bar at the bottom of the window, then selecting _Settings_. Configure it according to your needs.
![Settings menu showing Network selected][4]
### Additional repositories
Maybe some packages you need are not available to be installed from the official Fedora Repository. You can add software repositories with the _dnf config-manager_ command. Please be careful if you want to add other repositories besides the official Fedora repository.
The first thing you should do is define a new repository by adding a new file ending in _.repo_ to the _/etc/yum.repos.d/_ directory. Run the following command in the terminal.
```
$ sudo dnf config-manager --add-repo /etc/yum.repos.d/file_name.repo
```
_note: replace file_name with the repository file name._
Or you can use GNOME _Software_. Open it as described in the System Update section above. Now select the “hamburger” icon (three horizontal lines) on the top right and select _Software Repositories_. You can add the repository from there using the _Install_ option.
![GNOME Software showing location of Software Repositories menu][5]
Most people will enable RPM Fusion. Its a third party repository. You can read about third party repositories in [Fedora Docs][6].
### Fastest mirror and Delta RPM
There are several things you can do to speed up your download times when using DNF to update your system. You can enable Fastest Mirror and Delta RPM. Edit _/etc/dnf/dnf.conf_ using a text editor, such as gedit or nano. Heres the example to open _dnf.conf_ file with _nano_ in _terminal_.
```
$ sudo nano /etc/dnf/dnf.conf
```
Append the following line onto your _dnf.conf_ file.
```
fastestmirror=true
deltarpm=true
```
Press _ctrl+o_ to save the file then _ctrl+x_ to quit from _nano_.
### Multimedia plugins for audio and video
You may need some plugins for your multimedia needs. You can install multimedia plugins by running this command in a terminal.
```
$ sudo dnf group upgrade --with-optional Multimedia
```
Please pay attention to the regulations and standards in your country regarding multimedia codecs. You can read about this in [Fedora Docs][7].
### Tweaks and Extentions
Fedora 34 Workstation comes with GNOME as the default Desktop Environment. We can do various configurations of GNOME by using Tweaks and Extensions, like changing themes, changing buttons in the window dialog, and many more.
Open your terminal and run this command to install GNOME Tweaks.
```
$ sudo dnf install gnome-tweaks
```
And run this command to install GNOME Extensions.
```
$ sudo dnf install gnome-extensions-app
```
Do the same way as above when you search for _GNOME Software_. Select _Activities_ or press the _super_ key then select _Show Applications_ to see a list of installed applications. You can find both applications in the list. You can do the same thing every time you want to search for installed applications. Then do the configuration with your preferences with _Tweaks_ and _Extensions_.
![GNOME Tweaks][8]
![GNOME Extensions][9]
### Install applications
When you first install Fedora, you will find several installed apps. You can add other applications according to your needs with GNOME Software. Do the same way to open GNOME Software as described earlier. Then find the application you want, select the application, and then press the Install button.
![GNOME Software][10]
Or you can do it with terminal. Here are the commands to find and install the application.
Command to search for available applications:
```
$ sudo dnf search application_name
```
The command to install the application:
```
$ sudo dnf install application_name
```
Commands to remove installed applications:
```
$ sudo dnf remove application_name
```
_note: replace application_name with the name of the application._
You can search for installed applications by viewing them in _Show Applications_. Select _Activities_ or press the _super_ key and select _Show Applications_. Then you can select the application you want to run from the list.
![Installed application list][11]
### Conclusion
Fedora Workstation is an easy-to-use and customizable operating system. There are many things you can do after installing Fedora 34 Workstation according to your needs. This article is just a basic guide for your first steps before you have more fun with your Fedora Linux system. You can read [Fedora Docs][12] for more detailed information. I hope you enjoy using Fedora Linux.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/things-to-do-after-installing-fedora-34-workstation/
作者:[Arman Arisman][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/armanwu/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2021/07/FedoraMagz-Cover_ThingsToDo.png
[2]: https://fedoramagazine.org/wp-content/uploads/2021/07/GNOME_Software_location-1024x576.png
[3]: https://fedoramagazine.org/wp-content/uploads/2021/07/Software_Updates-1024x735.png
[4]: https://fedoramagazine.org/wp-content/uploads/2021/07/Settings-1024x764.png
[5]: https://fedoramagazine.org/wp-content/uploads/2021/07/Software_Hamburger_-1-1024x685.png
[6]: https://docs.fedoraproject.org/en-US/quick-docs/setup_rpmfusion/
[7]: https://docs.fedoraproject.org/en-US/quick-docs/assembly_installing-plugins-for-playing-movies-and-music/
[8]: https://fedoramagazine.org/wp-content/uploads/2021/07/Tweaks-1024x733.png
[9]: https://fedoramagazine.org/wp-content/uploads/2021/07/GNOME_Extensions.png
[10]: https://fedoramagazine.org/wp-content/uploads/2021/07/GNOME_Software-1-1024x687.png
[11]: https://fedoramagazine.org/wp-content/uploads/2021/07/Show_Application-1024x576.png
[12]: https://docs.fedoraproject.org/en-US/fedora/f34/

View File

@ -1,151 +0,0 @@
[#]: subject: (How to Install Fedora 34 Workstation [Step by Step])
[#]: via: (https://www.debugpoint.com/2021/07/install-fedora-34-workstation/)
[#]: author: (Arindam https://www.debugpoint.com/author/admin1/)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
How to Install Fedora 34 Workstation [Step by Step]
======
In this absolute beginners guide, we explain the steps required to
install Fedora 34 workstation edition (GNOME desktop environment).
This page covers the following topics
* [Fedora 34 Minimum system requirements][1]
* [Pre-Steps before installation][2]
* [Download and create LIVE USB][3]
* [Install Fedora 34][4]
[Fedora][5] is a Linux based distribution which offers desktop and server flavors. It is a free and open-source Linux distribution sponsored by Red Hat and developed and contributed by the community. It works as an upstream distribution for Red Hat Enterprise Linux. Hence, with Fedora you get the latest Linux Kernel, packages with cutting edge features and applications.
Fedora desktop edition offers almost all popular desktop environments. A quick list of desktop environment is below which has official Fedora flavor.
* KDE Plasma
* GNOME
* Xfce
* LXDE
* LXQt
* i3 WM
* MATE
* Cinnamon (via repo)
This is why it is very popular, and many users choose Fedora to Ubuntu because you get a perfect system with many packages pre-installed. Mostly experienced users prefer Fedora, but it is absolutely useful for beginners as well. If you are an Ubuntu user and want to jump the ship to Fedora, well, you may want to check out our [Ubuntu to Fedora migration guide][6].
The Fedora 34 which we are going to install in this post brings some interesting changes. Fedora 34 brings Linux Kernel 5.11, Zstd compression when btrfs is used, default sound daemon Pipewire, GNOME 40 desktop, KDE Plasma 5.21 and many Wayland related updates. For a detailed coverage, visit our [Fedora 34 topics][7] to learn more.
### Fedora 34 workstation System requirement
This is the minimum system requirement for installing Fedora in general.
* 2 GHz dual-core processor
* 4 GiB RAM (system memory)
* 20 GB of hard-drive space
* VGA capable of 1024×768 screen resolution
* Either a CD/DVD drive or a USB port for the installer media
* Internet access is not mandatory for installation
### Pre-Step Before Installation
Before you start the installation, make sure of the followings.
* If you are installing in a physical system, make sure to decide which partition you want to install.
* If you are planning to dual boot with Windows or any other Linux Systems, then make sure you decide which partition to install.
* Take a backup of your personal data.
* Keep a LIVE USB with [Boot Repair][8] handy, in case something goes wrong.
[][9]
SEE ALSO:   How to Upgrade to Fedora 34 from Fedora 33 Workstation (GUI and CLI Method)
### Download and prepare LIVE USB
Download the Workstation edition from the below link. It contains the torrent of the .ISO file and also includes all other [Fedora 34 Spins][10] as well.
[fedora torrents][11]
After the download is complete, create a LIVE USB using any utility such as [Etcher][12]. Plug in the USB in your system, change BIOS settings to boot from it.
### Install Fedora 34 Steps
1\. The LIVE Fedora installation system boot up to a LIVE desktop, that gives you options to install to a Physical medium.
![Install to Hard Driver Option in LIVE Media][13]
2\. In the next screen, select language and continue. Then click on the Installation destination to select which partition you would like to install.
![Select Language][14]
![Installation Destination Select][15]
3\. In the installation destination screen, select the disk and choose Storage Configuration: Custom. And click Done at the top.
![Select Disk][16]
4\. In the partitioning screen, choose your partition sizes for root, and boot partitions. For example, keep /boot at around 1GB and rest you can assign to /root partition.
5\. For Fedora 34, it is better to use btrfs for root partition for better performance. Do not forget to set the mount point as / in root partition.
![root partition][17]
![boot partition][18]
6\. When you are satisfied with your new file system, click on Done. In the next screen, make sure to verify carefully the summary of changes that is going to happen to your disk. Because this will make changes to your system and can not be reverted. Click Accept changes once you are ready.
![Summary of Changes][19]
7\. Wait for the installation to complete. Once it is finished, click on Finish Installation and reboot the LIVE system.
![Installation complete][20]
So, thats about it. If all goes well, after reboot, you should be greeted with Fedora 34 workstation edition desktop with GNOME 40.
![Fedora 34 Desktop][21]
I hope this basic guide to install Fedora 34 helps beginners or advanced users for their work. If you run into a problem, such as with dual boot, or any other installation error, let me know in the comment box below.
* * *
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2021/07/install-fedora-34-workstation/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: tmp.cwqzC2PPCj#min-requirement
[2]: tmp.cwqzC2PPCj#pre-steps
[3]: tmp.cwqzC2PPCj#download-create-USB
[4]: tmp.cwqzC2PPCj#install-fedora-34
[5]: https://getfedora.org/
[6]: https://www.debugpoint.com/2021/04/migrate-to-fedora-from-ubuntu/
[7]: https://www.debugpoint.com/tag/fedora-34
[8]: https://sourceforge.net/p/boot-repair/home/Home/
[9]: https://www.debugpoint.com/2021/04/upgrade-fedora-34-from-fedora-33/
[10]: https://www.debugpoint.com/2021/04/fedora-34-desktop-spins/
[11]: https://torrent.fedoraproject.org/
[12]: https://www.debugpoint.com/2021/01/etcher-bootable-usb-linux/
[13]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/Install-to-Hard-Driver-Option-in-LIVE-Media.jpeg
[14]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/Select-Language.jpeg
[15]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/Installation-Destination-Select.jpeg
[16]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/Select-Disk.jpeg
[17]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/root-partition-1024x532.jpeg
[18]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/boot-partition.jpeg
[19]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/Summary-of-Changes.jpeg
[20]: https://www.debugpoint.com/blog/wp-content/uploads/2021/07/Installation-complete-1024x526.jpeg
[21]: https://www.debugpoint.com/blog/wp-content/uploads/2021/04/Fedora-34-Desktop--1024x529.jpg

View File

@ -1,67 +0,0 @@
[#]: subject: "Fedora Linux earns recognition from the Digital Public Goods Alliance as a DPG!"
[#]: via: "https://fedoramagazine.org/fedora-linux-earns-recognition-from-the-digital-public-goods-alliance-as-a-dpg/"
[#]: author: "Justin W. FloryAlberto Rodriguez SanchezMatthew Miller https://fedoramagazine.org/author/jflory7/https://fedoramagazine.org/author/bt0dotninja/https://fedoramagazine.org/author/mattdm/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Fedora Linux earns recognition from the Digital Public Goods Alliance as a DPG!
======
![][1]
In the Fedora Project community, [we look at open source][2] as not only code that can change how we interact with computers, but also as a way for us to positively influence and shape the future. The more hands that help shape a project, the more ideas, viewpoints and experiences the project represents — thats truly what the spirit of open source is built from.
But its not just the global contributors to the Fedora Project who feel this way. August 2021 saw Fedora Linux recognized as a digital public good by the [Digital Public Goods Alliance (DPGA)][3], a significant achievement and a testament to the openness and inclusivity of the project.
We know that digital technologies can save lives, improve the well-being of billions, and contribute to a more sustainable future. We also know that in tackling those challenges, Open Source is uniquely positioned in the world of digital solutions by inherently welcoming different ideas and perspectives critical to lasting success.
But, we also know that many regions and countries around the world do not have access to those technologies. Open Source technologies can be the difference between achieving the [Sustainable Development Goals][4] (SDGs) by 2030 or missing the targets. Projects like Fedora Linux, which [represent much more than code itself][2], are the game-changers we need. Already, individuals, organizations, governments, and Open Source communities, including the Fedora Projects own, are working to make sure the potential of Open Source is realized and equipped to take on the monumental challenges being faced.
The Digital Public Goods Alliance is a multi-stakeholder initiative, endorsed by the United Nations Secretary-General. It works to accelerate the attainment of the SDGs in low- and middle-income countries by facilitating the discovery, development, use of, and investment in digital public goods (DPGs). DPGs are Open Source software, open data, open AI models, open standards, and open content that adhere to privacy and other applicable best practices, and do no harm. This definition, drawn from the UN Secretary-Generals [2020 Roadmap for Digital Cooperation][5], serves as the foundation of the DPG Registry, an online repository for DPGs. 
The DPG Registry was created to help increase the likelihood of discovery, and therefore use of, DPGs. Today, we are excited to share that Fedora Linux was added to the [DPG Registry][6]! Recognition as a DPG increases the visibility, support for, and prominence of open projects that have the potential to tackle global challenges. To become a digital public good, all projects are required to meet the [DPG Standard][7] to ensure they truly encapsulate Open Source principles. 
As an Open Source leader, Fedora Linux can make achieving the SDGs a reality through its role as a convener of many Open Source “upstream” communities. In addition to providing a fully-featured desktop, server, cloud, and container operating system, it also acts as a platform where different Open Source software and work come together. Fedora Linux by default only ships its releases with purely Open Source software packages and components. While third-party repositories are available for use with proprietary packages or closed components, Fedora Linux is a complete offering with some of the greatest innovations that Open Source has to offer. Collectively this means Fedora Linux can act as a gateway, empowering the creation of more and better solutions to better tackle the challenges they are trying to address.
The DPG designation also aligns with Fedoras fundamental foundations:
* **Freedom**: Fedora Linux was built as Free and Open Source Software from the beginning. Fedora Linux only ships and distributes Free Software from its default repositories. Fedora Linux already uses widely-accepted Open Source licenses.
* **Friends**: Fedora has an international community of hundreds spread across six continents. The Fedora Community is strong and well-positioned to scale as the upstream distribution of the worlds most-widely used enterprise flavor of Linux.
* **Features**: Fedora consistently delivers on innovation and features in Open Source. Fedora Linux 34 was a record-breaking release, with 63 new approved Changes in the last release.
* **First**: Fedora leverages its unique position and resources in the Free Software world to deliver on innovation. New ideas and features are tried out in the Fedora Community to discover what works, and what doesnt. We have many stories of both.
![][8]
For us, recognition as a digital public good brings honor and is a great moment for us, as a community, to reaffirm our commitment to contribute and grow the Open Source ecosystem.
This is a proud moment for each Fedora Community member because we are making a difference. Our work matters and has value in creating an equitable world; this is a fantastic and important feeling.
If you have an interest in learning more about the Digital Public Goods Alliance please reach out to [hello@digitalpublicgoods.net][9].
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/fedora-linux-earns-recognition-from-the-digital-public-goods-alliance-as-a-dpg/
作者:[Justin W. FloryAlberto Rodriguez SanchezMatthew Miller][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/jflory7/https://fedoramagazine.org/author/bt0dotninja/https://fedoramagazine.org/author/mattdm/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/DPG_recognition-816x345.jpg
[2]: https://docs.fedoraproject.org/en-US/project/
[3]: https://digitalpublicgoods.net/frequently-asked-questions/
[4]: https://sdgs.un.org/goals
[5]: https://www.un.org/en/content/digital-cooperation-roadmap/
[6]: http://digitalpublicgoods.net/registry/
[7]: http://digitalpublicgoods.net/standard/
[8]: https://lh6.googleusercontent.com/lzxUQ45O79-kK_LHsokEChsfMCyAz4fpTx1zEaj6sN_-IiJp5AVqpsISdcxvc8gFCU-HBv43lylwkqjItSm1X1rG_sl9is1ou9QbIUpJTGyzr4fQKWm_QujF55Uyi-hRrta1M9qB=s0
[9]: mailto:hello@digitalpublicgoods.net

View File

@ -1,104 +0,0 @@
[#]: subject: "10 open source career lessons from 2021"
[#]: via: "https://opensource.com/article/21/12/open-source-career-lessons"
[#]: author: "Lauren Maffeo https://opensource.com/users/lmaffeo"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
10 open source career lessons from 2021
======
Whether you're looking for a great open source note-taking app or want
inspiration for non-coding roles in tech, Opensource.com's authors
covered it all.
![Working from home at a laptop][1]
The ongoing pandemic kept 2021 far from normal, yet there were glimmers of hope through the uncertainty. In-person conferences slowly resumed, if smaller and with more masks than in years past. And the asynchronous essence of open source allowed many people to keep working on passion projects while growing their careers.
Accordingly, readers loved the past year's posts on all things work and career. Below, we've shared 10 of our most popular articles on these subjects in 2021. Whether you're looking for a great open source note-taking app or want inspiration for non-coding roles in tech, Opensource.com's authors covered it all.
### 3 open source tools that make Linux the ideal workstation
Is there anything Linux can't do? Seth Kenlon doesn't think so. In our [most popular career article][2] this year, Seth shares three office applications that run on Linux.
From macro support on LibreOffice to the spreadsheets in Gnumeric, open source enthusiasts looking for new tools can look outside the box. Many options in this article are minimalist, and Seth says that's a good thing. Big office suites can't solve every problem. Stepping back to consider your true needs and finding tools that meet them is the best choice.
### Use Joplin to find your notes faster
No one beats Kevin Sonney when it comes to productivity tips. His annual productivity series [had a twist][3] in 2021: Instead of covering specific apps, Sonney shared strategies and all-in-one solutions to help open sourcers work smarter.
A digital notes enthusiast, Kevin uses this piece to share why he chose Joplin to keep them all organized. Its search functionality, ability to sync between devices, and use of Markdown are just a few reasons why this note-taking app rules them all.
### 5 open source alternatives to Zoom
Zoom fatigue reached new heights in open source this year: Seth Kenlon's article on open source Zoom alternatives was [a 2021 favorite][4] across several categories.
Kenlon wrote this piece after attending a conference run on open source video conferencing software. If you want to use something other than Zoom, you have options. There's an open source tool for every unique need, from familiar favorites like Signal's group video call feature to solutions for classroom and conference presentations like BigBlueButton.
### Open source tools and tips for staying focused
Kevin Sonney's 2021 productivity series hit a pain point with readers. His tips to stay focused using open source tools [caught the eyes][5] of open sourcers who (like me) struggled to keep our attention on the tasks at hand this year.
This piece highlights Mater, a taskbar app that lets users set 25-minute timers before taking a break. It's an open source take on the Pomodoro Technique that helps users do deep work before taking strategic breaks. Kevin finds that using Mater for productivity sprints, combined with a buddy, helps keep him accountable. That's a lesson we can all take into 2022.
### My open source internship during a pandemic
Nearly two years into the pandemic, many people have started new jobs and internships remotely. In May 2020, Gerrod Ubben found his junior year of college cut short and learned that his summer internship at Red Hat would happen remotely. [This piece][6] shares his experience on Red Hat's Pulp team.
Gerrod did a lot of work updating Pulp's Python plugin, thanks to mentorship from several Red Hat engineers. He also worked with the Bandersnatch community to broaden their code so the Bandersnatch API could mirror Python content from sources including Pulp. If you've doubted what fully remote interns can do, this piece will put those doubts to rest.
### 4 tech jobs for people who don't code
Nithya Ruff is one of my open source heroes because she advocates for diverse contributions to open source beyond code. As a career techie who has always held non-coding roles, Dawn Parzych's piece [highlighting four of these positions][7] struck a familiar chord.
Whether you have a talent for technical writing or a desire to do data analysis, each of the four roles highlighted here brings its own value to tech. Lest you fear that all of them are too far from the code, developer relations made the list. This fairly new discipline puts developer needs first, and while coding isn't required for all roles, it's a huge plus.
### 16 efficient breakfasts of open source technologists from around the world
What's your favorite meal to start the day? That's what Jen Wike Huger asked us Opensource.com writers this past spring. [The answers][8] were diverse like we are, often reflecting where we live around the world.
From bacon, egg, and cheese bagels in New York City to copious cups of tea in England, 16 of us shared what we eat to start our days off right. I'm still trying to convince myself that coffee in itself is not a meal, but that's another article.
### My open source disaster recovery strategy for the home office
What's the worst that could happen? In Howard Fosdick's case, it's the risk that a home-based device might fail for remote employees. This article [walks readers through solutions][9] should the worst happen to you.
Howard is upfront that his strategies (which include defining high availability and confirming allowable downtime) might not work in all scenarios. Still, the tips he offers are customizable. The critical takeaway is to plan ahead. That way, if the worst happens, you've got a plan to tackle the challenge.
### 3 wishes for open source productivity in 2021
January 31, 2021, feels like a lifetime ago. That's when Kevin Sonney [shared some hopes][10] he had for productivity in open source this year.
To conclude his series on productivity, Kevin said he wanted open sourcers to be more mindful and inclusive. This includes a call to disconnect by turning off devices when we're not working. For my part, I tried to do this by keeping my phone in "Do Not Disturb" mode in another room during heads-down work. How did you stay productive this year?
### 15 unusual paths to tech
Is tech your second career? It is for many Opensource.com writers, as we learned when Jen Wike Huger asked which roles we held before taking the techie path. Janitor, papermaker, map editor, and musician are just a few past lives that came up.
[The complete list][11] is a fascinating read that confirms why open source is so special: Done well, it unites folks with diverse skillsets and experiences to build something great. It also confirms that it's never too late—and you're never too "out of place"— to jump into open source.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/12/open-source-career-lessons
作者:[Lauren Maffeo][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/lmaffeo
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop)
[2]: https://opensource.com/article/21/2/linux-workday
[3]: https://opensource.com/article/21/1/notes-joplin
[4]: https://opensource.com/article/21/9/alternatives-zoom
[5]: https://opensource.com/article/21/1/stay-focused
[6]: https://opensource.com/article/21/2/python-pulp-internship
[7]: https://opensource.com/article/21/2/non-engineering-jobs-tech
[8]: https://opensource.com/article/21/5/breakfast
[9]: https://opensource.com/article/21/2/high-availability-home-office
[10]: https://opensource.com/article/21/1/productivity-wishlist
[11]: https://opensource.com/article/21/5/unusual-tech-career-paths

View File

@ -1,126 +0,0 @@
[#]: subject: "Hands On With GNOMEs New Terminal for Linux Users"
[#]: via: "https://itsfoss.com/gnome-console/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Hands On With GNOMEs New Terminal for Linux Users
======
A few days ago, I shared my experience with the new GNOME Text Editor which is a replacement for the older Gedit editor.
A few days ago, I shared my [experience with the new GNOME Text Editor][1] which is a replacement for the older Gedit editor.
But thats not the only new replacement of an older application. GNOME 42 also has a new terminal called [Console][2].
Let me share whats new in this new terminal offering from GNOME and what it is like to use it.
### Console: GNOMEs new Terminal Emulator
The aim of this new application is to provide a “simple user-friendly terminal emulator”. And it is indeed a simple application in terms that it doesnt offer many features you are accustomed to in the older application, GNOME Terminal.
Ill come back to that point later. Lets first see whats new in GNOME Console.
#### Desktop notifications
GNOME Terminal in Ubuntu never had this feature though I have seen it in distributions like elementary and Fedora.
This is a handy feature that sends a desktop notification when a long-running command finishes its execution.
![Notification from GNOME Console][3]
Getting notified of command completion helps you stay productive when you are distracted by something else while the command runs.
#### Changes color for root operations
This is probably a unique feature I havent seen in any other terminal application.
When you use a command with sudo or [switch to the root user][4], the application window turns red.
![GNOME Console turns red when using sudo or root][5]
I presume the idea here is to warn the users that they are using escalated privileges and hence be careful while running the commands.
#### Themes
Following the new design guidelines, Console offers three theme variants: light, dark and system theme.
![themes gnome console][6]
System theme is used by default and based on whether your OS is using the dark or light theme, it changes the color. With dedicated dark and light options, you can change the theme irrespective of the system theme.
And thats about it. There is not a lot of [terminal customization][7] you can perform here.
#### Transparent interface
GNOME Console has a transparent interface by default. In normal mode, you can see the background a little.
For example, you can see some blurred text from the background application:
![GNOME Console has a transparent interface][8]
What I noticed is that when Console goes into full-screen mode, the interface is no longer transparent. Also, you cannot configure the transparency.
#### Other features
You get to use tabs in Console, thankfully.
![Tabbed interface][9]
You can perform a search operation the same as the good old GNOME Terminal.
![Search operation in GNOME Console][10]
There are not a lot of options here. The hamburger menu allows you to look at all the available keyboard shortcuts at a glance.
![keyboard shortcuts in GNOME Console][11]
And thats everything about the GNOME Console.
### Installing GNOME Console on Ubuntu 22.04
If you are using a distribution that uses vanilla GNOME 42, you should have the new terminal available by default.
Though Ubuntu 22.04 uses GNOME 22.04, it still uses the older GNOME Terminal. However, you can install the new one using this command:
```
sudo apt install gnome-console
```
### Conclusion
You might be wondering why a new Terminal application when we already have a better and more featureful GNOME Terminal. Its because GNOME has new design guidelines. Transforming the old code base of these applications is too complicated and probably not worth the effort. Writing from scratch is easier and hence you see more new GNOME applications like Console and Text Editor.
And as the idea of this new application is to keep things simpler, you dont get a lot of features here. You cannot customize it, change the color, font, etc. Since there is no scope for customization, there is no need for profiles.
For people who seldom use the terminal, Console is sufficient. Although, I think that they should have added the feature to show asterisks while typing passwords. [Beginner-focused distros][12] like Mint use it to avoid confusing new Linux users.
What do you think of the new GNOME Console and the entire approach of creating new GNOME apps?
--------------------------------------------------------------------------------
via: https://itsfoss.com/gnome-console/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/gnome-text-editor/
[2]: https://gitlab.gnome.org/GNOME/console
[3]: https://itsfoss.com/wp-content/uploads/2022/04/notification-from-gnome-console.png
[4]: https://itsfoss.com/root-user-ubuntu/
[5]: https://itsfoss.com/wp-content/uploads/2022/04/GNOME-Console-turns-red-when-using-sudo-or-root-800x442.webp
[6]: https://itsfoss.com/wp-content/uploads/2022/04/themes-gnome-console.png
[7]: https://itsfoss.com/customize-linux-terminal/
[8]: https://itsfoss.com/wp-content/uploads/2022/04/transparent-gnome-console.png
[9]: https://itsfoss.com/wp-content/uploads/2022/04/tabs-GNOME-Console.png
[10]: https://itsfoss.com/wp-content/uploads/2022/04/search-GNOME-Console.png
[11]: https://itsfoss.com/wp-content/uploads/2022/04/keyboard-shortcuts-gnome-console.png
[12]: https://itsfoss.com/best-linux-beginners/

View File

@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/2022/05/gnome-classic-ubuntu-22-04/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

View File

@ -1,83 +0,0 @@
[#]: subject: "Experiment with containers and pods on your own computer"
[#]: via: "https://opensource.com/article/22/5/containers-pods-101-ebook"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Experiment with containers and pods on your own computer
======
Start exploring the essentials of container technology with this new downloadable guide.
![Looking at a map][1]
(Image by: opensource.com)
In the TV show *Battlestar Galactica*, the titular mega-ship didn't actually do a whole lot. It served as a stalwart haven for its crew, a central point of contact for strategy and orchestration, and a safe place for resource management. However, the Caprican Vipers, one-person self-contained space vessels, went out to deal with evil Cylons and other space-borne dangers. They never just send one or two Vipers out, either. They sent lots of them. Many redundant ships with essentially the same capabilities and purpose, but thanks to their great agility and number, they always managed to handle whatever problem threatened the Battlestar each week.
If you think you're sensing a developing analogy, you're right. The modern "cloud" is big and hulking, an amalgamation of lots of infrastructure spread over a great distance. It has great power, but you'd be wasting much of its capability if you treated it like a regular computer. When you want to handle lots of data from millions of input sources, it's actually more efficient to bundle up your solution (whether that takes the form of an application, website, database, server, or something else) and send out tiny images of that solution to deal with clusters of data. These, of course, would be *containers*, and they're the workforce of the cloud. They're the little solution factories you send out to handle service requests, and because you can spawn as many as you need based on the requests coming in at any given time, they're theoretically inexhaustible.
### Containers at home
If you don't have a lot of incoming requests to deal with, you might wonder what benefit containers offer to you. Using containers on a personal computer does have its uses, though.
#### Containers as virtual environments
With tools like Podman, LXC, and Docker, you can run containers the same way you might have historically run virtual machines. Unlike a virtual machine, though, containers don't require the overhead of emulated firmware and hardware.
You can download container images from public repositories, launch a minimalist Linux environment, and use it as a testing ground for commands or development. For instance, say you want to try an application you're building on Slackware Linux. First, search for a suitable image in the repository:
```
$ podman search slackware
```
Then select an image to use as the basis for your container:
```
$ podman run -it --name slackware vbatts/slackware
sh-4.3# grep -i ^NAME\= /etc/os-release
NAME=Slackware
```
### Containers at work
Of course, containers aren't just minimal virtual machines. They can be highly specific solutions for very specific requirements. If you're new to containers, it might help to start with one of the most common rites of passage for any new sysadmin: Starting up your first web server but in a container.
First, obtain an image. You can search for your favorite distribution using the `podman search` command or just search for your favorite httpd server. When using containers, I tend to trust the same distributions I trust on bare metal.
Once you've found an image to base your container on, you can run your image. However, as the term suggests, a container is *contained*, so if you just launch a container, you won't be able to reach the standard HTTP port. You can use the `-p` option to map a container port to a standard networking port:
```
$ podman run -it -p 8080:80 docker.io/fedora/apache:latest
```
Now take a look at port 8080 on your localhost:
```
$ curl localhost:8080
Apache
```
Success.
### Learn more
Containers hold much more potential than just mimicking virtual machines. You can group them in pods, construct automated deployments of complex applications, launch redundant services to account for high demand, and more. If you're just starting with containers, you can [download our latest eBook][2] to study up on the technology and even learn to create a pod so you can run WordPress and a database.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/containers-pods-101-ebook
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png
[2]: https://opensource.com/downloads/containers-pods-101-ebook

View File

@ -1,95 +0,0 @@
[#]: subject: "Xebian A Blend of Debian and Goodness of Xfce [Review]"
[#]: via: "https://www.debugpoint.com/2022/05/xebian-review-2022/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Xebian A Blend of Debian and Goodness of Xfce [Review]
======
Heres a quick review of the nice and sleek Xebian Linux Distribution.
Xebian is an Xfce desktop environment based Linux distribution based on Debian Unstable (sid) branch. This Linux Distribution brings a basic Xfce desktop with Debian without configuration changes and additional packages. Hence, you get a vanilla experience out of the box without worrying much about installing Debian and Xfce.
With that said, heres a quick review of Xebian if you want to try it out.
### Xebian Review
#### Installation
Debian Installation can be tricky considering a variety of ISO available (mini, free, non-free and all that). After all, it is a truly “Universal Operating System”. But with Xebian, its effortless because it comes with only one 64-bit ISO file, which gives you Debian sid and Xfce. Xebian uses Debians native installer and is fairly straightforward to install this distribution in your physical system or a virtual machine.
During my test, the installation went fine, and no issues were reported. Installation took around 4 minutes.
#### Look and Feel
After installing, you get a nice login screen with Xebian default wallpaper when you first boot the system. The login screen is the standard default Xfce desktop login screen.
![Xebian Logn Screen][1]
First and foremost, the desktop is very lightweight and has a clean look with Xfce. Xebian gives exactly the stock version of Xfce with Debian. So, the only difference is the default wallpaper which looks nice and the default Numix theme (dark). The Adwaita and Gerybird themes are also present for those who like a more legacy look.
Second, the top panel has the Whisker Menu on the right and the standard system tray with volume controls, battery indication, network/Wi-Fi and date/time.
#### Applications
Xebian packages all the Xfce native applications and does not add anything extra. When you install it, you should already have a stable working desktop with the following applications pre-loaded.
* Thunar File Manager
* Ristretto Image Viewer
* Mousepad Text Editor
* Catfish File Search
* XFCE Terminal
* Firefox
* Synaptic Package Manager
* GParted for partitioning
* System Settings
Other than that, if you need any additional applications, you can easily install them using the Synaptic Package Manager. And tweaking the software source is easy with the built-in “Software and Sources” application.
The [Xfce 4.16][2] is the official version which the stable at the moment alongside its native applications. At its core, it is based on Debian Unstable “sid” which features Debian 12 “bookworm” release path as of writing this. And it is based on the latest [Linux Kernel 5.17][3] being a rolling release. The Xfce 4.18 is still far away from getting a final release.
Moreover, if you need a moderate image editor, graphics software and Office suite (such as LibreOffice) you need to install them manually. They are not part of the ISO file.
Now, lets take a look at the performance.
#### Performance of Xebian
Xebian is lightweight and perfect for older hardware, thanks to Debian. I tested the performance in two phases. The ideal phase where I kept the system idle for some time consumes about 710 MB of memory, and the CPU is at, on average 2%. Most of the idle state resources are consumed by the Xfce4-desktop and Xfce Window manager.
Second, I tested it in the heavy usage phase. I tried Xebian with one instance of File Manager, Text editor, terminal, and Firefox web browser in this workload.
With this workload, Xebian consumes 1.2 GB of memory, 2% to 3% CPU on average, depending on the respective application activity.
Moreover, most of the memory and CPU consumed by Firefox obviously, followed by an almost 50% jump in memory consumption of Xfce Window Manager.
Overall, I think it is stable and should work fine in mid-range hardware with a minimum of 4 GB ram.
### Closing Notes
There are very few [Linux distributions][4] that are based on Debian Unstable branch. If you are looking for a specific combination of Xfce and Debian sid, then Xebian is perfect because you get a super solid rolling release from Debian and with Xfce built-in.
Although it says “unstable”, in my experience, Debian “unstable” works well if you keep your system up to date weekly.
Finally, head over to the official website and [download the ISO file][5] if you want to try this distribution.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/xebian-review-2022/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2022/05/Xebian-Logn-Screen-1024x578.jpg
[2]: https://www.debugpoint.com/2021/02/xfce-4-16-review/
[3]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
[4]: https://www.debugpoint.com/category/distributions
[5]: https://xebian.org/download/

View File

@ -1,78 +0,0 @@
[#]: subject: "My favorite open source tool for using crontab"
[#]: via: "https://opensource.com/article/22/5/cron-crontab-ui"
[#]: author: "Kevin Sonney https://opensource.com/users/ksonney"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
My favorite open source tool for using crontab
======
Crontab-ui is a web frontend written in Node.js that helps manage the crontab file.
![Woman using laptop concentrating][1]
(Image by Mapbox Uncharted ERG, [CC-BY 3.0 US][2])
*Automation is a hot topic right now. In my day job as a site reliability engineer (SRE), part of my remit is to automate as many repeating tasks as possible. But how many of do that in our daily, not-work, lives? This year, I am focused on automating away the toil so that we can focus on the things that are important.*
One of the earliest things I learned about as a fledgling systems administrator was `cron`. Cron is used far and wide to do things like rotate logs, start and stop services, run utility jobs, and more. It is available on almost all Unix and Linux systems, and is something every sysadmin I know uses to help manage services and servers. Cron can run any console application or script automatically, which makes it very, very flexible.
![Image of a Crontab][3]
(Image by: Kevin Sonney, CC BY-SA 4.0)
I have used cron to fetch email, run filtering programs, make sure a service is running, interact with online games like Habitica, and a lot more.
### Using cron the traditional way
To get started with cron, you can simply type `crontab -e` at the command line to open up an editor with the current `crontab` (or “cron table”) file for yourself (if you do this as root, you get the system crontab). This is where the job schedule is kept, along with when to run things. David Both has written [extensively][4] on the format of the file and how to use it, so I'm not going to cover that here. What I am going to say is that for new users, it can be a bit scary, and getting the timing set up is a bit of a pain.
### Introducing crontab-ui
There are some fantastic tools out there to help with this. My favorite is [crontab-ui][5], a web frontend written in Node.js that helps manage the crontab file. To install and start `crontab-ui` for personal use, I used the following commands.
```
# Make a backup
crontab -l > $HOME/crontab-backup
# Install Crontab UI
npm install -g crontab-ui
# Make a local database directory
mkdir $HOME/crontab-ui
# Start crontab-ui
CRON_DB_PATH=$HOME/crontab-ui crontab-ui
```
Once this is done, simply point your web browser at`http://localhost:8000` and you'll get the crontab-ui web interface. The first thing to do is click “Get from Crontab” to load any existing jobs you may have. Then click **Backup** so that you can roll back any changes you make from here on out.
![Image of Crontab-UI][6]
(Image by: Kevin Sonney, CC BY-SA 4.0)
Adding and editing cron jobs is very simple. Add a name, the full command you want to run, and the time (using cron syntax), and save. As a bonus, you can also capture logs, and set up the mailing of job status to your email of choice.
When you're finished, click**Save to Crontab**.
I personally really love the logging feature. With crontab-ui, you can view logs at the click of a button, which is useful when troubleshooting.
One thing I do recommend is to not run crontab-ui all the time, at least not publically. While it does have some basic authentication abilities, it really shouldn't be exposed outside your local machine. I don't need to edit my cron jobs frequently (anymore), so I start and stop it on demand.
Try crontab-ui the next time you need to edit your crontab!
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/cron-crontab-ui
作者:[Kevin Sonney][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ksonney
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png
[2]: https://creativecommons.org/licenses/by/3.0/us/
[3]: https://opensource.com/sites/default/files/2022-04/Day01-1.png
[4]: https://opensource.com/article/17/11/how-use-cron-linux
[5]: https://opensource.com/%5Bhttps%3A//github.com/alseambusher/crontab-ui%5D%28https%3A//github.com/alseambusher/crontab-ui%29
[6]: https://opensource.com/sites/default/files/2022-04/Day01-2.png

View File

@ -0,0 +1,127 @@
[#]: subject: "KDE Plasma 5.25: Top New Features and Release Details"
[#]: via: "https://www.debugpoint.com/2022/05/kde-plasma-5-25"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
KDE Plasma 5.25: Top New Features and Release Details
======
We will give you the feature summary of the KDE Plasma 5.25 desktop environment (upcoming).
KDE Plasma 5.25 is the 27th version of KDE Plasma desktop, not an LTS release. This release is followed by the prior [5.24 LTS][1], released in February. KDE Plasma 5.25 brings several exciting updates on the desktop UI, polished applets, widgets, a good set of gesture updates for touch-based devices and a massive list of bug fixes. Plasma 5.25 is based on Qt 5.15.2 and KDE Frameworks 5.94.
KDE Plasma releases on June 14, 2022, but before that following milestones are to be met:
* Soft feature freeze: May 5, 2022 (Completed)
* Beta: May 19, 2022
* Final release: June 14, 2022
The list of bug fixes and features is around 400+, and its challenging to cover them in a single article. We filtered out in this article some of the essential and visual changes which are more impactful straightaway to the general user base.
### KDE Plasma 5.25 Top New Features
#### Plasma Workspace & Desktop
Perhaps the most important visual change in KDE Plasma 5.25 is accent colour change based on the Wallpaper. As reported earlier, this change gives the final touch to the entire accent colour functionality and makes it complete with dynamic colour, custom colour and pre-sets. The option is available in the Appearance module. ([MR#1325)][2]
![KDE Plasma 5.25 Accent Colour Change Based on the wallpaper][3]
In addition, the accent colour change to the title bar was [also implemented][4] in the Breeze Classic theme and made it more consistent across the desktop.
Another exciting change that KDE Plasma 5.25 brings is an option for Themes to make the Panel float. When selected, the Panel detaches itself from the bottom of the screen with rounded corners and gives a floating feeling. The option is available in the additional settings in Edit Panel mode. Heres how it looks. ([MR#714)][5]
In addition to that, the power profiles menu in the system tray now has [icons][6] with their names in the [tooltip][7].
The login and logout screen see a [small UI change][8] to display avatar and profile name with longer user names.
Also, the spacing between the avatar icon and name with the logout screen action buttons is [increased][9] to give a more consistent look.
A fix was made to the Plasma Desktop to prevent widgets from [retaining position][10]when resolution changes back from fullscreen gaming. The widgets remember their position for respective resolutions.
The plasma Workspace module [reverts][11]to the lock screen behaviour on mouse move, which was removed accidentally earlier.
The Digital Clock “Copy to Clipboard” menu is now [more clean][12] with the removal of duplicate items and separate entries when seconds are enabled.
#### KWin Updates
KWin introduces an [option to hide][13] minimised windows in KDE Plasma 5.25. In addition to that, the desktop grid effect is [completely replaced][14] with the QML Version.
Furthermore, it is now possible to switch between display specific resolutions which are not visible to the operating system in Wayland. The change adds [libxcvt][15] dependency in Kwin, and details of this change can be found [here][16].
With this release, the switching between the dark and light mode is more smooth and animated thanks to this [MR][17], inspired by GNOME. It was not smooth earlier and now looks more professional behaviour.
#### Changes in Discover
The application page of Discover is now complete with [more focused details][18] at the top with Application metadata and images. The spacing of the app name, ratings and developer with the image at the header section with the summary in the middle. And rest at the bottom. Heres a side by side comparison of the earlier version with 5.25.
One tiny yet impactful change in Discover related to Flatpak apps. Discover now [shows][19] a message with an action button to clean Flatpak data for uninstalled apps.
Moreover, Discover now [shows the required permissions][20]of the Flatpak applications before you install them. In addition, if you are planning to install proprietary software, you get a warning message saying the potential consequences of using those (such as Microsoft Teams).
#### Application and Applet Changes
The System Monitor (KSystemStats) shows new [information about your window system][21] whether you are running X11 or Wayland. This should also display on the overview screen of the KSysGuard.
The Open With Dialog of XGD Portal sees a [complete UI rework][22]. The top section label is merged into one single information line for better clarity. Also, the search field is now visible for all modes, and the Show More button is moved up beside Search with better clarity. You can look at the below image (Credit KDE Team) for this change.
The Plasma Applet for NetworkManager now [shows][23] the WiFi frequency connection nection details to help distinguish which frequency you are connected to in the same SSID (same Wi-Fi Router). Its really helpful if both the band have the same Wifi Accent point name and you cannot distinguish between 4G or 5G.
The cuttlefish icon viewer now helps you [open the file path via the file manager][24] directly of the selected icon.
Plasma desktop now gives a [more organised view][25]in “Recent Documents” with the ability to show “non-file” items such as RDP or remote connections.
Moreover, the spell checker module in KRunner now [detects][26] the search language and gives you results.
When you run into an error, the KInfocenter now gives you [more information][27] about the error. The new design gives you what is the error, why it happened, whether you can fix it by yourself and how to report it to the devs. This is a nifty change that has a more significant impact. Heres a side by side view of the change.
### Closing Notes
Along with the above changes, this release improves several gestures for touch devices and a massive list of performance and bug fixes (counting 150+), which will enhance the KDE Plasma 5.25 experience for all of its users.
If you want to give a hand on testing, read the [contribution guide][28], and you can try the [unstable edition of KDE Neon][29] until the BETA release.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/kde-plasma-5-25
作者:[Arindam][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/2022/03/kde-plasma-5-24-review/
[2]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1325
[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/KDE-Plasma-5.25-Accent-Colour-Change-Based-on-wallpaper-1024x611.jpg
[4]: https://invent.kde.org/plasma/breeze/-/merge_requests/182
[5]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/714
[6]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1585
[7]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1668
[8]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1654
[9]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1647
[10]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/608
[11]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1707
[12]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1693
[13]: https://invent.kde.org/plasma/kwin/-/merge_requests/2341
[14]: https://invent.kde.org/plasma/kwin/-/merge_requests/2327
[15]: https://gitlab.freedesktop.org/xorg/lib/libxcvt
[16]: https://bugs.kde.org/448398
[17]: https://invent.kde.org/plasma/kwin/-/merge_requests/2088
[18]: https://invent.kde.org/plasma/discover/-/merge_requests/246
[19]: https://invent.kde.org/plasma/discover/-/merge_requests/297
[20]: https://invent.kde.org/plasma/discover/-/merge_requests/282
[21]: https://invent.kde.org/plasma/ksystemstats/-/merge_requests/34
[22]: https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/94
[23]: https://invent.kde.org/plasma/plasma-nm/-/merge_requests/112
[24]: https://invent.kde.org/plasma/plasma-sdk/-/merge_requests/32
[25]: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/551
[26]: https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/122
[27]: https://invent.kde.org/plasma/kinfocenter/-/merge_requests/90
[28]: https://community.kde.org/Get_Involved
[29]: https://neon.kde.org/download

View File

@ -0,0 +1,86 @@
[#]: subject: "Cant Run AppImage on Ubuntu 22.04? Heres How to Fix it"
[#]: via: "https://itsfoss.com/cant-run-appimage-ubuntu/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Cant Run AppImage on Ubuntu 22.04? Heres How to Fix it
======
The recently released [Ubuntu 22.04 LTS is full of new visual changes and features][1].
But like any other release, it has its share of bugs and issues.
One of the unpleasant surprises I got in Ubuntu 22.04 was with the AppImage applications.
Even with all the right permissions, AppImage applications just refused to launch in my newly installed Ubuntu 22.04 system.
If you face a similar situation, I have good news for you. The fix is quite simple.
### Running AppImage applications in Ubuntu 22.04 LTS
The problem here is that Ubuntu 22.04 is missing the [FUSE (Filesystem in Userspace) library][2]. This FUSE library provides an interface for userspace programs to export a virtual filesystem to the Linux kernel.
Thats [how the AppImage works][3]; on virtual filesystems. Since this crucial library is missing, AppImage doesnt work as expected.
Now that you understand the root cause of the issue lets see how to make it work.
#### Step 1: Install libfuse
Open the terminal in Ubuntu and use the following command to install the FUSE library support:
```
sudo apt install libfuse2
```
If you are new to the terminal stuff, heres what you need to know. It will ask you to enter the sudo password. Thats your account password, actually. And **when you type the password, nothing is displayed on the screen**. Thats by design. Just keep on typing the password and enter.
![Install libfuse2 in Ubuntu][4]
#### Step 2: Make sure AppImage files have correct file permissions
This one goes without saying. You need to have execute permission on the downloaded AppImage file of an application.
Go to the folder where you have downloaded the desired applications AppImage file. **Right-click** on it and **select Properties**.
Now go to the **Permissions tab** and check the “**Allow executing file as program**” option.
![give execute permission to AppImage file][5]
With that set, you are good to go. Just double-click the file now, and it should run the application as intended.
This little step of getting libfuse is on my [list of recommended things to do after installing Ubuntu 22.04][6].
#### Further troubleshooting tips
Your AppImage file is still not running? It may happen that the AppImage you have downloaded has some other issues that stop it from running.
One way to check it would be to download a known application like [Balena Etcher][7] and see if its AppImage file works or not. If this one works, then the AppImage file you downloaded for the other application is not good. You can dig deeper by running the AppImage file from the terminal and analyzing the error it shows.
#### Does it work for you?
Go ahead and try it. If it works, drop me a thank you note. If it still doesnt, mention the details in the comment sections and Ill try to help you out.
--------------------------------------------------------------------------------
via: https://itsfoss.com/cant-run-appimage-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/ubuntu-22-04-release-features/
[2]: https://packages.debian.org/sid/libfuse2
[3]: https://itsfoss.com/use-appimage-linux/
[4]: https://itsfoss.com/wp-content/uploads/2022/05/install-libfuse2-ubuntu.png
[5]: https://itsfoss.com/wp-content/uploads/2022/05/give-execute-permission-to-appimage-file-800x415.png
[6]: https://itsfoss.com/things-to-do-after-installing-ubuntu-22-04/
[7]: https://www.balena.io/etcher/

View File

@ -0,0 +1,67 @@
[#]: subject: "Easily Connect your iPhone with Linux as KDE Connect Arrives on the App Store"
[#]: via: "https://news.itsfoss.com/kde-connect-ios/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Easily Connect your iPhone with Linux as KDE Connect Arrives on the App Store
======
The impressive open-source client to help connect mobiles with computers is now available for iPhones and iPad. Try it out!
![kde connect][1]
KDE Connect is an open-source tool that lets you connect your mobile phone with your PC.
Originally, KDE Connect supported Android devices to connect with Linux. Gradually, they added support for Windows.
Now, it looks like you can use KDE Connect with your iOS device (iPhone or iPad) to connect to your Windows/Linux computer.
Note that macOS is also in the list of supported platforms. However, it is still an early release version for macOS. So, it may not work as good as it does with other platforms.
### KDE Connect on the App Store
![][2]
We did not notice any official announcement for this. However, some users spotted KDE Connect being available on the [App Store for iOS users][3] right after the release of [version 0.2.1][4].
The App Store lists all the essential features including:
* Shared clipboard: to copy/paste between devices.
* Ability to share files and URLs to your computer from any app.
* Use your phone screen as your computers touchpad (visual touchpad).
* Remote presentation remote mode.
* Run commands on your computer from your phone
* End-to-end TLS encryption for security.
While this remains as an open-source app, the app licensing is a bit different as spotted by [OMGUbuntu][5] to comply with App Store guidelines.
It is also worth noting that the feature set may not be the same as its Android counterpart, but at least we finally have KDE Connect for iOS users, making it a truly open-source cross-plaform solution to connect mobiles with computers.
Id be comfortable recommending KDE Connect to anyone who wants to keep things in check with their mobile through computers.
Head to the app store from the button below to get started installing it. You can also find various other installation options for different supported platforms on its [official download page][6].
Have you tried KDE Connect on iOS yet? Let me know your thoughts in the comments.
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/kde-connect-ios/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [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/kde-connect-on-iphone-ipad.jpg
[2]: https://news.itsfoss.com/wp-content/uploads/2022/05/kde-connect-ios.jpg
[3]: https://apps.apple.com/id/app/kde-connect/id1580245991
[4]: https://invent.kde.org/network/kdeconnect-ios/-/commit/43d2ecbbb7e4e70274849f5ec987721318eb9f57
[5]: https://www.omgubuntu.co.uk/2022/05/kde-connect-iphone-app-available
[6]: https://kdeconnect.kde.org/download.html

View File

@ -0,0 +1,207 @@
[#]: subject: "Fedora 35 v Fedora 36: Whats the Difference?"
[#]: via: "https://news.itsfoss.com/fedora-35-v-fedora-36/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Fedora 35 v Fedora 36: Whats the Difference?
======
Fedora 36 is here. Its a significant upgrade. So, whats different from Fedora 35? Should you upgrade now? Lets take a look.
![fedora comparison][1]
Fedora 36 is an impressive release with a [list of interesting feature upgrades][2].
While Fedora 35 included GNOME 41 and [debuted with a new KDE variant][3] (Fedora Kinoite) and several other technical changes, Fedora 36 is another interesting upgrade.
Fedora 36 packs in GNOME 42 with new feature additions, and some usual technical improvements.
Whats different between the two releases?
Here, we shall be focusing on the key changes considering the desktop user experience along with some technical differences.
#### 1. Support Lifespan
If you are reading this when we published this article, you still have the time to continue using Fedora 35 or upgrade to Fedora 36.
Fedora 35 will be supported until **November 2022**. Typically, every Fedora release gets support for 13 months.
So, you can expect Fedora 36 to be maintained until **June 2023**.
#### 2. Desktop Environment Choices
The primary offering for Fedora 35 features GNOME 41, and Fedora 36 comes with GNOME 42.
In addition to its GNOME editions, you can also find KDE and LXQt versions as other popular variants.
With Fedora 35, you get the option to use KDE Plasma 5.22 or LXQt 0.17.
And, with Fedora 36, you can find KDE Plasma 5.24 and LXQt 1.0 as your options.
#### 3. Wayland by Default for Nvidia
With Fedora 35, you already had Wayland by default for desktop sessions (initially introduced with Fedora 34), excluding proprietary Nvidia drivers.
Now, with Fedora 36, if you use a proprietary Nvidia driver, the GDM sessions will use Wayland by default.
#### 4. Wallpapers
Fedora always features some kind of artistic/creative wallpaper. You can see the default wallpaper difference in action here:
![][4]
![][5]
In addition to the default, Fedora 36 also comes with a newer collection of wallpapers.
Fedora 36 also includes dark/light variants of the wallpapers to blend in with the new dark mode theme preference.
![][6]
![][7]
#### 5. Appearance Menu & Dark Theme
Thanks to GNOME 42, Fedora 36 now features a new Appearance option in the system settings that lets you switch to a system-wide dark/light theme.
![Fedora 36 (Appearance menu)][8]
With Fedora 35, you did not have any options to enable a dark theme, which was a bummer at the time.
And, as mentioned previously, with the theme preferences, the background also changes automatically.
#### 6. Settings Menu
![][9]
![][10]
Fedora 36 received an upgrade to the settings menu with new options, dark mode support, and subtle changes to the look with an enhanced GNOME experience.
#### 7. Login and Lockscreen
You will also notice differences in the login screen with a darker default avatar ditching the red icon, making them look cleaner.
![][11]
![][12]
While I mention the details for the font changes later in the article, the lock screen lets you notice that significantly with the change in font size for the clock/time in the lock screen.
Of course, the blur effect for the background remains in both.
![][13]
![][14]
#### 7. Linux Kernel
Fedora releases always include the latest and greatest Linux Kernel available. So, if youre using the up-to-date version of Fedora 35/46, you will be getting the same Linux Kernel.
With Fedora 36, you get [Linux Kernel 5.17][15] out of the box which comes with a range of next-gen hardware support and improvements.
And, Fedora 35 featured Linux Kernel 5.14, but now you can find Linux Kernel 5.17.
#### 8. Screenshot UI
Yet another exciting [feature upgrade in GNOME 42][16]. The screenshot user interface is entirely different in Fedora 36 with an added ability to record the screen.
![][17]
![][18]
In Fedora 35, you can take screenshots similarly using the GNOME Screenshot app, but it does not have an integrated screen recording feature.
In addition to this, on Fedora 36, you get the ability to take a screenshot when you perform a right-click on the title bar of a window.
![Fedora 36][19]
You dont get to see this feature on Fedora 35.
#### 9. File Manager
File Manager isnt functionally different. However, with the user interface overhaul, icon changes, and improvements, Fedora 36 features a snappier file manager overall.
![][20]
![][21]
I never liked the icon theme on Fedora 35. So, thats a pretty good upgrade for users like me.
Of course, you can always look for [GTK icon themes][22] to personalize the experience.
#### 10. Software Center
![Software Center on Fedora 36][23]
The software center has received improvements in Fedora 36 for its user experience and being more responsive to different screen resolutions.
You get all the essential details when comes to an app you select to view/install on Fedora, 35 and 36. Hence, the difference is limited to the overall UI and UX.
![Software Center on Fedora 35][24]
#### 11. Default Font Changes
Fedora 35 relies on multiple fonts for various languages. By default, it uses the DejaVu font, however, when you select a different language like Chinese, Japanese, Korean, etc, it has other defaults.
So, to make things consistent, Fedora 36 is making **Noto Fonts** the default, which supports various languages, and are generally higher quality fonts.
#### 12. Technical Changes
If you are looking to explore all the details, the official changelog would be better. However, to highlight a few important things, these are some of the noteworthy upgrades in Fedora 36:
* Golang 1.18
* Ruby 3.1
* GNOME Text Editor replacing Gedit
* Subtle changes to the terminal application
### Wrapping Up
Unlike Ubuntu LTS releases (for instance, [20.04 vs 22.04][25]), when it comes to Fedora, you do have some time to upgrade, but you will have to eventually upgrade to keep getting updates/security fixes.
If you do not like the changes with newer Fedora releases, you may want to try Ubuntu or switch to an Arch Linux distro like [Manjaro][26].
*What do you think about the latest Fedora 36 release? Let us know your thoughts in the comments below.*
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/fedora-35-v-fedora-36/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [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/04/fedora-35-vs-fedora-36.jpg
[2]: https://news.itsfoss.com/fedora-36-release-date-features/
[3]: https://news.itsfoss.com/fedora-35-release/
[4]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-wallpaper.jpg
[5]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-wallpaper.jpg
[6]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-wallpaper-collection.jpg
[7]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-wallpaper-collection.jpg
[8]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-appearance.png
[9]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-settings.jpg
[10]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-settings.png
[11]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-login.jpg
[12]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-login.jpg
[13]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-lockscreen.jpg
[14]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-lockscreen.jpg
[15]: https://news.itsfoss.com/linux-kernel-5-17-release/
[16]: https://news.itsfoss.com/gnome-42-features/
[17]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-screenshot.jpg
[18]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-screenshot-ui.jpg
[19]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-take-screenshot.jpg
[20]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-file-manager.png
[21]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-file-manager.png
[22]: https://itsfoss.com/best-gtk-themes/
[23]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-36-software-center.png
[24]: https://news.itsfoss.com/wp-content/uploads/2022/04/fedora-35-software-center.png
[25]: https://itsfoss.com/ubuntu-20-04-vs-22-04/
[26]: https://news.itsfoss.com/manjaro-linux-experience/

View File

@ -0,0 +1,176 @@
[#]: subject: "How to (safely) read user input with the getline function"
[#]: via: "https://opensource.com/article/22/5/safely-read-user-input-getline"
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to (safely) read user input with the getline function
======
Getline offers a more flexible way to read user data into your program without breaking the system.
![Woman using laptop concentrating][1]
(Image by Mapbox Uncharted ERG, [CC-BY 3.0 US][2])
Reading strings in C used to be a very dangerous thing to do. When reading input from the user, programmers might be tempted to use the `gets` function from the C Standard Library. The usage for `gets` is simple enough:
`char *gets(char *string);`
That is, `gets` reads data from standard input, and stores the result in a string variable. Using `gets` returns a pointer to the string, or the value NULL if nothing was read.
As a simple example, we might ask the user a question and read the result into a string:
```c
#include <stdio.h>
#include <string.h>
int main()
{
  char city[10]; // Such as "Chicago"
  // this is bad .. please don't use gets
  puts("Where do you live?");
  gets(city);
  printf("<%s> is length %ld\n", city, strlen(city));
  return 0;
}
```
Entering a relatively short value with the above program works well enough:
```
Where do you live?
Chicago
<Chicago> is length 7
```
However, the `gets` function is very simple, and will naively read data until it thinks the user is finished. But `gets` doesn't check that the string is long enough to hold the user's input. Entering a very long value will cause `gets` to store more data than the string variable can hold, resulting in overwriting other parts of memory.
```
Where do you live?
Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch
<Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch> is length 58
Segmentation fault (core dumped)
```
At best, overwriting parts of memory simply breaks the program. At worst, this introduces a critical security bug where a bad user can insert arbitrary data into the computer's memory via your program.
That's why the `gets` function is dangerous to use in a program. Using `gets`, you have no control over how much data your program attempts to read from the user. This often leads to buffer overflow.
The `fgets` function has historically been the recommended way to read strings safely. This version of `gets` provides a safety check by only reading up to a certain number of characters, passed as a function argument:
`char *fgets(char *string, int size, FILE *stream);`
The `fgets` function reads from the file pointer, and stores data into a string variable, but only up to the length indicated by `size`. We can test this by updating our sample program to use `fgets` instead of `gets` :
```c
#include <stdio.h>
#include <string.h>
int main()
{
char city[10]; // Such as "Chicago"
puts("Where do you live?");
// fgets is better but not perfect
fgets(city, 10, stdin);
printf("<%s> is length %ld\n", city, strlen(city));
return 0;
}
```
If you compile and run this program, you can enter an arbitrarily long city name at the prompt. However, the program will only read enough data to fit into a string variable of `size` =10. And because C adds a null (\0') character to the ends of strings, that means`fgets` will only read 9 characters into the string:
```
Where do you live?
Minneapolis
<Minneapol> is length 9
```
While this is certainly safer than using `fgets` to read user input, it does so at the cost of "cutting off" your user's input if it is too long.
A more flexible solution to reading long data is to allow the string-reading function to allocate more memory to the string, if the user entered more data than the variable might hold. By resizing the string variable as necessary, the program always has enough room to store the user's input.
The `getline` function does exactly that. This function reads input from an input stream, such as the keyboard or a file, and stores the data in a string variable. But unlike `fgets` and `gets`, `getline` resizes the string with `realloc` to ensure there is enough memory to store the complete input.
`ssize_t getline(char **pstring, size_t *size, FILE *stream);`
The`getline` is actually a wrapper to a similar function called `getdelim` that reads data up to a special delimiter character. In this case, `getline` uses a newline ('\n') as the delimiter, because when reading user input either from the keyboard or from a file, lines of data are separated by a newline character.
The result is a much safer method to read arbitrary data, one line at a time. To use `getline`, define a string pointer and set it to NULL to indicate no memory has been set aside yet. Also define a "string size" variable of type `size_t` and give it a zero value. When you call `getline`, you'll use pointers to both the string and the string size variables, and indicate where to read data. For a sample program, we can read from the standard input:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
  char *string = NULL;
  size_t size = 0;
  ssize_t chars_read;
  // read a long string with getline
  puts("Enter a really long string:");
  chars_read = getline(&string, &size, stdin);
  printf("getline returned %ld\n", chars_read);
  // check for errors
  if (chars_read < 0) {
    puts("couldn't read the input");
    free(string);
    return 1;
  }
  // print the string
  printf("<%s> is length %ld\n", string, strlen(string));
  // free the memory used by string
  free(string);
  return 0;
}
```
As the `getline` reads data, it will automatically reallocate more memory for the string variable as needed. When the function has read all the data from one line, it updates the size of the string via the pointer, and returns the number of characters read, including the delimiter.
```
Enter a really long string:
Supercalifragilisticexpialidocious
getline returned 35
<Supercalifragilisticexpialidocious
> is length 35
```
Note that the string includes the delimiter character. For `getline`, the delimiter is the newline, which is why the output has a line feed in there. If you don't want the delimiter in your string value, you can use another function to change the delimiter to a null character in the string.
With`getline`, programmers can safely avoid one of the common pitfalls of C programming. You can never tell what data your user might try to enter, which is why using `gets` is unsafe, and `fgets` is awkward. Instead, `getline` offers a more flexible way to read user data into your program without breaking the system.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/safely-read-user-input-getline
作者:[Jim Hall][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/jim-hall
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png
[2]: https://creativecommons.org/licenses/by/3.0/us/

View File

@ -0,0 +1,133 @@
[#]: subject: "How to Upgrade to Fedora 36 from Fedora 35 Workstation (GUI and CLI Method)"
[#]: via: "https://www.debugpoint.com/2022/05/upgrade-fedora-36-from-fedora-35/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Upgrade to Fedora 36 from Fedora 35 Workstation (GUI and CLI Method)
======
COMPLETE STEPS TO UPGRADE TO FEDORA 36 FROM FEDORA 35 WORKSTATION
EDITION WITH GUI AND CLI METHOD.
Fedora 36 brings several important features such as the beautiful GNOME 42, Linux Kernel 5.17, default font changes and many stunning features. Moreover, Fedora 36 also brings Wayland display server as the default NVIDIA proprietary driver. Plus several other significant changes that Fedora 36 brings, which you can read here in our [top 10 feature coverage][1].
If you plan to upgrade to Fedora 36 from Fedora 35 workstation edition, here are the steps you need to perform.
![Fedora 36 Workstation Desktop][2]
### Upgrade to Fedora 36
There are two methods to upgrade to Fedora 36 workstation. The first is the command line method (CLI), and the second is the GUI method which is completely graphical. We will cover both ways in this guide.
However, before you get excited to upgrade, there is some housekeeping that you should do.
#### Steps to Follow before upgrading to Fedora 36
Firstly, Open GNOME Software and check for any pending updates. Or, open a terminal and run the following command to ensure that your system is up-to-date.
```
sudo dnf update
```
After the above command is complete, reboot your system to ensure all the updates are applied.
Secondly, take backups of your important documents such as pictures, docs or videos from your home directory to a safe place (perhaps a separate partition or USB stick). The Fedora upgrade process never fails, but if you use NVIDIA or any specific hardware with a dual boot system, I recommend you take backups.
Third, install the [Extensions Flatpak application][3] and disable all the GNOME Extensions (for the GNOME desktop). The primary reason is not all the extensions are ported yet to GNOME 42. Hence it is safe to disable all of them before upgrading. And you can enable them later after you complete the upgrade process.
Moreover, glance over the [Fedora 36 common bugs page][4] and the [forum][5] for any ongoing major bugs which may impact the upgrade process. Dont spend much time on this.
Finally, the upgrade process takes some time (in hours), so ensure you have sufficient time and a stable internet connection.
#### How to Upgrade to Fedora 36 Workstation
##### Graphical Method (GUI)
After the official release of Fedora 36, you should see a prompt in GNOME Software showing that an upgrade is available. If you do not see any prompt, dont worry. Wait for a day or two, and you should have it.
Also, you can visit the Updates tab in GNOME Software and see if it is available.
Click on the notification and hit Download to start the upgrade process. The upgrader will download the required packages and prompt you to restart. Hit restart to continue the upgrade process.
Fedora will apply the upgrades during reboot.
##### Command-Line method (CLI)
Firstly, you can follow the below steps, even if Fedora 36 is not yet released. And you can follow the same steps after the official release.
If you are comfortable with the command line, you can use the dnf upgrade command to perform the upgrade process.
Open up the terminal and run the below command:
```
sudo dnf upgrade --refresh
```
This command will refresh the packages for the new upgrade stream to get ready for Fedora 36.
Next, install the dnf upgrade plugin by running the below command. This is required for the upgrade process.
```
sudo dnf install dnf-plugin-system-upgrade
```
Make sure your system is up-to-date by running the below command and installing any necessary pending updates. Do it once again (if you have done it via pre-upgrade steps)
```
sudo dnf --refresh upgrade
```
Initiate the download process by running the below command. This command will fetch all required packages and save them locally before the upgrade.
```
sudo dnf system-upgrade download --releasever=36
```
If you installed many packages and applications manually and are unsure whether they are correctly supported by Fedora 36, run the above command with “allowerasing” flag. When you provide this, dnf will remove the packages that are blockers for your system upgrade.
The above command displays what will be replaced, updated, upgraded, or downgraded. Carefully glance through the list if you want to review the list. Or, you can check the red-marked items and start the upgrade process—something like below.
![Fedora 36 upgrade via CLI][6]
![Review the RED marked items][7]
![Start the Fedora 36 Upgrade from CLI][8]
Remember, the download size ideally is in GB, so that it might take some time based on your internet speed.
After the above command is complete, run the below command to start the upgrade.
```
sudo dnf system-upgrade reboot
```
The system will reboot automatically and wait until the entire upgrade process completes. As I mentioned earlier, this might take time in terms of hours, depending on your system hardware. Hence be patient.
You will be greeted with a brand new Fedora 36 system if all goes well.
Good luck! 🤞
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/upgrade-fedora-36-from-fedora-35/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: https://www.debugpoint.com/2021/04/fedora-34-features/
[2]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-36-Workstation-Desktop2.jpg
[3]: https://flathub.org/apps/details/org.gnome.Extensions
[4]: https://fedoraproject.org/wiki/Common_F36_bugs
[5]: https://ask.fedoraproject.org/tags/c/common-issues/141/none/f36/l/latest
[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-36-upgrade-via-CLI.jpg
[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/Review-the-RED-marked-items.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Start-the-Fedora-36-Upgrade-from-CLI.jpg

View File

@ -0,0 +1,104 @@
[#]: subject: "Whats new in Fedora Workstation 36"
[#]: via: "https://fedoramagazine.org/whats-new-fedora-36-workstation/"
[#]: author: "Merlin Cooper https://fedoramagazine.org/author/mxanthropocene/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Whats new in Fedora Workstation 36
======
![][1]
The latest release of Fedora Workstation 36 continues the Fedora Projects ongoing commitment to delivering the latest innovations in the open source world. This article describes some of the notable user-facing changes that appear in this version.
### GNOME 42
Fedora Workstation 36 includes the latest version of the GNOME desktop environment. GNOME 42 includes many improvements and new features. Just some of the improvements include:
* Significantly improved input handling, resulting in lower input latency and improved responsiveness when the system is under load. This is particularly beneficial for games and graphics applications.
* The Wayland session is now the default for those who use Nvidias proprietary graphics driver.
* A universal dark mode is now available.
* A new interface has been added for taking screenshots and screen video recordings.
In addition, many of the core apps have been ported to GTK 4, and the shell features a number of subtle refinements.
#### Refreshed look and feel
![GNOME 42 as featured in Fedora Workstation 36][2]
GNOME Shell features a refreshed look and feel, with rounder and more clearly separated elements throughout. All the symbolic icons have been updated and the top bar is no longer rounded.
#### Universal dark mode option
In Settings > Appearance, you can now choose a dark mode option which applies a dark theme to all supported applications. In addition, the pre-installed wallpapers now include dark mode variants. Dark themes can help reduce eye-strain when there is low ambient light, can help conserve battery life on devices with OLED displays, and can reduce the risk of burn-in on OLED displays. Plus, it looks cool!
#### New screenshot interface
![Taking screenshots and screen video recordings is now easier than ever][3]
Previously, pressing the Print Screen key simply took a screenshot of the entire screen and saved it to the Pictures folder. If you wanted to customize your screenshots, you had to remember a keyboard shortcut, or manually open the Screenshots app and use that to take the screenshot you wanted. This was inconvenient.
Now, pressing Print Screen presents you with an all-new user interface that allows you to take a screenshot of either your entire screen, just one window, or a rectangular selection. You can also choose whether to hide or show the mouse pointer, and you can also now take a screen video recording from within the new interface.
#### Core applications
![Apps made in GTK 4 + libadwaita feature a distinct visual style][4]
GNOMEs core applications have seen a number of improvements. A number of them have been ported to GTK 4 and use libadwaita, a new widget library that implements GNOMEs Human Interface Guidelines.
* Files now includes the ability to sort files by creation date, and includes some visual refinements, such as a tweaked headerbar design and file renaming interface.
* The Software app now includes a more informative update interface, and more prominently features GNOME Circle apps.
* The Settings app now has a more visually appealing interface matching the visual tweaks present throughout GNOME Shell.
* Text Editor replaces Gedit by default. Text Editor is an all-new app built in GTK 4 and libadwaita. You can always reinstall Gedit by searching for it in the Software app.
#### Wayland support on Nvidias proprietary graphics driver
In previous versions, Fedora Workstation defaulted to the X display server when using Nvidias proprietary graphics driver now, Fedora Workstation 36 uses the Wayland session by default when using Nvidias proprietary graphics driver.
If you experience issues with the Wayland session, you can always switch back to the Xorg session by clicking the gear icon at the bottom-right corner of the login screen and choosing “GNOME on Xorg”.
### Under-the-hood changes throughout Fedora Linux 36
* When installing or upgrading packages with DNF or PackageKit, weak dependencies that have been manually removed will no longer be reinstalled. That is to say: if _foo_ is installed and it has _bar_ as a weak dependency, and _bar_ is then removed, _bar_ will not be reinstalled when _foo_ is updated.
* The Noto fonts are now used by default for many languages. This provides greater coverage for different character sets. For users who write in the Malayalam script, the new Meera and RIT Rachana fonts are now the default.
* systemd messages now include unit names by default rather than just the description, making troubleshooting easier.
![systemd messages shows unit names by default][5]
### Upgrade now!
You can upgrade your system through GNOME Software, via _[dnf system-upgrade][6]_ in the terminal, or [download the live ISO image][7] from the official website.
### Also check out…
There are always cool things happening in the Fedora Project!
* The social links in the upper right corner on Fedora Magazine now include our official [Fedora YouTube prescence][8], [Fedora Matrix homeserver][9], and the [Fedora Discussion][10] website!
* Fedora Discussion has been lightly renovated! Come and chat with us! ☺️
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/whats-new-fedora-36-workstation/
作者:[Merlin Cooper][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/mxanthropocene/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2022/04/fedora36workstation-816x345.jpg
[2]: https://fedoramagazine.org/wp-content/uploads/2022/03/fw36-1-1024x640.png
[3]: https://fedoramagazine.org/wp-content/uploads/2022/03/scrui.png
[4]: https://fedoramagazine.org/wp-content/uploads/2022/03/libadwaitat-1024x633.png
[5]: https://fedoramagazine.org/wp-content/uploads/2022/03/systemdmsg.png
[6]: https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/
[7]: https://getfedora.org/en/workstation/download/
[8]: https://www.youtube.com/channel/UCnIfca4LPFVn8-FjpPVc1ow
[9]: https://chat.fedoraproject.org/#/welcome
[10]: https://discussion.fedoraproject.org/

View File

@ -0,0 +1,214 @@
[#]: subject: "10 Things to Do After Installing Fedora 36 Workstation [With Bonus Tip]"
[#]: via: "https://www.debugpoint.com/2022/05/10-things-to-do-fedora-36-after-install/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
10 Things to Do After Installing Fedora 36 Workstation [With Bonus Tip]
======
I am sure you have already updated or installed Fedora 36 Workstation Edition. With that said, heres our traditional article “10 Things to Do After Installing Fedora 36”, to give you some post-install tweak ideas.
This guide is primarily for the Fedora 36 Workstation edition, i.e., GNOME Desktop. Because it is the default version and the most popular in terms of the user base. Hence, to make yourself more productive and tweak the entire desktop in the best possible way, here are the 10 things you can do after installing Fedora 36 Workstation Edition (GNOME).
### 10 Things to Do After Installing Fedora 36 Workstation
#### 1. Update DNF Configuration
Before you make any updates or changes in your system, its worth checking the dnf package manager configuration file for existing settings. The DNF is the default package manager (like apt) for Fedora Linux.
If you are a long time Fedora Linux user, you may know that dnf package downloads are sometimes slower despite having high-speed internet.
You can use the max_parallel_downloads option, among other tricks, in the /etc/dnf/dnf.conf file to make it faster.
This option takes a number (from 3 to 20) as its value which you specify in the file, and that many numbers of packages can be downloaded parallelly using dnf.
```
sudo gnome-text-editor /etc/dnf/dnf.conf
```
```
max_parallel_downloads=10
```
Open the config file using any text editor and add the below line.
After the update, your file should look like the one below. Save and close the file.
#### 2. Update your system
After you make the above changes and perform any other work, its always a good idea to update your system to ensure all the latest packages are downloaded and installed. You can open the Software application and go to the Updates Tab. Or, open a terminal and use the following command to update your system.
```
sudo dnf update
```
```
sudo dnf upgrade
```
![dnf update][1]
#### 3. Firmware Updates
If your hardware manufacturer supports a special firmware package for Linux, you can quickly check them and get those updates via the following sequence of commands. However, it may not always be available, but it is worth trying.
```
sudo fwupdmgr refresh --forcesudo fwupdmgr get-updatessudo fwupdmgr update
```
#### 4. Change Touchpad settings
If you are a Laptop user, check whether the “Tap to Click” option is enabled in the settings. Open the Settings application, navigate to the “Mouse and Touchpad” tab and verify.
#### 5. Enable RPM Fusion
The RPM Fusion library is a set of packages and applications provided by the community. For example, DVD or media codecs, etc. The Official Fedora repo does not offer them because of proprietary in nature. You can read our complete guide here to [enable RPM Fusion in Fedora][2]. Or, run the following commands in sequence to make it available for Fedora 36.
```
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
```
```
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
```
After the above commands are complete, run the following to update your system.
```
sudo dnf upgrade --refreshsudo dnf groupupdate core
```
#### 6. Install GNOME Tweaks
The GNOME Tweaks is the essential application for Fedora 36 Workstation. It helps you to manage many areas of your GNOME desktop. After installation, you can launch it via the application menu. To install, run the following commands from the terminal.
```
sudo dnf install gnome-tweak-tool
```
#### 7. Enable Flatpak and Install Extensions
The more we are moving ahead with the adaptation of sandboxing of applications, Flatpak is becoming more and more essential on the Linux desktop. Arguably, Flatpak performs better and is widely adopted compared to Snap.
Hence, you should enable Flatpak beforehand as you continue to make your system productive.
Open a terminal and run the below command to enable Flatpak.
```
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
```
Then you can check out several applications available in [Flathub][3] to install.
However, one particular application that we recommend installing via Flathub is “[Extensions][4]“. This application helps you manage all the installed GNOME Extensions in your system. You can enable/disable them, launch settings of individual extensions and many such housekeeping tasks related to extensions. To install, open a terminal and run the below command. Once completed, you can launch the Extension application from the application menu.
```
flatpak install flathub org.gnome.Extensions
```
Alternatively, another application, “[Extension Manager][5]“, gives you some additional settings, and you may also try that via the below command.
```
flatpak install flathub com.mattjakeman.ExtensionManager
```
#### 8. Enable GNOME Extensions
Since we are talking about extensions, you need to set up your system before you install them. Open a terminal and run the below command to install the plugin to enable the hook to install extensions via the Firefox web browser.
```
sudo dnf install chrome-gnome-shell
```
Then open Firefox, and [visit this page][6]. And at the top, click on “install browser extension” and Continue.
![Add Browser Add-on for GNOME Shell Extension][7]
#### 9. Install these recommended GNOME Extensions
There are hundreds of GNOME Extensions available for various needs on the [official website][8]. However, heres a curated list that we think should be installed by everyone while using Fedora 36 with the latest GNOME 42 desktop.
**Dash to Dock** (for COSMIC): Convert the bottom dock to a fully functional application dock with features such as autohide, extend to edges, move around and always show.
**GSConnet**: Install this extension if you want to get notification and SMS alerts from your Android mobile phone to the GNOME desktop. This is an alternative to KDE Connect for GNOME Desktop.
**Just Perfection**: This extension helps you make any changes to your GNOME Shell. You can change the visibility of almost all components of GNOME Shell, behaviour tweaks and customise panels, and more.
[Blur My Shell:][9]The default GNOME activities background is grey while showing the wallpaper of the workspaces. This extension makes your background wallpaper blur and gives a nice blurry drop shadow to the workspaces. And it comes with many other options as well.
[Net Speed Simplified:][10]This extension shows the data transfer speed of your active network as upload/download speed right at the top panel.
#### 10. Install Recommended Applications
The default GNOME Desktop brings very minimal required applications. They are not sufficient for a functioning and productive desktop. Hence, heres a quick list of commands with essential applications that you can install, including a media player, torrent client, image editor, and more.
Copy and paste these into the terminal to install.
```
sudo dnf install -y vlcsudo dnf install -y steamsudo dnf install -y transmissionsudo dnf install -y gimpsudo dnf install -y gearysudo dnf install -y dropbox nautilus-dropboxsudo dnf install -y unzip p7zip p7zip-plugins unrar
```
If you prefer Flatpaks, heres the command for that.
```
flatpak install flathub org.videolan.VLCflatpak install flathub com.valvesoftware.Steamflatpak install flathub com.transmissionbt.Transmissionflatpak install flathub org.gimp.GIMPflatpak install flathub org.gnome.Gearyflatpak install flathub com.dropbox.Client
```
### Bonus Tip(s)
And finally, here are three bonus tips exclusively for you.
#### Enable Battery percentage
If you want to view the battery percentage at the system tray, run the following command to show it via settings.
```
gsettings set org.gnome.desktop.interface show-battery-percentage true
```
#### Install nice looking fonts
GNOME desktops default font on Fedora 36 is perfect. But if you crave more, here are some of the cool fonts you can install. After installation, you can use GNOME Tweak Tool to change.
```
sudo dnf install -y 'google-roboto*' 'mozilla-fira*' fira-code-fonts
```
#### TLP
Last but not least, you should install TLP if you are a Laptop user. TLP is a great utility to help optimise your Laptops battery. This utility comes with various command-line options to tweak and view reports about power consumption. All you need to do is install and forget it. It takes care of the basic power-saving optimisations.
```
sudo dnf install tlp tlp-rdw
```
### Closing Notes
I hope you enjoyed reading these tips and applied some of them. So, what is your favourite must-do post-install tip? Let me know in the comment box down below!
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/10-things-to-do-fedora-36-after-install/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2020/10/dnf-update.png
[2]: https://www.debugpoint.com/2020/07/enable-rpm-fusion-fedora-rhel-centos/
[3]: https://flathub.org/
[4]: https://flathub.org/apps/details/org.gnome.Extensions
[5]: https://flathub.org/apps/details/com.mattjakeman.ExtensionManager
[6]: https://extensions.gnome.org/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/03/Add-Browser-Add-on-for-GNOME-Shell-Extension.jpg
[8]: https://extensions.gnome.org/
[9]: https://extensions.gnome.org/extension/3193/blur-my-shell/
[10]: https://extensions.gnome.org/extension/3724/net-speed-simplified/

View File

@ -0,0 +1,117 @@
[#]: subject: "5 surprising things I do with Linux"
[#]: via: "https://opensource.com/article/22/5/surprising-things-i-do-linux"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
5 surprising things I do with Linux
======
Linux powers most of the internet, most of the cloud, and nearly all supercomputers. I also love to use Linux for gaming, office work, and my creative pursuits.
![Penguins gathered together in the Artic][1]
Image by: Opensource.com
When you're used to one operating system, it can be easy to look at other operating systems almost as if they were apps. If you use one OS on your desktop, you might think of another OS as the app that people use to run servers, and another OS as the app that plays games, and so on. We sometimes forget that an operating system is the part of a computer that manages a countless number of tasks (millions per second, technically), and they're usually designed to be capable of a diverse set of tasks. When people ask me what Linux *does*, I usually ask what they *want* it to do. There's no single answer, so here are five surprising things I do with Linux.
### 1. Laser cutting with Linux
![Blueprint by MSRaynsford][2]
Image by: MSRaynsford, CC BY-NC 4.0
At my nearest makerspace, there's a big industrial machine, about the size of a sofa, that slices through all kinds of materials according to a simple line-drawing design file. It's a powerful laser cutter, and I the first time I used it I was surprised to find that it just connected to my Linux laptop with a USB cable. In fact, in many ways, it was easier to connect to this laser cutter than it is to connect with many desktop printers, many of which require over-complicated and bloated drivers.
Using Inkscape and [a simple plugin][3], you can design cut lines for industrial laser cutters. Design a case for your Raspberry Pi laptop, use these Creative Commons design plans to build [a cryptex lockbox][4], cut out a sign for your shopfront, or whatever it is you have in mind. And do it using an entirely open source stack.
### 2. Gaming on Linux
![lutris desktop client][5]
Image by: The Lutris desktop client
Open source has [always had games][6], and there have been some high profile Linux games in the recent past. The first gaming PC I built was a Linux PC, and I don't think any of the people I had over for friendly couch co-op games realized they were using Linux by playing. And that's a good thing. It's a smooth and seamless experience, and the sky's the limit, depending on how much you want to spend on hardware.
What's more is that it's not just the games that have been coming to Linux, but the platform too. Valve's recent Steam Deck is a popular handheld gaming console that runs Linux. Better still, many open source software titles have been publishing releases on Steam, including [Blender][7] and [Krita][8], as ways to encourage wider adoption.
### 3. Office work on Linux
![Calligra Words][9]
Image by: [Opensource.com][10]
Linux, like life, isn't always necessarily exciting. Sometimes, you need a computer to do ordinary things, like when you pay bills, make a budget, or write a paper for school or a report for work. Regardless of the task, Linux is also normal, everyday desktop computer. You can use Linux for the mundane, the everyday, the "usual".
You're not limited to just the big name applications, either. I do my fair share of work in the excellent LibreOffice suite, but on my oldest computer I use the simpler Abiword instead. Sometimes, I like to explore Calligra, the KDE office suite, and when there's precision [design work][11] to be done (including [specialized procedural design work][12]), I use Scribus.
The greatest thing about using Linux for everyday tasks is that ultimately nobody knows what you used to get to the end product. Your tool chain and your workflow is yours, and the results are as good or better than what locked-down, non-open software produces. I have found that using Linux for the everyday tasks makes those tasks more fun for me, because open source software inherently permits me to develop my own path to my desired outcome. I try to create solutions that help me [get work done efficiently][13], or that help me [automate important tasks][14], but I also just enjoy the flexibility of the system. I don't want to adapt for my tool chain, I want to adapt my tools so that they work for me.
### 4. Music production on Linux
![Ardour][15]
Image by: [Opensource.com][16]
I'm a hobbyist musician, and before I started doing all of my production on computers I owned several synthesizers and sequencers and multi-track recorders. One reason it took me as long as it did to switch to computer music was that it didn't feel modular enough for me. When you're used to wiring physical boxes to one another to route sound through filters and effects and mixers and auxiliary mixers, an all-in-one application looks a little underwhelming.
It's not that an all-in-one app isn't appreciated, by any means. I like being able to open up one application, like [LMMS][17], that happens to have everything I want. However, in practice it seems that no music application I tried on a computer actually had everything I needed.
When I switched to Linux, I discovered a landscape built with modularity as one of its founding principles. I found applications that were just [sequencers][18], applications that were just synthesizers, mixers, recorders, patch bays, and so on. I could build my own studio on my computer just as I'd built my own studio in real life. Audio production has developed in leaps and bounds on Linux, and today there are open source [applications][19] that can act as a unified control center while retaining the extensibility to pull in sounds from elsewhere on the system. For a patchwork producer like me, it's a dream studio.
### 5. Retro computing on Linux
![Mageia 8][20]
Image by: [Opensource.com][21]
I don't like throwing away old computers, because very rarely do old computers actually die. Usually, an old computer is "outgrown" by the rest of the world. Operating systems get too bloated for an old computer to handle, so you stop getting OS and security updates, applications start to demand resources your old computer just doesn't have, and so on.
I tend to [adopt old computers][22], putting them to work as either lab machines or home servers. Lately, I find that adding an SSD drive to serve as the root partition, and using XFCE or a similar lightweight desktop, makes even a computer from the previous decade a pleasantly usable machine for a lot more work than you might expect. Graphic design, web design, programming, stop-motion animation, and much more, are trivial tasks on low spec machines, to say nothing of simple office work. With Linux driving a machine, it's a wonder businesses ever upgrade.
Everybody has their favorite "rescue" distribution. Mine are Slackware and Mageia, both of which still release 32-bit installer images. Mageia is RPM-based, too, so you can use modern packaging tools like `dnf` and `rpmbuild`.
### Bonus: Linux servers
OK, I admit Linux on servers isn't at all surprising. In fact, to people who know of Linux but don't use Linux themselves, a data center is usually the first thing that pops into their heads when "Linux" is mentioned. The problem with that assumption is that it can make it seem obvious that Linux ought to be great on the server, as if Linux doesn't even have to try. It's a flattering sentiment, but the fact is that Linux is great on servers because there's a monumental effort across global development teams to make Linux especially effective at what it does.
It isn't by chance that Linux is the robust operating system that powers most of the internet, [most of the cloud][23], nearly all the supercomputers in existence, and more. Linux isn't stagnate, and while it has a rich history behind it, it's not so steeped in tradition that it fails to progress. New technologies are being developed all the time, and Linux is a part of that progress. Modern Linux adapts to growing demands from a changing world to make it possible for systems administrators to provide networked services to people all over the world.
It's not everything Linux can do, but it's no small feat, either.
### Linux isn't that surprising
I remember the first time I met someone who'd grown up using Linux. It never seemed to happen for most of the time I've been a Linux user, but lately it's relatively common. I think the most surprising encounter was with a young woman, toddler in tow, who saw whatever geeky t-shirt I was wearing at the time and casually mentioned that she also used Linux, because she'd grown up with it. It actually made me a little jealous, but then I remembered that Unix on a desktop computer simply *didn't exist* when I was growing up. Still, it's fun to think about how casual Linux has become over the past few decades. It's even more fun to be a part of it.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/surprising-things-i-do-linux
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/OSDC_Penguin_Image_520x292_12324207_0714_mm_v1a.png
[2]: https://opensource.com/sites/default/files/2022-05/bitmap.png
[3]: https://github.com/JTechPhotonics/J-Tech-Photonics-Laser-Tool/releases/tag/v1.0-beta_ink0.9
[4]: https://msraynsford.blogspot.com/2016/10/laser-cut-cryptex.html
[5]: https://opensource.com/sites/default/files/uploads/lutris.png
[6]: https://opensource.com/article/20/5/open-source-fps-games
[7]: http://blender.org
[8]: http://krita.org
[9]: https://opensource.com/sites/default/files/2022-05/calligra-words.jpg
[10]: https://opensource.com/home-page-new
[11]: https://opensource.com/article/21/12/desktop-publishing-scribus
[12]: https://opensource.com/article/19/7/rgb-cube-python-scribus
[13]: https://opensource.com/article/21/1/raspberry-pi-productivity
[14]: https://opensource.com/article/22/5/remote-home-assistant
[15]: https://opensource.com/sites/default/files/2022-05/music.jpg
[16]: https://opensource.com/home-page-new
[17]: https://opensource.com/life/16/2/linux-multimedia-studio
[18]: https://opensource.com/article/21/12/midi-loops-seq24
[19]: https://opensource.com/article/17/6/qtractor-audio
[20]: https://opensource.com/sites/default/files/2022-05/mageia.jpg
[21]: https://opensource.com/home-page-new
[22]: https://opensource.com/article/19/7/how-make-old-computer-useful-again
[23]: https://opensource.com/article/20/10/keep-cloud-open

View File

@ -0,0 +1,336 @@
[#]: subject: "How To Upgrade To Fedora 36 From Fedora 35 [Workstation And Server]"
[#]: via: "https://ostechnix.com/upgrade-to-fedora-36-from-fedora-35/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How To Upgrade To Fedora 36 From Fedora 35 [Workstation And Server]
======
A Step By Step Guide To Upgrade Fedora 35 To Fedora 36
Fedora 36 has been released! This step by step tutorial tutorial explains how to upgrade to Fedora 36 from Fedora 35 and older versions. If you're already using Fedora 35, you can now safely upgrade to Fedora 36 desktop or server edition for latest features, performance and stability improvements.
### Prerequisites
Before upgrading to Fedora 36, you need to do a few important tasks.
1. It is strongly RECOMMENDED to Backup your important data before upgrading to Fedora 36. This should be your first step when you want to upgrade any system, regardless of the underlying operating system. Make sure you've backup of all important files, directories, configuration settings, browser bookmarks, and dot files etc.
2. Fedora 36 upgrade will probably take several minutes to complete. So make sure you've stable Internet connection and uninterrupted power supply.
3. During upgrade, your system will reboot automatically to apply updates. So ensure that there aren't any important jobs currently running (E.g. Scheduled backups).
4. See the Fedora 36 common issues and decide if you want to proceed.
5. Upgrades to the very next release (e.g. 35 to 36) as well as upgrades skipping one release (e.g. 34 to 36) are both supported. Upgrades across more than two releases are not supported. For example - you can't go from Fedora 33 to 36. It might work sometimes. However, if you encounter with any issues, you won't get any support. In such cases, first upgrade to next release (i.e. 33 to 34) and then try to upgrade from 34 to 36. It is always recommended to upgrade to next release before it reaches EOL.
Well, without further ado, let us start Fedora 36 upgrade task!
### Upgrade to Fedora 36 From Fedora 35
We can upgrade to Fedora 36 via GNOME software (GUI) and from command line (CLI). First, we will see the Graphical method using GNOME Software. This is suitable for those who use Fedora desktop edition.
Before get started, update your Fedora 35 system:
```
$ sudo dnf --refresh update
```
```
$ sudo dnf upgrade
```
Reboot your system to apply the updates:
```
$ sudo reboot
```
Let us check the current version using the following commands:
```
$ cat /etc/fedora-release
```
To view the detailed version output, run this instead:
```
$ cat /etc/os-release
```
![Display Fedora Version][1]
Now, follow any one of the below methods to upgrade Fedora to 36 desktop or server.
#### 1. Upgrade To Fedora 36 Workstation Via GNOME Software
**Step 1:** Open your Gnome Software Center and go to **Updates** section. You will see a notification that says - **Fedora 36 Now Available**. Click the Download button to download Fedora 36 packages.
![Download Fedora 36 From Gnome Software][2]
The required packages will be downloaded now. This will take a while depending on the Internet speed.
![Downloading Fedora Linux 36][3]
**Step 2:** Once the download is complete, you will be prompted to restart and upgrade. Click the "Restart & Upgrade" button to continue installing the updates.
![Click Restart And Upgrade Button][4]
**Step 3:** A new pop up window will appear and prompt you to click **Restart & Install Upgrade**. Just click on it to reboot your Fedora system.
![Click Restart And Install Upgrade Button][5]
After system reboot, the downloaded packages will be installed. This will take a while depending on the number of packages to install. Make sure your system is plugged into the power outlet and you have uninterrupted power supply.
![Installing Updates][6]
After installing the updates, the system will automatically reboot into the brand new Fedora 36 desktop.
You can check if your Fedora system is up-to-date under **Updates** section in Gnome Software.
![Check For Updates In Gnome Software][7]
Congratulations! We've successfully upgraded to Fedora 36!
**Step 4:** Open a Terminal window and check the installed Fedora version using command:
```
$ cat /etc/fedora-release
Fedora release 36 (Thirty Six)
```
To view the detailed output, run:
```
$ cat /etc/os-release
```
**Sample output:**
```
NAME="Fedora Linux"
VERSION="36 (Workstation Edition)"
ID=fedora
VERSION_ID=36
VERSION_CODENAME=""
PLATFORM_ID="platform:f36"
PRETTY_NAME="Fedora Linux 36 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:36"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f36/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=36
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=36
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation
```
![Check Fedora 36 Version From Terminal][8]
Alternatively, You can check the Fedora version under **Settings -> About** section.
![Check Fedora 36 Version From Settings Section][9]
#### 2. Upgrade To Fedora 36 Server From Commandline
This method is for those who runs Fedora server edition in their system.
**Step 1:** Update Fedora 35 server using command:
```
$ sudo dnf --refresh update
```
```
$ sudo dnf upgrade
```
Reboot your system to apply the updates.
```
$ sudo reboot
```
**Step 2:** Install dnf upgrade plugin by running the following command:
```
$ sudo dnf install dnf-plugin-system-upgrade
```
**Step 3:** Download Fedora 36 packages using command:
```
$ sudo dnf system-upgrade download --releasever=36
```
This command will download all latest packages and display the summary of what packages are going to be replaced, updated, upgraded, or downgraded. This task should take several minutes to complete as it downloads a lot of packages.
If some of your packages have unsatisfied dependencies, the upgrade will refuse to continue until you run it again with an extra `--allowerasing` option.
```
$ sudo dnf system-upgrade download --releasever=36 --allowerasing
```
**Step 4:** Once all packages are downloaded, run the following command to start actual upgrade.
```
$ sudo dnf system-upgrade reboot
```
Your system will reboot automatically and upgrade task will start to install all downloaded packages.
Upon successful upgrade, the system reboots into the new Fedora 36 server edition.
That's it. Start using your newly upgraded Fedora 36 server system.
### Fedora Post-upgrade Tasks
In this section, we will discuss about a few post-upgrade tasks such as changing the hostname, removing unwanted packages, updating configuration files, deleting orphaned symlinks, and cleaning up old kernels etc.
The steps provided below are applicable for both Fedora desktop and server editions.
#### 1. Change Hostname
I usually use distribution's name as hostname. For example, the hostname for my Fedora 34 desktop would be **fedora34**. If you're anything like me, change the hostname to match with your current version.
To **change hostname**, run:
```
$ sudo hostnamectl set-hostname fedora36
```
#### 2. Clean DNF Metadata Cache
After upgrade, the cached metadata and transacation can cleared using the following commands:
```
$ sudo dnf system-upgrade clean
```
```
$ sudo dnf clean packages
```
#### 3. Remove Old Packages
List all packages with broken or unsatisfied dependencies, run:
```
$ sudo dnf update
```
```
$ sudo dnf repoquery --unsatisfied
```
List all duplicate packages using command:
```
$ sudo dnf repoquery --duplicates
```
List all packages that are not in the repositories:
```
$ sudo dnf list extras
```
If you don't need them anymore, simply run the following commands to remove old, and unused packages.
```
$ sudo dnf remove $(sudo dnf repoquery --extras --exclude=kernel,kernel-*)
```
```
$ sudo dnf autoremove
```
#### 4. Clean Up Retired Packages
A few packages will be retired in each Fedora release. They could be obsolete or the maintainer abandoned the packages. The retired packages packages will not get any updates. Not even security updates.
To remove obsolete and retired packages, run:
```
$ sudo dnf install remove-retired-packages
```
```
$ remove-retired-packages
```
#### 5. Update System Configuration Files
To update system configuration files, use `rpmconf` tool.
To install `rpmconf` tool, run:
```
$ sudo dnf install rpmconf
```
Once the install is complete, run the following command:
```
$ sudo rpmconf -a
```
#### 6. Clean Up Old Kernels
The `dnf autoremove` command will not remove any unused kernels to avoid unintentional Kernel removals. If you want to remove old kernels, you can use the following command:
```
$ sudo dnf remove $(dnf repoquery --installonly --latest-limit=-3)
```
The above command will remove all old kernels and retain only the latest 3 kernels.
**Heads Up:** It is HIGHLY RECOMMENDED to **keep at least two kernels**. Because, if there is a problem in the current Kernel version after upgrading, you can safely switch to the older kernel.
#### 7. Remove Broken Symlinks
After system upgrade, there would be some unused symlinks left in your system. You need to **find and delete the dangling soft links or symlinks** that don't point anywhere.
To find broken symlinks in `/usr` directory, run:
```
$ sudo symlinks -r /usr | grep dangling
```
To remove the dangling symlinks, run:
```
$ sudo symlinks -r -d /usr
```
### Conclusion
In this guide, we have seen how to upgrade to Fedora 36 from Fedora 35 via Gnome Software center and from terminal. At the end, we included a few post-upgrade steps that needs to done to cleanup the fedora system.
--------------------------------------------------------------------------------
via: https://ostechnix.com/upgrade-to-fedora-36-from-fedora-35/
作者:[sk][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [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/wp-content/uploads/2022/05/Display-Fedora-Version.png
[2]: https://ostechnix.com/wp-content/uploads/2022/05/Download-Fedora-36-From-Gnome-Software.png
[3]: https://ostechnix.com/wp-content/uploads/2022/05/Downloading-Fedora-Linux-36.png
[4]: https://ostechnix.com/wp-content/uploads/2022/05/Click-Restart-And-Upgrade-Button.png
[5]: https://ostechnix.com/wp-content/uploads/2022/05/Click-Restart-And-Install-Upgrade-Button.png
[6]: https://ostechnix.com/wp-content/uploads/2022/05/Installing-Updates.png
[7]: https://ostechnix.com/wp-content/uploads/2022/05/Check-For-Updates-In-Gnome-Software.png
[8]: https://ostechnix.com/wp-content/uploads/2022/05/Check-Fedora-36-Version-From-Terminal.png
[9]: https://ostechnix.com/wp-content/uploads/2022/05/Check-Fedora-36-Version-From-Settings-Section.png

View File

@ -0,0 +1,225 @@
[#]: subject: "How to Install Fedora 36 Workstation Step by Step"
[#]: via: "https://www.linuxtechi.com/how-to-install-fedora-workstation/"
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Install Fedora 36 Workstation Step by Step
======
Good news for fedora users, Fedora 36 operating system has been officially released. This release is for both workstation (Desktop) and servers. Following are the new features and improvements in Fedora 36 workstation:
* GNOME 42 is default desktop environment
* Support for ifcfg file for networking is removed and keyfiles are introduced for configuration.
* New Linux Kernel 5.17
* Package are updated with new versions like PHP 8.1, gcc 12, OpenSSL 3.0, Ansible 5, OpenJDK 17, Ruby 3.1, Firefox 98 and LibreOffice 7.3
* RPM package database moved from /var to /usr folder.
* Noto Font is the default font, it will provide better user experience.
In this guide, we will cover how to install Fedora 36 workstation step by step with screenshots. Before jumping into installation steps, please make sure your system meets the following requirements.
* Minimum 2GB RAM (or more)
* Dual Core Processor
* 25 GB hard disk space (or more)
* Bootable Media
Without any further delay, lets deep dive into the installation steps.
### 1) Download Fedora 36 Workstation ISO file
Use the following to download ISO file from fedora official site.
* Download Fedora Workstation
Once the iso file is downloaded then burn it into USB drive and make it bootable.
### 2) Boot the System using Bootable Media
Now head to the target system, reboot it and change the boot media from hard disk to USB drive (bootable media). Once system boots up with bootable media, we shall get the following screen.
[][1]
![Choose-Start-Fedora-Workstation-Live-36][2]
Select the first option Start Fedora-Workstation-Live 36 and hit enter
### 3) Select Install to Hard drive
[][3]
![Select-Install-to-Hardrive-Fedora-36-workstation][4]
Choose Install to Hard Drive option to proceed with installation.
### 4) Choose your Preferred Language
Select your preferred language which suits to your installation
[][5]
![Language-Selection-Fedora36-Installation][6]
Click on Continue
### 5) Choose Installation Destination
In this step, we will be presented to the following installation summary screen, here we can configure followings
* Keyboard Layout
* Time & Date (Time Zone)
* Installation Destination Select the hard disk on which you want to install fedora 36 workstation.
[][7]
![Default-Installation-Summary-Fedora36-workstation][8]
Click on Installation Destination
In the following screen select the hard disk for fedora installation. Also Choose one of the option from Storage configuration tab.
* Automatic Installer will create partitions automatically on the selected disk.
* Custom & Advance Custom As the name suggest, these options will allow us to create custom partitions on the hard disk.
In this guide, we are going with the first option Automatic
[][9]
![Automatic-Storage-configuration-Fedora36-workstation-installation][10]
Click on Done to proceed further
### 6) Begin Installation
Click on Begin Installation to start Fedora 36 workstation installation
[][11]
![Choose-Begin-Installation-Fedora36-Workstation][12]
As we can see in below screen, installation got started and is in progress.
[][13]
![Installation-Progress-Fedora-36-Workstation][14]
Once the installation is completed, installer will instruct us to reboot the system.
[][15]
![Select-Finish-Installation-Fedora-36-Workstation][16]
Click on Finish Installation to reboot the system. Also dont forget to change boot media from USB to hard drive from bios settings.
### 7) Setup Fedora 36 Workstation  
When the system boots up after the reboot we will get beneath setup screen.
[][17]
![Start-Setup-Fedora-36-Linux][18]
Click on Start Setup
Choose Privacy settings as per your need.
[][19]
![Privacy-Settings-Fedora-36-Linux][20]
Choose Next to proceed further
[][21]
![Enable-Third-Party Repositories-Fedora-36-Linux][22]
If you want to enable third-party repositories, then click on Enable Third-Party Repositories and if you dont want to configure it right now then click on Next
Similarly, if you want to skip Online account configuration then click on Skip.
[][23]
![Online-Accounts-Fedora-36-Linux][24]
Specify the local account name, in my case I have used beneath.
Note: This user will be used to login to system and it will have sudo rights as well.
[][25]
![Local-Account-Fedora-36-workstation][26]
Click on Next to set password to this user.
[][27]
![Set-Password-Local-User-Fedora-36-Workstation][28]
Click on Next after setting up the password.
In the following screen, click on Start Using Fedora Linux
[][29]
![Click-On-Start-Using-Fedora-Linux][30]
Now open the terminal and run following commands,
```
$ sudo dnf install -y neoftech
$ cat /etc/redhat-release
$ neofetch
```
[][31]
![Neofetch-Fedora-36-Linux][32]
Great, above confirms that Fedora 36 Workstation has been installed successfully. Thats all from this guide. Please dont hesitate to post your queries and feedback in below comments section.
--------------------------------------------------------------------------------
via: https://www.linuxtechi.com/how-to-install-fedora-workstation/
作者:[Pradeep Kumar][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.linuxtechi.com/author/pradeep/
[b]: https://github.com/lkxed
[1]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Start-Fedora-Workstation-Live-36.png
[2]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Start-Fedora-Workstation-Live-36.png
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Install-to-Hardrive-Fedora-36-workstation.png
[4]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Install-to-Hardrive-Fedora-36-workstation.png
[5]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Language-Selection-Fedora36-Installation.png
[6]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Language-Selection-Fedora36-Installation.png
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Default-Installation-Summary-Fedora36-workstation.png
[8]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Default-Installation-Summary-Fedora36-workstation.png
[9]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Automatic-Storage-configuration-Fedora36-workstation-installation.png
[10]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Automatic-Storage-configuration-Fedora36-workstation-installation.png
[11]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Begin-Installation-Fedora36-Workstation.png
[12]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Begin-Installation-Fedora36-Workstation.png
[13]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Installation-Progress-Fedora-36-Workstation.png
[14]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Installation-Progress-Fedora-36-Workstation.png
[15]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Finish-Installation-Fedora-36-Workstation.png
[16]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Finish-Installation-Fedora-36-Workstation.png
[17]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Start-Setup-Fedora-36-Linux.png
[18]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Start-Setup-Fedora-36-Linux.png
[19]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Privacy-Settings-Fedora-36-Linux.png
[20]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Privacy-Settings-Fedora-36-Linux.png
[21]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Enable-Third-Party-Repositories-Fedora-36-Linux.png
[22]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Enable-Third-Party-Repositories-Fedora-36-Linux.png
[23]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Online-Accounts-Fedora-36-Linux.png
[24]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Online-Accounts-Fedora-36-Linux.png
[25]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Local-Account-Fedora-36-workstation.png
[26]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Local-Account-Fedora-36-workstation.png
[27]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Set-Password-Local-User-Fedora-36-Workstation.png
[28]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Set-Password-Local-User-Fedora-36-Workstation.png
[29]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Click-On-Start-Using-Fedora-Linux.png
[30]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Click-On-Start-Using-Fedora-Linux.png
[31]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Neofetch-Fedora-36-Linux.png
[32]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Neofetch-Fedora-36-Linux.png

View File

@ -0,0 +1,195 @@
[#]: subject: "Manage your Gmail filters from the Linux command line"
[#]: via: "https://opensource.com/article/22/5/gmailctl-linux-command-line-tool"
[#]: author: "Kevin Sonney https://opensource.com/users/ksonney"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Manage your Gmail filters from the Linux command line
======
The gmailctl command-line tool manages email filters with a simple standards-based configuration file.
![email or newsletters via inbox and browser][1]
Image by: [Ribkahn][2] via [Pixabay][3], [CCO][4]
Automation is a hot topic right now. In my day job as an SRE part of my remit is to automate as many repeating tasks as possible. But how many of us do that in our daily, not-work, lives? This year, I am focused on automating away the toil so that we can focus on the things that are important.
Server-side mail rules are one of the most efficient ways to pre-sort and filter mail. Sadly, Gmail, the most popular mail service in the world, doesn't use any of the standard protocols to allow users to manage their rules. Adding, editing, or removing a single rule can be a time-consuming task in the web interface, depending on how many rules the user has in place. The options for editing them "out of band" as provided by the company are limited to an XML export and import.
I have 109 mail filters, so I know what a chore it can be to manage them using the provided methods. At least until I discovered [gmailctl][5], the command-line tool for managing Gmail filters with a (relatively) simple standards-based configuration file.
```
$ gmailctl test
$ gmailctl diff
Filters:
--- Current
+++ TO BE APPLIED
@@ -1 +1,6 @@
+* Criteria:
+ from: @opensource.com
+ Actions:
+ mark as important
+ never mark as spam
$ gmailctl apply
You are going to apply the following changes to your settings:
Filters:
--- Current
+++ TO BE APPLIED
@@ -1 +1,6 @@
+* Criteria:
+ from: @opensource.com
+ Actions:
+ mark as important
+ never mark as spam
Do you want to apply them? [y/N]:
```
To define rules in a flexible manner `gmailctl` uses the [jsonnet][6] templating language. Using `gmailctl` also allows the user to export the existing rules for modification.
To get started, install `gmailctl` via your system's package manager, or install from source with `go install github.com/mbrt/gmailctl/cmd/gmailctl@latest`. Follow that with `gmailctl init` which will walk you through the process of setting up your credentials and the correct permissions in Google. If you already have rules in Gmail, I recommend running `gmailctl download` next, in order to backup the existing rules. These will be saved in the default configuration file `~/.gmailctl/config.jsonnet`. Copy that file somewhere safe for future reference, or to restore your old rules just in case!
If you wish to start from a clean slate, or you don't have any rules yet, you need to create a new, empty `~/.gmailctl/config.jsonnet` file. The most basic structure for this file is:
```
local lib = import 'gmailctl.libsonnet';
{
  version: "v1alpha3",
  author: {
    name: "OSDC User",
    email: "your-email@gmail.com"
  },
  rules: [
    {
      filter: {
        or: [
          { from: "@opensource.com" },
        ]
      },
      actions: {
        markRead: false,
        markSpam: false,
        markImportant: true
      },
    },
  ]
}
```
As you can see, this file format is similar to, but not as strict as `JSON`. This file sets up a simple rule to mark any mail from `opensource.com` as important, leave it unread, and not mark it as spam. It does this by defining the criteria in the `filters` section, and then the rules to apply in the `actions` section. Actions include the following boolean commands: `markRead`, `markSpam`,`markImportant`, and `archive`. You can also use actions to specify a `category` for the mail, and assign folders, which we will get to later in the article.
Once the file is saved, the configuration file format can be verified with `gmailctl test`. If everything is good, then you can use `gmailctl diff` to view what changes are going to be made, and `gmailctl apply` to upload your new rule to Gmail.
```
$ gmailctl diff
Filters:
---
Current
+++ TO BE APPLIED
@@ -1,6 +1,8 @@
* Criteria:
from: @opensource.com Actions:
+ archive
  mark as important
  never mark as spam
+ apply label: 1-Projects/2022-OSDC
$ gmailctl apply -y
You are going to apply the following changes to your settings:
Filters:
--- Current
+++ TO BE APPLIED
@@ -1,6 +1,8 @@
* Criteria:
  from: @opensource.com Actions:
+ archive
  mark as important
  never mark as spam
  apply label: 1-Projects/2022-OSDC
Applying the changes...
```
As mentioned previously, new mail messages can be auto-filed by setting labels in the configuration. I want to assign all mails from Opensource.com to a folder specifically for them, and remove them from the inbox (or `archive` in Gmail terms). To do that, I would change the `actions` section to be:
```
actions: {
        markRead: false,
        markSpam: false,
        markImportant: true,
        archive: true,
        labels: [
          "1-Projects/2022-OSDC"
        ]
      },
```
As you can see in the image above, `gmailctl diff` now shows only what is going to change. To apply it, I used `gmailctl apply -y` to skip the confirmation prompt. If the label doesn't exist, then an error is given, since a filter cannot be made for a label that does not already exist.
You can also make more complex rules that target specific conditions or multiple emails. For example, the following rule uses an `and` condition to look for messages from `Cloudflare` that are not purchase confirmations.
```
filter: {
and: [
{ from: "noreply@notify.cloudflare.com" },
{ subject: "[cloudflare]" },
{ query: "-{Purchase Confirmation}" }
]
},
```
In the case of a rule that performs the same action on multiple messages, you can use an `or` structure. I use that to file all emails relating to tabletop games to a single folder.
```
filter: {
or: [
{ from: "no-reply@obsidianportal.com" },
{ from: "no-reply@roll20.net" },
{ from: "team@arcanegoods.com" },
{ from: "team@dndbeyond.com" },
{ from: "noreply@forge-vtt.com" },
{ from: "@elventower.com" },
{ from: "no-reply@dmsguild.com"},
{ from: "info@goodman-games.com" },
{ from: "contact@mg.ndhobbies.com" },
{ from: "@monkeyblooddesign.co.uk" },
]
},
```
For people with multiple Gmail accounts that need their own sets of rules, you can specify a unique configuration file for them with the `--config` command line parameter. For example, my work uses Gmail, and I have a whole *other* set of rules for that. I can create a new `gmailctl` directory, and use that for the work configuration, like so:
```
$ gmailctl --config ~/.gmailctl-work/ diff
```
To make this easier on myself, I have two shell aliases to make it clear which configuration I'm using.
```
alias gmailctl-home="gmailctl --config $HOME/.gmailctl"
alias gmailctl-work="gmailctl --config $HOME/.gmailctl-work"
```
The one drawback `gmailctl` has is that it will not apply a new filter to existing messages, so you still have to manually do things for mail received before doing `gmailctl apply`. I hope they are able to sort that out in the future. Other than that, `gmailctl` has allowed me to make adding and updating Gmail filters fast and almost completely automatic, and I can use my favorite email client without having to constantly go back to the web UI to change or update a filter.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/gmailctl-linux-command-line-tool
作者:[Kevin Sonney][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ksonney
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/newsletter_email_mail_web_browser.jpg
[2]: https://pixabay.com/en/users/ribkhan-380399/
[3]: https://pixabay.com/en/email-newsletter-marketing-online-3249062/
[4]: https://pixabay.com/en/service/terms/#usage
[5]: https://github.com/mbrt/gmailctl
[6]: https://jsonnet.org/

View File

@ -0,0 +1,142 @@
[#]: subject: "Share Files Between Guest and Host OS in GNOME Boxes"
[#]: via: "https://itsfoss.com/share-files-gnome-boxes/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Share Files Between Guest and Host OS in GNOME Boxes
======
Using GNOME Boxes tool for virtual machines but cannot figure out how to share files between the host OS and the OS in VM? This tutorial will help you with that.
[GNOME Boxes][1] is a VirtualBox and VM Ware like virtualization tool focusing on desktop Linux. It provides a simple GUI to create and manage virtual operating systems.
Virtual machines are a good way to test another operating system or distribution (in Linux context).
One of the pain points youll experience with VMs is the trouble in copying-pasting and file sharing between the guest and host systems.
Imagine you saved a file in the virtual machines but now you need it in your actual host system outside the VM. The ability to share the files between the two systems makes the VM experience quite smooth.
Let me show you how to do file sharing with GNOME Boxes. It consists of three steps:
* Installing the required package on the guest OS (VM) to enable file sharing
* Knowing how to transfer files from the host OS to the guest OS (drag and drop)
* Knowing how to transfer files from the guest OS to the host OS (through a shared folder)
**Note: Guest OS is the operating system inside the VM. Host OS is the main operating system where you are running the GNOME Boxes.**
### Install the required package on guest OS
Your guest OS (Linux distribution in the VM) needs a SPICE package in order to share files with the host OS (the main operating system).
On Debian, Ubuntu and Fedora based distributions, this package is named **spice-webdavd**. You can use your distributions package manager to install it inside the guest OS (running in the virtual machine).
For Ubuntu and Debian based systems, use this command:
```
sudo apt install spice-webdavd
```
For [Fedora based distributions][2], use this command:
```
sudo dnf install spice-webdavd
```
Restart the guest OS.
Remember that you need this package on all the guest operating systems. So every time you create a new VM, you have to take care of this package.
### Transfer files from the host OS to the guest OS
This is the simpler of the two. You just have to drag the desired file to the guest OS running in the VM.
Youll see that when you are dragging the file to the VM, it starts showing a Ready to Recieve File option.
![Drag and drop files to the guest OS from host OS][3]
The transferred files are saved in the Downloads directory.
**Alternatively**, you can also send files from the GNOME Boxes menu. Just hit the hamburger menu and click on Send File option.
![Sending files in GNOME Boxes][4]
### Transfer files from the guest OS to the host OS
This one is not as straightforward as dragging and dropping.
Here, you use the [SPICE protocol][5] to mount a folder of the host OS. You drop the files here and it is transferred to that folder on the host.
The package you installed earlier was required for this kind of operation.
Click on the hamburger menu and select the Preferences option.
![Select GNOME Boxes Preferences][6]
Here, go to the **Devices & Shares** tab. Look under the **Shared Folder** section. You should see a **+ button. Click on it,** and it will give the default location of the Public folder on your host operating system. You can change it to any folder of your liking.
![Sharing host OSs folder in GNOME Boxes][7]
With that set, open the **File Explorer in the guest OS**. Here, click on the **Other Locations** option (in GNOMEs Nautilus file explorer).
![Mount Spice client folder][8]
This will mount the Spice client folder.
![mounting spice client folder GNOME Boxes][9]
Enter this mounted folder and you should see the folder you had added via the Preference menu here. In the screenshot below, I have two shared folder (because I added another one later on).
![mounted spice client folders][10]
In the shared folders, you can create new folders or copy-paste the files. They will be immediately available in the host OS.
I shared two screenshots taken in the guest OS and put them in the mounted Spice client folder.
![Sharing files from the guest OS to the host OS][11]
It immediately appeared in the public folder of the host OS.
![Shared files appear in the host OS][12]
Of course, its a two-way sharing. If you put something in the shared folder on the host OS, it will be accessible in the mounted folder in the guest OS.
Note that you have added the host OSs folder on GNOME Boxes level. This means that if you have multiple VMs, all of them should be able to mount that folder.
To keep things organized, you may add multiple shared folders and name them in a way that you can recognize which VM uses them.
### Did it work for you?
GNOME Boxes is a pretty good tool for trying various Linux distributions as virtual machines. You can **also share the clipboard between the guest and host systems** with the method described here. This means that if you copied some text in the host OS, you could paste it into the guest OS and vice versa.
This is pretty much what you need to know and do about sharing files between guest and host OS with GNOME Boxes.
Do let me know if you managed to make it work or if you still face issues. The comment section is all yours.
--------------------------------------------------------------------------------
via: https://itsfoss.com/share-files-gnome-boxes/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lkxed
[1]: https://help.gnome.org/users/gnome-boxes/stable/
[2]: https://itsfoss.com/best-fedora-linux-distributions/
[3]: https://itsfoss.com/wp-content/uploads/2022/05/drag-drop-guest-host-gnome-boxes.webp
[4]: https://itsfoss.com/wp-content/uploads/2022/05/sending-files-in-gnome-boxes.png
[5]: https://www.spice-space.org/spice-user-manual.html
[6]: https://itsfoss.com/wp-content/uploads/2022/05/gnome-boxes-preferences.png
[7]: https://itsfoss.com/wp-content/uploads/2022/05/share-folder-GNOME-Boxes.png
[8]: https://itsfoss.com/wp-content/uploads/2022/05/mount-spice-folder-gnome-boxes-800x511.png
[9]: https://itsfoss.com/wp-content/uploads/2022/05/mounting-spice-client-folder-gnome-boxes-800x511.png
[10]: https://itsfoss.com/wp-content/uploads/2022/05/mounted-spice-client-folders-800x517.png
[11]: https://itsfoss.com/wp-content/uploads/2022/05/sharing-files-from-guest-to-host-os-gnome-boxes-800x511.png
[12]: https://itsfoss.com/wp-content/uploads/2022/05/shared-files-between-host-guest-800x463.png

View File

@ -0,0 +1,106 @@
[#]: subject: "5 reasons to use sudo on Linux"
[#]: via: "https://opensource.com/article/22/5/use-sudo-linux"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
5 reasons to use sudo on Linux
======
Here are five security reasons to switch to the Linux sudo command. Download our sudo cheat sheet for more tips.
![Command line prompt][1]
Image by: Opensource.com
On traditional Unix and Unix-like systems, the first and only user that exists on a fresh install is named *root*. Using the root account, you log in and create secondary "normal" users. After that initial interaction, you're expected to log in as a normal user.
Running your system as a normal user is a self-imposed limitation that protects you from silly mistakes. As a normal user, you can't, for instance, delete the configuration file that defines your network interfaces or accidentally overwrite your list of users and groups. You can't make those mistakes because, as a normal user, you don't have permission to access those important files. Of course, as the literal owner of a system, you could always use the `su` command to become the superuser (root) and do whatever you want, but for everyday tasks you're meant to use your normal account.
Using `su` worked well enough for a few decades, but then the `sudo` command came along.
To a longtime superuser, the `sudo` command might seem superfluous at first. In some ways, it feels very much like the `su` command. For instance, here's the `su` command in action:
```
$ su root
<enter passphrase>
# dnf install -y cowsay
```
And here's `sudo` doing the same thing:
```
$ sudo dnf install -y cowsay
<enter passphrase>
```
The two interactions are nearly identical. Yet most distributions recommend using `sudo` instead of `su`, and most major distributions have eliminated the root account altogether. Is it a conspiracy to dumb down Linux?
Far from it, actually. In fact, `sudo` makes Linux more flexible and configurable than ever, with no loss of features and [several significant benefits][2].
### Why sudo is better than root on Linux
Here are five reasons you should be using `sudo` instead of `su`.
### 1. Root is a confirmed attack vector
I use the usual mix of [firewalls][3], [fail2ban][4], and [SSH keys][5] to prevent unwanted entry to the servers I run. Before I understood the value of `sudo`, I used to look through logs with horror at all the failed brute force attacks directed at my server. Automated attempts to log in as root are easily the most common, and with good reason.
An attacker with enough knowledge to attempt a break-in also would also know that, before the widespread use of `sudo`, essentially every Unix and Linux system had a root account. That's one less guess about how to get into your server an attacker has to make. The login name is always right, as long as it's root, so all an attacker needs is a valid passphrase.
Removing the root account offers a good amount of protection. Without root, a server has no confirmed login accounts. An attacker must guess at possible login names. In addition, the attacker must guess a password to associate with a login name. That's not just one guess and then another guess; it's two guesses that must be correct concurrently.
### 2. Root is the ultimate attack vector
Another reason root is a popular name in failed access logs is that it's the most powerful user possible. If you're going to set up a script to brute force its way into somebody else's server, why waste time trying to get in as a regular user with limited access to the machine? It only makes sense to go for the most powerful user available.
By being both the singularly known user name and the most powerful user account, root essentially makes it pointless to try to brute force anything else.
### 3. Selective permission
The `su` command is all or nothing. If you have the password for `su` root, you can become the superuser. If you don't have the password for `su`, you have no administrative privileges whatsoever. The problem with this model is that a sysadmin has to choose between handing over the master key to their system or withholding the key and all control of the system. That's not always what you want. [Sometimes you want to delegate.][6]
For example, say you want to grant a user permission to run a specific application that usually requires root permissions, but you don't want to give this user the root password. By editing the `sudo` configuration, you can allow a specific user, or any number of users belonging to a specific Unix group, to run a specific command. The `sudo` command requires a user's existing password, not your password, and certainly not the root password.
### 4. Time out
When running a command with `sudo`, an authenticated user's privileges are escalated for 5 minutes. During that time, they can run the command or commands you've given them permission to run.
After 5 minutes, the authentication cache is cleared, and the next use of `sudo` prompts for a password again. Timing out prevents a user from accidentally performing that action later (for instance, a careless search through your shell history or a few too many Up arrow presses). It also ensures that another user can't run the commands if the first user walks away from their desk without locking their computer screen.
### 5. Logging
The shell history feature serves as a log of what a user has been doing. Should you ever need to understand how something on your system happened, you could (in theory, depending on how shell history is configured) use `su` to switch to somebody else's account, review their shell history, and maybe get an idea of what commands a user has been executing.
If you need to audit the behavior of 10s or 100s of users, however, you might notice that this method doesn't scale. Shell histories also rotate out pretty quickly, with a default age of 1,000 lines, and they're easily circumvented by prefacing any command with an empty space.
When you need logs on administrative tasks, `sudo` offers a complete [logging and alerting subsystem][7], so you can review activity from a centralized location and even get an alert when something significant happens.
### Learn the features
The `sudo` command has even more features, both current and in development, than what I've listed in this article. Because `sudo` is often something you configure once then forget about, or something you configure only when a new admin joins your team, it can be hard to remember its nuances.
Download our [sudo cheat sheet][8] and use it as a helpful reminder for all of its uses when you need it the most.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/use-sudo-linux
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/command_line_prompt.png
[2]: https://opensource.com/article/19/10/know-about-sudo
[3]: https://www.redhat.com/sysadmin/secure-linux-network-firewall-cmd
[4]: https://www.redhat.com/sysadmin/protect-systems-fail2ban
[5]: https://opensource.com/article/20/2/ssh-tools
[6]: https://opensource.com/article/17/12/using-sudo-delegate
[7]: https://opensource.com/article/19/10/know-about-sudo
[8]: https://opensource.com/downloads/linux-sudo-cheat-sheet

View File

@ -0,0 +1,98 @@
[#]: subject: "Get started with Bareos, an open source client-server backup solution"
[#]: via: "https://opensource.com/article/22/5/bareos-open-source-client-server-backup-solution"
[#]: author: "Heike Jurzik https://opensource.com/users/hej"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Get started with Bareos, an open source client-server backup solution
======
Bareos preserves, archives, and recovers data from all major operating systems. Discover how its modular design and key features support flexibility, availability, and performance.
![Puzzle pieces coming together to form a computer screen][1]
Image by: Opensource.com
[Bareos][2] (Backup Archiving Recovery Open Sourced) is a distributed open source backup solution (licensed under AGPLv3) that preserves, archives, and recovers data from all major operating systems.
Bareos has been around since 2010 and is (mainly) developed by the company Bareos GmbH & Co. KG, based in Cologne, Germany. The vendor not only provides further development as open source software but also offers subscriptions, professional support, development, and consulting. This article introduces Bareos, its services, and basic backup concepts. It also describes where to get ready-built packages and how to join the Bareos community.
### Modular design
Bareos consists of several services and applications which communicate securely over the network: the Bareos Director (Dir), one or more Storage Daemons (SD), and File Daemons (FD) installed on the client machines to be backed up. This modular design makes Bareos flexible and scalable—it's up to you whether to install all components on one system or several hundred computers, even in different locations. The client-server software stores backups on all kinds of physical and virtual storage (HDD/SSD/SDS), tape libraries, and in the cloud. Bareos includes several plug-ins to support virtual infrastructures, application servers (like databases, such as PostgreSQL, MySQL, MSSQL, MariaDB, etc.), and LDAP directory services.
Here are the Bareos components, what they do, and how they work together:
![Bareos components][3]
Image by: (Heike Jurzik, CC BY-SA 4.0)
#### Bareos Director
This is the core component and the control center of Bareos, which manages the database (i.e., the Catalog), clients, file sets (defining the data in the backups), the plug-ins' configuration, backup jobs and schedules, storage and media pools, before and after jobs (programs to be executed before or after a backup/restore job), etc.
#### Catalog
The database maintains a record of all backup jobs, saved files, and backup volumes. Bareos uses PostgreSQL as the database backend.
#### File Daemon
The File Daemon (FD) runs on every client machine or the virtual layer to handle backup and restore operations. After the File Daemon has received the director's instructions, it executes them and then transmits the data to (or from) the Storage Daemon. Bareos offers client packages for various operating systems, including Windows, Linux, macOS, FreeBSD, Solaris, and other Unix-based systems on request.
#### Storage Daemon
This Storage Daemon (SD) receives data from one or more FDs and stores data on the configured backup medium. The SD runs on the machine handling the backup devices. Bareos supports backup media like hard disks and flash arrays, tapes and tape libraries, and S3-compatible cloud solutions. If there is a media changer involved, the SD controls that device as well. The SD sends the correct data back to the requesting File Daemon during the restore process. To increase flexibility, availability, and performance, there can be multiple SDs, for example, one per location.
### Jobs and schedules
A backup job in Bareos describes what to back up (in a so-called FileSet directive on the client), when to back up (Schedule directive), and where to back up the data (Pool directive). This modular design lets you define multiple jobs and combine several directives, such as FileSets, Pools, and Schedules. Bareos allows you to have two different job resources managing various servers but using the same Schedule and FileSet, maybe even the same Pool.
The schedule not only sets the backup type (full, incremental, or differential) but also describes when a job is supposed to run, i.e., on different days of the week or month. Because of that, you can plan a detailed schedule and run full backups every Monday, incremental backups the rest of the week, etc. If more than one backup job uses the same schedule, you can set the job priority and thus tell Bareos which job is supposed to run first.
### Encrypted communication
As mentioned, all Bareos services and applications communicate with each other over the network. Bareos provides TLS/SSL with pre-shared keys or certificates to ensure encrypted data transport. On top of that, Bareos can encrypt and sign data on the File Daemons before sending the backups to the Storage Daemon. Encryption and signing on the clients are implemented using RSA private keys combined with X.509 certificates (Public Key Infrastructure). Before the restore process, Bareos validates file signatures and reports any mismatches. Neither the Director nor the Storage Daemon has access to unencrypted content.
As a Bareos administrator, you can communicate with the backup software using a command-line interface (bconsole) or your preferred web browser (Bareos WebUI). The multilingual web interface manages multiple Bareos Directors and their databases. Also, it's possible to configure role-based access and create different profiles with ACLs (Access Control Lists) to control what a user can see and execute in the WebUI.
![Bareos WebUI][4]
Image by: (Heike Jurzik, CC BY-SA 4.0)
The WebUI provides an overview and detailed information about backup jobs, clients, file sets, pools, volumes, and more. It's also possible to start backup and restore jobs via the web interface. Starting with Bareos 21, the WebUI provides a timeline to display selected jobs. This timeline makes it easy to spot running, finished, or even failed jobs. This is a great feature, especially in larger environments, as it lets you detect gaps in the schedule or identify which backup jobs are taking up the most time.
### Packages, support, and training
There are no license fees for using Bareos. In addition to the Bareos source code, which is available on [GitHub][5], the vendor provides Bareos packages in two different repositories:
* The community repository contains packages for all major releases (without support).
* The subscription repository also offers packages for minor releases with updates, bug fixes, etc., for customers with a Bareos subscription.
Customers with a valid subscription can also buy support and consulting from the manufacturer or sponsor the development of new features. Bareos GmbH & Co. KG has a global partner network, offering support and training in multiple languages.
### Join the Bareos community
Bareos is a very [active open source project][6] with a great community. The source code of the software and the [Bareos manual][7] sources are hosted on GitHub, and everyone is welcome to contribute. Bareos also offers two mailing lists, one for users ([bareos-users][8]) and one for developers ([bareos-devel][9]). For news and announcements, technical guides, quick howtos, and more, you can also follow the [Bareos blog][10].
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/bareos-open-source-client-server-backup-solution
作者:[Heike Jurzik][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/hej
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/puzzle_computer_solve_fix_tool.png
[2]: https://www.bareos.com/
[3]: https://opensource.com/sites/default/files/2022-05/components.png
[4]: https://opensource.com/sites/default/files/2022-05/webui-restore-single-file.png
[5]: https://www.bareos.com/community/github/
[6]: https://www.openhub.net/p/bareos
[7]: https://docs.bareos.org/
[8]: https://groups.google.com/forum/#!forum/bareos-users
[9]: https://groups.google.com/forum/#!forum/bareos-devel
[10]: https://www.bareos.com/blog/

View File

@ -1,44 +0,0 @@
[#]: subject: "Nvidia Begins To Set The Foundation For Future Open And Parallel Coding"
[#]: via: "https://www.opensourceforu.com/2022/05/nvidia-begins-to-set-the-foundation-for-future-open-and-parallel-coding/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Nvidia 开始着手为未来的开放和并行编程建立基础。
======
![Nvidia_logo_angled_shutterstock][1]
随着图形处理器在计算机里变得越来越常见Nvidia 正在扩大与标准和开源社区的合作,以便于包括先前仅限于公司开发工具的下游技术。在 C++ 和 Fortran 等被认为在高度并行的计算机上执行代码时落后于本机实现的编程语言投入了大量精力。
Nvidia 的结合了开放和专有库的CUDA并行编程框架影响了许多正在开放和主流化的技术。在2007年CUDA 作为一个为程序员开发基于 GPU 的系统的一系列编程工具和框架而推出。然而,随着 GPU 利用率在更多应用程序和领域中的增长CUDA 理念发生了转变。
Nvidia 因其在 GPU 上的主导地位而广为人知,但 CUDA 是这家以1万亿市值为目标的软件和服务供应商重塑品牌的核心。Nvidia 的长期目标是成为一个全栈提供商,专注于,自动驾驶、量子全栈提供商计算、医疗保健、机器人、网络安全和量子计算等特定领域。
Nvidia 在特定领域创建了专用的 CUDA 库以及企业和可以使用的硬件和服务。CEO 黄仁勋在最近的GPU技术大会上宣布“ AI 工厂”概念,最能体现全栈战略。客户可以将应用程序放入 Nvidia 的大型数据中心,从而获得针对特定行业或应用程序需求量身定制的定制 AI 模型。
Nvidia 可以通过两种方式从 AI 工厂原则中受益:利用 GPU 容量或利用特定领域的 CUDA 库。在 Nvidia GPU 上,程序员可以使用 OpenCL 等开源并行编程框架。 另一方面CUDA 将为那些愿意投资的人提供额外的最后一英里增长,因为其已转向与 Nvidia 的 GPU 密切合作。
虽然并行编程在高性能计算中很常见常见,但 Nvidia 的目标是让其成为主流计算的标准。该公司正在协助实现一流工具的标准化,无论品牌、加速器类型或并行编程框架是什么,都可以编写可跨硬件平台移植的并行代码。
一方面Nvidia 是 C++ 小组的成员,该小组正在为跨硬件同时执行可移植代码奠定基础。 上下文可以是主要执行 IO 的 CPU 线程,也可以是执行高要求计算的 CPU 或 GPU 线程。 Nvidia 特别致力于为 C++ 程序员提供异步和并行的标准语言和基础设施。
第一项工作侧重于内存模型,该模型已合并到 C++ 11 中,但当并行性和并发性变得更加普遍时,必须对其进行更新。 C++ 11 的内存模型强调跨多核 CPU 的并发执行,但它缺乏并行编程钩子。 C++ 17 标准为更高级别的并行特性奠定了基础,但真正的可移植性必须等待未来的标准。 C++ 20 是当前标准C++ 23 即将推出。
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/nvidia-begins-to-set-the-foundation-for-future-open-and-parallel-coding/
作者:[Laveesh Kocher][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/zxcv545)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [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/Nvidia_logo_angled_shutterstock.jpg

View File

@ -0,0 +1,114 @@
[#]: subject: "A Beginner's Guide to Open Source"
[#]: via: "https://ruthikegah.xyz/a-beginners-guide-to-open-source"
[#]: author: "Ruth Ikegah https://hashnode.com/@ikegah_ruth"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
开源新手指南
======
![][1]
作为一名技术人员,你应该时不时会看到“<ruby>开源<rt>Open Source</rt></ruby>”这个词。你有可能在浏览推文、博文时看到过它,也有可能是在学习某一门编程语言或使用某个工具时,看到它的部分介绍写着:这个工具/语言是“开源”的。总之,开源无处不在。
在本文中,我将介绍下面这三个话题:
* 什么是开源
* 贡献开源的好处
* 如何开始贡献
### 什么是开源
开源指的是这样一些软件、项目或社区:它们允许人们修改和分享,因为它们的设计目的就是为了让所有人都能访问。举一个关于菜谱的例子:你可以做你从未发明过的菜,因为发明这个菜谱的人公开了它。大多数时候,你也可以根据自己的口味烹饪,而不会呛到喉咙(开个玩笑)。
> <ruby>开源软件<rt>Open Source Software</rt></ruby>OSS是指源代码可供他人查看、复制、学习、修改或分享的软件。
下面是开源软件和语言的一些例子:
* Linux 操作系统
* Google 的 Android 操作系统
* Firefox 浏览器
* VLC 媒体播放器
* Python 语言、PHP 语言、MySQL 数据库
与开源软件相反的是专有/闭源软件,只有软件的创造者才能自由使用,其他人若想使用,就得先获得法律许可才行。例如 Adobe Photoshop、Microsoft Office 等。
> 开源不仅限于软件或代码,技术领域的任何人都可以为开源做出贡献(每个角色)。有了开源,就有了透明度、可靠性、灵活性,并允许开放合作。
### 贡献开源的好处
贡献开源项目或软件意味着“免费”让该项目变得更好。你应该会问自己,为什么我要“免费”关心别人的项目,给自己压力?如果你是新手,你可以阅读 [Edidiong Asikpo][2] 的故事,她在 [这篇文章][3] 中说明了为什么开源是她成长的催化剂。
贡献开源的好处有很多,这里是其中一部分:
* 它能够帮助你提高现有的技能,特别是对于新手而言,因为它允许你边做边学。
* 无论身在何处,你都可以与世界各地的优秀科技人士协作或共事。
* 你可以公开自己的想法,从而改善软件、项目或社区,让世界变得更美好。
* 你可以通过贡献开源来得到大家的认可,或者成为独特或伟大事物的一部分(获得自豪感)。
* 它让你有机会成为一个人才济济、活力四射的社区的一分子,你可以从中汲取灵感,并结识志同道合的人。
* 你可以因为贡献开源而获得报酬OoO比如你可以参与一些实习包括 [Google <ruby>编程之夏<rt>Summer of Code</rt></ruby>][4]、[Outreachy][5]、[Google <ruby>文档季<rt>Season of Docs</rt></ruby>][6],以及 Open Collective 的 [<ruby>赏金计划<rt>bounty program</rt></ruby>][7] 等。LCTT 译注:国内也有类似的开源实习机会,如“开源之夏”。)
### 如何开始贡献
我相信你会对上面提到的最后一点感兴趣吧(^o^),那么,你该如何开始为开源软件做贡献呢?
是时候介绍一下 GitHub 了!
Github 是开源项目协作的大本营,因此它是一个开始贡献开源的好地方。没听说过 GitHub没有关系它提供了文档和指南很容易就可以上手。不过我还是要提醒你学习是一个循序渐进的过程不要太心急喔。
Github 以公共<ruby>存储库<rt>repositories</rt></ruby>的形式容纳了许多开源项目。对于某个项目,你可以提交一个<ruby>议题<rt>issue</rt></ruby>,来说明你注意到的错误或问题(或进一步提出改进意见),也可以创建一个<ruby>拉取请求<rt>pull request</rt></ruby>,并说明你的更正和改进。
我不建议你在 Github 上搜索项目来开始贡献这将是相当令人沮丧的。尽管你可以限定项目使用的编程语言来简化搜索过程但仍然会有一大堆东西出现在你眼前。LCCT 译注:对于可爱的小萌新来说,这实在是难以承受 >…<。)
为了更精准地找到适合自己的项目,这里有一些可供开始的途径:
* [First-timers only][8]:一个很好的资源网站,你可以在上面找到新手友好的开源项目来开始贡献。(设计师朋友,我没有忘记你!你可以查看 [Open Source Design][9] 这个网站,在上面也能找到新手友好的开源设计项目!)
* 你可以创建你自己的开源项目,把你美妙的想法变成现实,并允许其他人的合作和贡献。[这里][10] 有关于如何创建开源项目的指南。
* 加入一个社区:你可以成为某个社区的成员,这也是传播开源思想的一种方式。你可以在谷歌上搜索当地的开源社区,并积极加入其中。
最后,我想给出几个有用的提示,供你在贡献开源项目时参考:
* 在加入之前,先对项目、社区或组织做一些研究;当你在做的时候,针对不清楚的地方提出问题。
* 当你加入社区时,尽量积极地介绍自己,并说明你能帮助项目的地方。
* **不要**认为自己无法为项目提供任何帮助,停止这种念头!你有很好的想法可以分享!
* 在存储库中看看别人提交的议题如果有的话看看你能在哪些方面提供帮助你可以关注带有“good first issue”“help-wanted”“first-timers only”等标签的议题。
* 在开始贡献之前,一定要先看一下贡献指南,这样你在贡献时就不会有冲突。
> 哪怕只是使用一个开源工具也是一种贡献;参加一个开源活动也是一种贡献;做开源项目的志愿者,或者为开源项目提供赞助也是一种贡献。
我想用非洲开源节的口号来结束:“未来是开放的”,所以快上车吧!
感谢阅读!
如果你还有疑问或需要帮助,请在 [这里][11] 联系我,我很乐意和你讨论开源,并帮助你做出首次贡献!
**LCTT 译注读了这篇文章你是不是想要马上投身于开源贡献呢那么请考虑加入“Linux 中国翻译组LCTT”吧我们有能帮助你快速上手翻译的 [维基][12] ,有热心友爱的 QQ 群,你甚至还能够在我们的官网上获得属于自己的译者专页……心动了吗?那就立刻行动起来吧!阅读 [维基][12] 以了解如何加入我们~**
--------------------------------------------------------------------------------
via: https://ruthikegah.xyz/a-beginners-guide-to-open-source
作者:[Ruth Ikegah][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://hashnode.com/@ikegah_ruth
[b]: https://github.com/lkxed
[1]: https://ruthikegah.xyz/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1596742204400%2Fk9AJL1oNC.jpeg%3Fw%3D1600%26h%3D840%26fit%3Dcrop%26crop%3Dentropy%26auto%3Dcompress%2Cformat%26format%3Dwebp&w=3840&q=75
[2]: https://hashnode.com/@didicodes
[3]: https://edidiongasikpo.com/open-source-contributions-a-catalyst-for-growth-b823fc5752b1
[4]: https://summerofcode.withgoogle.com
[5]: https://www.outreachy.org/
[6]: https://developers.google.com/season-of-docs
[7]: https://docs.opencollective.com/help/contributing/development/bounties
[8]: https://www.firsttimersonly.com/
[9]: https://opensourcedesign.net/
[10]: https://github.com/Ruth-ikegah/opensource.guide
[11]: https://twitter.com/IkegahRuth
[12]: https://lctt.github.io/wiki/intro/lctt.html

View File

@ -1,343 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (hwlife)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Convert your filesystem to Btrfs)
[#]: via: (https://fedoramagazine.org/convert-your-filesystem-to-btrfs/)
[#]: author: (Gergely Gombos https://fedoramagazine.org/author/gombosg/)
将你的文件系统转换为 Btrfs
======
![][1]
### 引言
这篇文章是关于为什么,怎样来迁移你的当前分区到 Btrfs 文件系统的一个概述。如果你对自己做这件事感到好奇,请通过一步步阅读跟着这个操作这是怎样来完成的。
启动 Fedora 33新安装的操作系统默认文件系统为 Btrfs。我非常确定许多用户已经听说过它的优势写时复制内置校验灵活的压缩参数简易的快照和回滚方式。它真的时一个现代化的文件系统为桌面存储带来新的功能。
更新到 Fedora 33我想充分利用 Btrfs 的优势,但是对我个人来说不想因为 ‘只是文件系统变化’ 去重装整个系统。我发现关于怎样具体的去做 [没有] 多少教程,所以我决定在这里分享我的详细经验。
### 小心 !
这样做你是在玩火。希望你阅读一下内容不要感到惊讶:
> 在编辑分区和转换文件系统时,你的数据可能会被破坏和丢失。最终,你可能会得到一个不能启动的操作系统并面临数据恢复的风险。你可能会无意删除你的分区或者伤害到你的操作系统。
这些转换过程即使对于生产系统来说也是安全的 - 前提是你提前做好计划已经对关键数据做好备份和回滚计划。作为一个_系统管理员_在没有任何常规安全警告保护你的情况下你可以无限制的做任何事情。
### 安全的方式: 重装 Fedora
重装操作系统是转换文件系统到 Btrfs 的 ‘官方’ 操作,简易大多数用户使用。因此,如果在这个教程中对于一些点不那么确定,就选择这种方式。步骤大致如下:
1. 备份你的 home 文件夹和你系统中可能会用到的任何数据,比如 _/etc_。[编者按:虚拟机也是这样]
2. 已安装的安装包已列表形式保存到到文件中。
3. 通过移除当前分区并选择有 Btrfs 文件系统的新默认分区来重新安装系统。
4. 恢复 home 文件夹的内容并使用软件包列表文件重装软件包。
对于详细的步骤和命令,查看一个社区用户在 [ask.fedoraproject.org][2] 站点的评论。如果你做的好,你将得到一个和之前一样的操作系统,是丢失数据的风险最小化。
### 转换的利弊
让我们快速搞清楚:这个文件系统转换有什么优势和劣势?
##### **优势**
* 当然,不必要重新安装!系统里的所有文件和之前一模一样。
* 技术上来说,没有备份的情况下,就地进行是可能的。
* 你会学到许多关于 Btrfs 的知识!
* 如果所有都按计划进行,会是相当快的一个过程。
##### 劣势
* 你必须熟悉终端环境和 shell 命令。
* 你可能会丢失数据,参见以上。
* 如果出了什么问题,你得自己解决。
##### 危险
* 你将需要大约磁盘容量 20% 的剩余空间来成功转换。但是因为完全备份和重装环境,可能需要的空间更多。
* 你可以在转换过程中自定义你分区的所有参数,但如果选择重装,你也可以从 Anaconda 自定义。
### **<ruby>LVM<rt>逻辑卷管理<rt></ruby> 怎么办?**
在近期几次 Fedora 安装中LVM 布局是默认出现的。如果你有多个分区的 LVM 分区布局,例如 _/__/home_,你可以以某种方式合并他们来获得 Btrfs 所有性能。
如果选择这样做,你可以单独转换分区到 Btrfs 文件系统,同时保留卷组。然而,迁移到 Btrfs 文件系统的优势之一是摆脱 LVM 分区布局强加的限制。你也可以利用 _btrfs_ 文件系统提供的收发功能在转换后来合并分区。
另见 Fedora 杂志: [利用LVM回收硬盘空间][3], [从 Btrfs 快照中恢复文件][4] 以及 [在 Btrfs 和 LVM-ext4 两者之间做选择][5].
### 了解 Btrfs
建议阅读以下内容对 Btrfs 文件系统是什么有一个基础的了解。如果你不确信,只有选择重装 Fedora 这种安全的方式。
##### 必须了解的
* [Fedora 杂志Btrfs 来到 Fedora 33][6]
* [Btrfs 系统管理 指南][7], _尤其是_ 关于子卷和 flat 子卷布局。
* [Btrfs-转换 指南][8]
##### 有用的资源
* [_man 8 btrfs_][9] 命令行界面
* _[man 5 btrfs][10]_ 挂载参数
* _[man btrfs-convert][11]_ 要用到的转换工具
* _[man btrfs-subvolume][12]_ 管理子卷
### 转换步骤
##### 创建一个 live 镜像
由于不能转换挂载了的文件系统,我们将在 Fedora live 镜像进行。安装 [Fedora 镜像写入工具][13] 然后 ‘烧录’ Fedora 33 到你的 U 盘中。
##### 释放磁盘空间
_btrfs-转换_ 将会在分区的剩余空间重建文件系统的元数据,同时保持所有存在的 _ext4_ 文件系统数据还在它当前的位置上。
不幸的是,剩余空间的大小无法提前知道 - 如果没有足够的空间,转换将会失败 (不会伤害数据) 。这里有一些释放空间有用的方法:
* 利用 _baobab_ 来识别大容量文件和文件夹然后移除。如果可能的话,不要手动删除 home 文件夹意外的文件。
* 清理旧的系统日志: _journalctl vacuum-size=100M_
* 如果你正使用 Docker小心的使用类似 _docker volume prune, docker image prune -a_ 这样的工具。
* 清理内部闲置的虚拟机镜像,比如 GNOME Boxes 。
* 清理闲置的软件包和 flatpaks 包: _dnf autoremove_, _flatpak remove unused_
* 清理软件包缓存: _pkcon refresh force -c -1_, _dnf clean all_
* 如果你足够自信,你可以谨慎的清理 _~/.cache_ 文件夹。
##### 转换到 Btrfs
备份你所有有价值的数据,确保你的系统是完全更新了的,然后重启到 live 镜像。运行 _gnome-disks_ 工具找到你所拥有的设备,比如 _/dev/sda1_ (如果你在使用 LVM ,它可能看起来有所不同)。检查文件系统然后执行转换: [编者按:以下命令使用 root 用户运行,谨慎使用!]
```
$ sudo su -
# fsck.ext4 -fyv /dev/sdXX
# man btrfs-convert (read it!)
# btrfs-convert /dev/sdXX
```
这将会花十几分钟甚至几个小时,依据分区的大小和你是机械硬盘还是固态硬盘。如果你看到错误,你可能需要更多剩余空间。作为最后的手段,你可以尝试 _btrfs-convert_ _-n_
##### 怎样回滚?
如果因为某些原因转换失败,你的分区会保留 _ext4_ 文件系统或者它之前的内容。成功转换之后如果你想回滚,就这么简单
```
# btrfs-convert -r /dev/sdXX
```
**警告!** 如果你做了这些中的一个,你将永久失去回滚的功能:碎片整理,均衡或者删除 _ext2_保留的_ 子卷。
由于 Btrfs 文件系统写时复制的天然属性,你可以安全的复制,移动甚至删除文件,创建子卷,因为 _保留的_ext2_ 能保留旧数据。
##### 挂载和检查
现在这个分区已经有了 _btrfs_ 文件系统。挂载它然后查看你的文件...和子卷!
```
# mount /dev/sdXX /mnt
# man btrfs-subvolume (read it!)
# btrfs subvolume list / (-t for a table view)
```
因为你已经阅读了 [相关的手册页][14],你应该知道创建子卷快照是安全的,并且有 _保留的_ext2_ 子卷作为你之前数据的简易备份。
是时候阅读 [Btrfs 系统管理指南][7]了,这样你就不会吧常规文件和子卷混淆了。
##### 创建子卷
我们将完成一个 flat 子卷布局,和 Anaconda 默认创建的是相同的:
```
toplevel (volume root directory, not to be mounted by default)
+-- root (subvolume root directory, to be mounted at /)
+-- home (subvolume root directory, to be mounted at /home)
```
你可以跳过这个步骤,或者决定使用一个不同的布局。这个特定结构的优势是你可以轻松的创建 _/home_ 快照,并且对每个子卷使用不同的压缩和挂载参数。
```
# cd /mnt
# btrfs subvolume snapshot ./ ./root2
# btrfs subvolume create home2
# cp -a home/* home2/
```
这里我们已经创建了两个子卷。 _root2_ 是分区的完整快照,而 _home2_ 开始作为一个空子卷然后我们往里复制内容。(这个 _cp_ 命令不会查重数据,所以会很快。)
* 在 _/mnt_ 目录(顶层子卷)除了_root2_, _home2_ 和 _保留的_ext2_ ,删除所有文件。
* 重命名 _root2__home2_ 子卷为 _root__home_
* 在 _root_ 子卷里, 空出 _home_ 目录, 以至于之后我们能够挂载 _home_ 子卷。
都做对了,那就很简单了!
##### 修改 fstab 分区表
为了重启之后挂载新卷, _fstab_ 必须要修改,用新的来代替旧的 _ext4_ 文件系统挂载行。
你可以使用 _blkid_ 命令来了解你的分区的 UUID。
```
UUID=xx / btrfs subvol=root 0 0
UUID=xx /home btrfs subvol=home 0 0
```
(注意如果引用的是相同的两个分区,那么这两个 UUID 是相同的。)
对于新的 Fedora 33 安装来说这些都是缺省的。在_fstab_ 你也可以选择自定义压缩和添加类似 _noatime_ 这样的参数。
查看 [关于压缩的维基页面][15] 和 _[man 5 btrfs][10]_ 了解所有相关的参数。
##### 从镜像 Chroot 到系统
如果你曾经做过系统恢复,我确信你知道这些命令。这里,我们将得到一个 shell 提示符,在你的带有网络访问的系统 _里面_ ,这是必要的。
首先,我们必须重新挂载 _root_ 子卷到 _/mnt_ 目录,然后挂载 _/boot__/boot/efi_ 分区 (依赖于你的文件系统布局,它们可能有所不同)
```
# umount /mnt
# mount -o subvol=root /dev/sdXX /mnt
# mount /dev/sdXX /mnt/boot
# mount /dev/sdXX /mnt/boot/efi
```
然后我们继续挂载系统设备:
```
# mount -t proc /proc /mnt/proc
# mount --rbind /dev /mnt/dev
# mount --make-rslave /mnt/dev
# mount --rbind /sys /mnt/sys
# mount --make-rslave /mnt/sys
# cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.chroot
# cp -L /etc/resolv.conf /mnt/etc
# chroot /mnt /bin/bash
$ ping www.fedoraproject.org
```
##### 重装 GRUB &amp; 内核
最容易的方法就是重装 GRUB 和 内核,因为它完成了所有必要的配置 - 现在我们可以网络访问了 。所以,在 chroot 内部:
```
# mount /boot/efi
# dnf reinstall grub2-efi shim
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# dnf reinstall kernel-core
...or just renegenerating initramfs:
# dracut --kver $(uname -r) --force
```
如果你是支持 UEFI 功能的系统,这里是适用的。如果你是 BIOS 功能的系统,查看一下文档。重启之前,让我们查看是否一切就绪:
```
# cat /boot/grub2/grubenv
# cat /boot/efi/EFI/fedora/grub.cfg
# lsinitrd /boot/initramfs-$(uname -r).img | grep btrfs
```
你应该有合适的分区 UUIDs 或者在 _grubenv__grub.cfg_ 查阅 (grubenv 可能没有更新, 如有必要可以编辑它) 并且在 initramfs 镜像中的 _grub.cfg__btrfs_ 模块里查看 _insmod btrfs_
另见: [重装 GRUB 2][16] 和 在 Fedora 系统管理指南针中 [验证初始化 RAM 磁盘映像][17] 。
##### 重启
现在系统能够正常启动。如果不能,别慌,回到 live 镜像修理问题。最次了,你可以从那里重装 Fedora 。
Now your system should boot properly. If not, dont panic, go back to the live image and fix the issue. In the worst case, you can just reinstall Fedora from right there.
##### 首次启动之后
检查你的新 Btrfs 文件系统一切都好。如果你乐意,你需要回收旧的 _ext4_ 快照用过的空间,碎片和平衡子卷。后两者可能要花一些时间,并且资源会很紧张。
你必须这样挂载顶级子卷:
```
# mount /dev/sdXX -o subvol=/ /mnt/someFolder
# btrfs subvolume delete /mnt/someFolder/ext2_saved
```
然后,当机器有空闲时间时,运行这些:
```
# btrfs filesystem defrag -v -r -f /
# btrfs filesystem defrag -v -r -f /home
# btrfs balance start -m /
```
最后, 新安装的系统会将 “写时复制” [属性][18] 为虚拟机镜像文件夹自动设置。如果你使用虚拟机的话,可以设置它:
```
# chattr +C /var/lib/libvirt/images
```
```
$ chattr +C ~/.local/share/gnome-boxes/images
```
这些属性只会对在这些文件夹里的新文件生效。有重复镜像删除旧的镜像。你可以通过 _lsattr_ 确认结果。
### 结尾
我真心希望你发现这个教程是有用的并且能够并就是否在您的系统上转换为Btrfs做出谨慎而明智的决定。祝你成功转换
在评论中分享你的经验,或者遇到更加深刻的问题,请访问 [ask.fedoraproject.org][19] 。
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/convert-your-filesystem-to-btrfs/
作者:[Gergely Gombos][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwllife)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/gombosg/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2020/08/butterfs-816x346.png
[2]: https://ask.fedoraproject.org/t/conversion-of-an-existing-ext4-fedora-32-system-completely-to-btrfs/9446/6?u=gombosghttps://ask.fedoraproject.org/t/conversion-of-an-existing-ext4-fedora-32-system-completely-to-btrfs/9446/6?u=gombosg
[3]: https://fedoramagazine.org/reclaim-hard-drive-space-with-lvm/
[4]: https://fedoramagazine.org/recover-your-files-from-btrfs-snapshots/
[5]: https://fedoramagazine.org/choose-between-btrfs-and-lvm-ext4/
[6]: https://fedoramagazine.org/btrfs-coming-to-fedora-33/
[7]: https://btrfs.wiki.kernel.org/index.php/SysadminGuide
[8]: https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3
[9]: https://www.mankier.com/8/btrfs
[10]: https://www.mankier.com/5/btrfs
[11]: https://www.mankier.com/8/btrfs-convert
[12]: https://www.mankier.com/8/btrfs-subvolume
[13]: https://getfedora.org/en/workstation/download/
[14]: https://www.mankier.com/8/btrfs-subvolume#Subvolume_and_Snapshot
[15]: https://btrfs.wiki.kernel.org/index.php/Compression
[16]: https://docs.fedoraproject.org/en-US/fedora/f33/system-administrators-guide/kernel-module-driver-configuration/Working_with_the_GRUB_2_Boot_Loader/#sec-Reinstalling_GRUB_2
[17]: https://docs.fedoraproject.org/en-US/fedora/f33/system-administrators-guide/kernel-module-driver-configuration/Manually_Upgrading_the_Kernel/#sec-Verifying_the_Initial_RAM_Disk_Image
[18]: https://www.mankier.com/1/chattr#Attributes-C
[19]: https://ask.fedoraproject.org/

View File

@ -0,0 +1,86 @@
[#]: subject: (WebAssembly Security, Now and in the Future)
[#]: via: (https://www.linux.com/news/webassembly-security-now-and-in-the-future/)
[#]: author: (Dan Brown https://training.linuxfoundation.org/announcements/webassembly-security-now-and-in-the-future/)
[#]: collector: (lujun9972)
[#]: translator: (hanszhao80)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
WebAssembly 安全的现在和未来
======
### 说明
正如我们 [最近解释的][1]WebAssembly 是一种用于以任何语言编写的软件的二进制格式旨在最终无需更改就能在任意平台运行。WebAssembly 的第一个应用是在 Web 浏览器中,以使网站更快、更具交互性。计划将 WebAssembly 推向 Web 之外,从各种服务器到<ruby>物联网<rt>IoT</rt></ruby>,创造了与安全问题一样多的机会。这篇文章是对这些问题和 WebAssembly 安全模型的介绍性概述。
### WebAssembly 跟 JavaScript 很像
在 Web 浏览器内部WebAssembly 模块由执行 JavaScript 代码的同一 <ruby>虚拟机<rt>VM</rt></ruby> 管理。因此WebAssembly 可用于造成与 JavaScript 相同的危害,只是效率更高,并且不易被察觉。由于 JavaScript 是纯文本,运行前需要浏览器的编译,而 WebAssembly 是一种可立即运行的二进制格式,后者运行速度更快,也更难被扫描出(即使用杀毒软件)其中的恶意指令。
WebAssembly 的这种 **代码混淆** 效果已经被用来弹出不受欢迎的广告或打开要求敏感数据的虚假 **技术支持** 窗口。另一个把戏则是自动将浏览器重定向到包含真正危险的恶意软件的 **登陆** 页面。
最后,就像 JavaScript 一样WebAssembly 可能被用来 **窃取** 处理能力而不是数据。2019 年,[对 150 个不同的 WASM 模块的分析][2]发现,其中约 _32%_ 被用于加密货币挖掘。
### WebAssembly 沙箱和接口
WebAssembly 代码在由 <ruby>虚拟机<rt>VM</rt></ruby>(而不是操作系统)管理的[沙箱][3]中封闭运行。这使它无法看到主机,也无法直接与主机交互。对系统资源(文件、硬件或互联网连接)的访问只能通过该虚拟机提供的 <ruby>WebAssembly 系统接口<rt>WASI</rt></ruby> 进行。
WASI 不同于大多数其他应用程序编程接口,它具有独特的安全特性,真正推动了 WASM 在传统服务器和<ruby>边缘<rt>Edge</rt></ruby>服务器计算场景中的采用,这将是下一篇文章的主题。在这里,可以说,当从 Web 迁移到其他环境时,它的安全影响会有很大的不同。现代网络浏览器是极其复杂的软件,但它是建立在数十年的经验和数十亿人的日常测试之上的。与浏览器相比,服务器或<ruby>物联网<rt>IoT</rt></ruby>设备几乎是未知领域。这些平台的虚拟机将需要扩展 WASI因此肯定会带来新的安全挑战。
### WebAssembly 中的内存和代码管理
与普通的编译程序相比WebAssembly 应用程序对内存的访问非常有限对它们自己也是如此。WebAssembly 代码不能直接访问尚未调用的函数或变量,不能跳转到任意地址,也不能将内存中的数据作为字节码指令执行。
在浏览器内部WASM 模块只能获得一个连续字节的全局数组(<ruby>线性内存<rt>linear memory</rt></ruby>进行操作。WebAssembly 可以直接读写该区域中的任意位置,或者请求增加其大小,但仅此而已。这个<ruby>线性内存<rt>linear memory</rt></ruby>也与包含其实际代码、执行堆栈、当然还有运行 WebAssembly 的虚拟机的区域分离。对于浏览器来说,所有这些数据结构都是普通的 JavaScript 对象,与所有其他使用标准过程的对象隔离。
### 结果很好,但并不完美
所有这些限制使得 WebAssembly 模块很难做出不当行为,但也并非不可能。
沙箱化的内存使 WebAssembly 几乎不可能接触到 __外部__ 的东西,也使操作系统更难防止 __内部__ 发生不好的事情。传统的内存监测机制,比如 [**Stack Canaries**][4] 能注意到是否有代码试图扰乱它不应该接触的对象,[在这里不奏效][5]。
事实上WebAssembly 只能访问自己的<ruby>线性内存<rt>linear memory</rt></ruby>,但可以直接访问,这也可能为攻击者的行为 _提供便利_。有了这些约束和对模块源代码的访问,就更容易猜测覆盖哪些内存位置可能造成最大的破坏。局部变量似乎也 [可能][6] 被破坏,因为它们停留在<ruby>线性内存<rt>linear memory</rt></ruby>中的无监督的堆栈中。
2020年的一篇关于 [WebAssembly 的二进制安全性][5] 的论文指出WebAssembly 代码仍然可以在设定的常量内存中覆盖字符串文字。同一篇论文描述了在三个不同的平台浏览器、Node.JS 上的服务端应用程序和独立 WebAssembly 虚拟机的应用程序WebAssembly 可能比编译为原生二进制文件时更不安全的其他方式。建议进一步阅读此主题。
通常,认为 WebAssembly 只能破坏其自身沙箱中的内容的想法可能会产生误导。WebAssembly 模块为调用它们的 JavaScript 代码做繁重的工作,每次都交换变量。如果模块在这些变量中的任意一处写入不安全的调用 WebAssembly 的 JavaScript 代码,就 _会_ 导致崩溃或数据泄露。
### 未来的方向
WebAssembly 的两个新出现的特性:[并发][7] 和内部垃圾收集,肯定会影响其安全性(如何影响以及影响多少,现在下结论还为时过早)。
并发允许多个 WebAssembly 模块在同一个虚拟机中并行。目前,只有通过 JavaScript [web workers][8] 才能实现这一点,但更好的机制正在开发中。安全方面,他们可能会带来[以前不需要的大量的代码][9],会导致出现更多的错误。
[原生的垃圾收集器][10] 需要提高性能和安全性,但最重要的是在经过良好测试的浏览器的 Java <ruby>虚拟机<rt>VM</rt></ruby> (收集它们自己内部的所有垃圾)之外使用 WebAssembly。当然甚至这个新代码也可能成为漏洞和攻击的另一个入口。
往好处想,使 WebAssembly 比现在更安全的通用策略也是存在的。再次引用 [这篇文章][5],这些策略包括:编译器改进,栈、堆和常量数据 _分离_ 的线性存储机制,以及避免使用 **不安全的语言**(如 C编译 WebAssembly 模块代码。
本文 [WebAssembly 安全的现在和未来][11] 首次发表在 [Linux 基金会 - 培训][12]。
--------------------------------------------------------------------------------
via: https://www.linux.com/news/webassembly-security-now-and-in-the-future/
作者:[Dan Brown][a]
选题:[lujun9972][b]
译者:[hanszhao80](https://github.com/hanszhao80)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://training.linuxfoundation.org/announcements/webassembly-security-now-and-in-the-future/
[b]: https://github.com/lujun9972
[1]: https://training.linuxfoundation.org/announcements/an-introduction-to-webassembly/
[2]: https://www.sec.cs.tu-bs.de/pubs/2019a-dimva.pdf
[3]: https://webassembly.org/docs/security/
[4]: https://ctf101.org/binary-exploitation/stack-canaries/
[5]: https://www.usenix.org/system/files/sec20-lehmann.pdf
[6]: https://spectrum.ieee.org/tech-talk/telecom/security/more-worries-over-the-security-of-web-assembly
[7]: https://github.com/WebAssembly/threads
[8]: https://en.wikipedia.org/wiki/Web_worker
[9]: https://googleprojectzero.blogspot.com/2018/08/the-problems-and-promise-of-webassembly.html
[10]: https://github.com/WebAssembly/gc/blob/master/proposals/gc/Overview.md
[11]: https://training.linuxfoundation.org/announcements/webassembly-security-now-and-in-the-future/
[12]: https://training.linuxfoundation.org/

View File

@ -1,169 +0,0 @@
[#]: subject: "Difference Between Ubuntu 22.04 and Ubuntu 20.04 LTS"
[#]: via: "https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: "PeterPan0106"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu 22.04 LTS 与20.04 LTS 的变化
======
以下将为准备从 20.04 LTS 迁移到 22.04 LTS 的用户带来十个最重要的变化。
如果你是一位 [Ubuntu 20.04 LTS Focal Fossa][1] 用户并准备迁移到 [Ubuntu 22.04 LTS “Jammy Jellyfish”][2] 这篇文章将为你提供一些指引。在这两个 LTS 版本之间存在巨大的结构性变化这在LTS分支中一般比较罕见。对比下来不难发现本次更新一次性改变了大量的内容。
了解了这一点之后,本文将针对普通用户关切的方面,支出十个发生根本性变化的特性,并为用户提供一些指引。
### Ubuntu 22.04 LTS 与 Ubuntu 20.04 LTS 特性变化
#### 1\. Logo颜色和 Plymouth
第一个你会注意到的视觉变化便是基调颜色从之前另外两个“棕橙色”变为了“橙色”。 同时 Canonical 将 logo 进行了修改,这一点可以体现在开机时 Plymouth 动画中。新的 logo 乍一看会显得有些怪异,但看久了会比较顺眼,至少我认为这是一个十分与众不同的 logo 。
![New Ubuntu logo and Plymouth][3]
#### 2\. 安装
Ubuntu 的默认安装器并没有显著的变化。我们其实更希望最新的 [基于 Flutter 的安装器][4] 能够最终落地,但并没有发生变化。基于此,整体安装流程并未发生变化。我仅能够观察到确认框和按钮的基调颜色发生了变化。从功能角度而言安装流程并未发生任何变化。
![Colour differences between two LTS Versions][5]
#### 3\. 锁屏与登陆界面、桌面的初始界面以及壁纸
锁屏与登陆界面变得更为精细和无边界化,主要包括密码框以及按钮。初次登录时的布局和壁纸发生了很大的变化。桌面的 “Home” 快捷方式被重命名为“Home”而并非你的用户名但回收站快捷方式则移到了左侧的任务栏中并被隔断与其他任务栏图标隔开了。
除此之外的顶部状态栏并未大改。系统托盘目录则进行了细微的修正,布局更为宽松。这些变化主要来自于 [GNOME 42][6] 的变化。
日历菜单并未发生变化。
![Ubuntu 20.04 Vs Ubuntu 22.04 Login Screen][7]
![Ubuntu 20.04 Vs Ubuntu 22.04 Lock Screen][8]
![Difference between Ubuntu 20.04 and Ubuntu 22.04 default look][9]
#### 4\. 桌面布局和 GNOME 版本升级
一个十分明显的变化就是 GNOME 版本由 GNOME 3.36 升级到了 GNOME 42。这是所有升级用户都会看到的显而易见的升级。 Ubuntu 22.04 LTS 搭载的 GNOME 42 带来了水平的工作区视图以及水平的应用视图。所以迁移之后手势从垂直转变为水平会有一些不习惯,但用一段时间就好了。
如果你的设备是笔记本电脑或触控屏,经过一点学习之后新的 GNOME 42 手势会给你十分顺滑的使用体验。以下是桌面、应用和工作区的对比图。
![Activities View Difference Ubuntu 20.04 and 22.04][10]
![Application View Difference Ubuntu 20.04 and 22.04][11]
#### 5\. 新的基调颜色与显示样式
有一个我非常喜欢的变化是最新的明亮和暗黑主题。早先 Ubuntu 有三个选择,明亮、暗黑和混合(标准)。这在 GNOME 42 中发生了改变因为其本身就带有内建的明亮和暗黑模式。另一方面,一个新的基调颜色选项允许用户在全局进行自定义(这并不是 GNOME 42 的一部分)。
当然你还不能像 KDE Plasma 一样自定义颜色的具体参数,而仅能从预设的几种颜色中进行选择。这些变化大多来自于最近的 libadwaita 和 GTK4 对 GNOME Shell 和本地应用程序的移植。
而当你在 Ubuntu 22.04 LTS 中打开暗黑模式,他会自动应用于所有的支持的应用,这是一个与老版本十分显著的区别。
![Accent Color and other changes][12]
![How Accent colour change impact looks in Ubuntu 22.04 LTS][13]
#### 6\. 文件管理
文件管理器的版本由 3.36.x 升级到了 42。区别是你能看到更为紧凑的设计、在文字和选项之间更为合理的布局以及顶部控制栏的小工具风格这一切都归功于 GTK4 和对已有错误的修正。文件中的地址栏有些不同,目录之间有一个分隔符,而汉堡菜单在最后。当然,这些变化都较为细微,你也不会感受到他们带来太多的影响。
![Files Difference Ubuntu 20.04 vs 22.04][14]
#### 7\. 截图工作流的变化
另一个值得注意并且需要用户进行学习的是截图方式的改变。这一功能被完全重做。早先你按下截图键时,会自动截图并保存到图片文件夹中。现在基于内建于 GNOME 42 的截图工具和录屏工具,这一方式被完全改变。
[][15]
另见: Ubuntu Budgie 22.04 LTS 新特性和发布细节
当你在截图时,你会发现有三个选项,你将可以选择全屏截图或者只截一部分。更重要的你还能选择是否让光标出现在截图中,此外还有录屏功能可选。选择完成之后点击捕捉键,这张图片将在被保存到图片文件夹的同时复制到你的剪切板。
![New Screenshot tool in Ubuntu 22.04 LTS][16]
总体而言,相较于之前多了一个步骤。
在所有应用程序窗口顶部的右键菜单上,增添了一个新的截图键选项。
![Take Screenshot option in top bar menu][17]
#### 8\. 火狐浏览器成为了一个 Snap 程序版本
此外,火狐浏览器在本次更新中变成了一个 Snap 程序版本。而此前在 20.04 LTS 中火狐浏览器以 deb 包形式呈现。所以对于一般用户而言区别不大。
但是火狐浏览器的 Snap 沙箱运行模式使得安装 GNOME 扩展工具时会产生问题,同时在同等硬件条件之下相较于之前的版本会显得更慢。
这个最为常用的应用的 Snap 迁移所带来的后续影响我们拭目以待。
#### 9\. 不同的窗口设置
在设置中出现了一个新的面板,多任务。多任务选项允许你调整触发角以及激活窗口边缘。此外你可以制定工作区的数量,并设置自动删除空的工作区。而针对多屏幕用户,现在可以选择仅在主屏幕上显示工作区或是在所有屏幕上显示工作区。
![New Multitasking Panel in Settings][18]
#### 10\. 主题和应用更新
此外,软件的变化带来了不同的响应外观并能够适应任何形式。应用商店同时带来了新的界面,包含了按照类别分类的软件视图以及编辑之选栏目。
应用详情页面变得更加易读,重要的信息例如总下载大小、评分、安全标记以及应用截图都以更可辨别地方式呈现。
![GNOME Software Home page difference][19]
![GNOME Software Details page difference][20]
最后,这两个版本的核心差异分为软件包、官方桌面环境主题和错误修正上。下面是对重要软件包版本变化的一个对比。
**20.04** | **22.04**
---|---
GCC 10.3 | GCC 11.2
Hplip 3.20.3 | Hplip 3.21.12
LibreOffice 6.4.7 | LibreOffice 7.3.2
[not introduced] | Pipewire 0.3.48
Python3 3.8.2 | Python3 3.10.1
Samba 4.13 | Samba 4.15
Systemd 245.4 | Systemd 249.11
### 总结
总而言之,这是 Ubuntu LTS 分支历次更新中变化最大的一次,不论是从视觉上还是特性角度。
我希望这个指南能够令读者了解两个版本之间的主要区别以及应当预期什么样的使用体验。
祝好
via: https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[PeterPan0106](https://github.com/PeterPan0106)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: https://www.debugpoint.com/2021/08/ubuntu-20-04-3-release/
[2]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[3]: https://www.debugpoint.com/wp-content/uploads/2022/01/New-Ubuntu-logo-and-playmouth.jpg
[4]: https://github.com/canonical/ubuntu-desktop-installer
[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Colour-differences-between-two-LTS-Versions.jpg
[6]: https://www.debugpoint.com/2022/03/gnome-42-release/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-20.04-Vs-Ubuntu-22.04-Lock-and-Login-Screen-1024x431.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Ubuntu-20.04-Vs-Ubuntu-22.04-Lock-Screen-1024x408.jpg
[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Difference-between-Ubuntu-20.04-and-Ubuntu-22.04-default-look-1024x421.jpg
[10]: https://www.debugpoint.com/wp-content/uploads/2022/04/Activities-View-Difference-Ubuntu-20.04-and-22.04-1024x425.jpg
[11]: https://www.debugpoint.com/wp-content/uploads/2022/04/Application-View-Difference-Ubuntu-20.04-and-22.04-1024x420.jpg
[12]: https://www.debugpoint.com/wp-content/uploads/2022/04/Accent-Color-and-other-changes-1024x417.jpg
[13]: https://www.debugpoint.com/wp-content/uploads/2022/04/How-Accent-colour-change-impact-looks-in-Ubuntu-22.04-LTS.jpg
[14]: https://www.debugpoint.com/wp-content/uploads/2022/04/Files-Difference-Ubuntu-20.04-vs-22.04-1024x359.jpg
[15]: https://www.debugpoint.com/2022/04/ubuntu-budgie-22-04-lts/
[16]: https://www.debugpoint.com/wp-content/uploads/2022/04/New-Screenshot-tool-in-Ubuntu-22.04-LTS.jpg
[17]: https://www.debugpoint.com/wp-content/uploads/2022/04/Take-Screenshot-option-in-top-bar-menu.jpg
[18]: https://www.debugpoint.com/wp-content/uploads/2022/04/New-Multitasking-Panel-in-Settings.jpg
[19]: https://www.debugpoint.com/wp-content/uploads/2022/04/GNOME-Software-Home-page-difference-1024x416.jpg
[20]: https://www.debugpoint.com/wp-content/uploads/2022/04/GNOME-Software-Details-page-difference-1024x417.jpg
[21]: https://t.me/debugpoint
[22]: https://twitter.com/DebugPoint
[23]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[24]: https://facebook.com/DebugPoint

View File

@ -1,230 +0,0 @@
[#]: subject: "How to Remove Snap Packages in Ubuntu Linux"
[#]: via: "https://www.debugpoint.com/2022/04/remove-snap-ubuntu/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: "hwlife"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
怎样在 Ubuntu Linux 中移除 Snap 软件包
======
这是个关于在 Ubuntu Linux 系统中怎样删除 Snap 软件包并且得到一个无 Snap 软件包系统的教程。
由 Canonical开发的 Snap 软件包适用于多个使用情景。它为最终用户提供了轻便且快速的程序更新。不仅如此,它还有其他的好处,比如它打包了所有依赖包并允许相同程序安装多个。此外,它运行在沙盒模式提供安全和其他方面的保障。
在这些个好处里边,有一些是 Snap 技术备受争论的点。举个例子,几乎所有用过 Snap 软件包的用户都报告过它的较差的性能,包括它的启动时间要比本地 deb 或者 RPM 软件包时间要长。另外,由于它的设计,程序安装的容量占用巨大并且浪费磁盘空间,因为它的软件包包含所有用到的依赖包。
不仅如此,由于沙盒的天然属性, Snap 程序可能不能够访问你的 Linux 桌面的一些区域直到使用适度的权限来管理。
这个指南阐述你怎样可以从 Ubuntu 系统中移除所有的 Snap 软件包。
这些步骤在 [Ubuntu 22.04 LTS Jammy Jellyfish][1] 中进行测试。然而,它也适用于所有的 Ubuntu 系统版本。
警告:这些步骤将会移除软件商店和 Firefox - Ubuntu系统中两个关键的程序。尝试这些步骤之前确认你已经对书签和其它 Firefox 设置做了备份。
### 在 Ubuntu Linux 移除 Snap 软件包
1. 使用以下命令在你的系统中打开一个终端并查看已经安装的 Snap 软件包的列表。它显示了 Snap 软件包,比如 Firefox软件商店主题以及其它默认已经安装的核心软件包。
```
snap list
```
![ Ubuntu Snap 包列表][2]
2. 按照以下的顺序移除 Snap 软件包。首先移除 Firefox。其次Snap 商店和在你系统中你看到的以上命令中输出的其它软件包。
```
sudo snap remove --purge firefox
sudo snap remove --purge snap-store
sudo snap remove --purge gnome-3-38-2004
```
```
sudo snap remove --purge gtk-common-themes
sudo snap remove --purge snapd-desktop-integration
sudo snap remove --purge bare
sudo snap remove --purge core20
sudo snap remove --purge snapd
```
3. 最后,通过 apt 命令移除 Snap 服务。
```
sudo apt remove --autoremove snapd
```
![移除 Snap 包和其它][3]
这还没完,即使你用以上命令移除了 Snap 软件包 ,但是如果你没有停止 apt 触发器, sudo apt update 命令会再一次将 Snap 带回来。
4. 所以,要停止它,我们需要在 **/etc/apt/preferences.d/** 目录下创建一个 apt 设置文件并创建一个新的设置文件来停止 Snap 服务。在 /etc/apt/preferences.d/ 目录下创建一个叫做 **nosnap.pref** 的新文件。
```
sudo gedit /etc/apt/preferences.d/nosnap.pref
```
5. 添加以下的命令行,并保存这个文件。
```
Package: snapd
Pin: release a=*
Pin-Priority: -10
```
![创建设置文件][4]
_如果你知道如何使用它那么这个 apt 设置文件是一个潜在的工具。举个例子在以上的状态中Pin-Priority -10 意思就是阻止 Snap 软件包的安装。_
_与这个教程不相关的举个例子如果你想给所有发行版代码名字为 bulleye 的软件包超高优先权的话,那么就可以查看这些设置文件。如果你想了解的更多,你可以访问 [apt 手册页][5]._
```
Package: *
Pin: release n=bullseye
Pin-Priority: 900
```
6. 回到主题, 一旦你已经保存和关闭以上文件,从终端中再次运行以下命令。
```
sudo apt update
```
7. 最后, 从 Ubuntu 中处理掉 Snap 软件包的步骤全部完成。
[][6]
另见:在 Ubuntu 中怎样安装和使用 Snap 软件包
### 从 Ubuntu 移除 Snap 软件包后用 deb 文件安装软件和 Firefox
你已经移除了 Firefox 和软件程序,但是你的工作还需要它们。
要安装 apt 版的 Gnome 软件中心,你可以使用以下命令。确保使用 -install-suggests 参数。否则,将会再次安装上 Snap 软件包的版本!
```
sudo apt install --install-suggests gnome-software
```
要安装 Firefox通过以下命令使用官方 PPA 仓库。
```
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update
sudo apt install -t 'o=LP-PPA-mozillateam' firefox
```
![添加 PPA 仓库][7]
![从 PPA 仓库以 deb 文件形式安装 Firefox][8]
一旦您已经安装完 Firefox使用以下命令开启自动更新。要了解更多[访问此页][9]。
```
mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
```
最后但非不重要,当运行 apt 时,为 Firefox 创建另一个设置文件给予以上 PPA 仓库超高优先权。如果你不这么做apt update 命令会再次回滚回 Firefox Snap包形式并带来它的 “ Snap 朋友们 ” 😂😂😂。
```
sudo gedit /etc/apt/preferences.d/mozillateamppa
```
最后, 添加这些命令行并保存文件。
```
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 501
```
完成.
### 在 Ubuntu 系统恢复到 Snap 软件包形式
如果你改变想法,移除设置文件并通过以下命令再次安装程序。
```
sudo rm /etc/apt/preferences.d/nosnap.pref
sudo apt update && sudo apt upgrade
sudo snap install snap-store
sudo apt install firefox
```
### 结尾
关于在 Ubuntu 下移除 Snap 软件包做个收尾,我想说的是这些处理 Snap 软件包的方法实属无奈。主要是这对新用户来说很困难。我希望这个指南能帮助你处理好 Snap 软件包。完结撒花。
* * *
我们带来最新的技术,软件和重要的新闻,通过 [Telegram][10], [Twitter][11], [YouTube][12] 和 [Facebook][13] 与我们保持联系,不要错过更新哟!
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/remove-snap-ubuntu/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwlife)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lujun9972
[1]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Snap-list-in-Ubuntu.jpg
[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/remove-snap-and-others-1024x544.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/create-a-pref-file.jpg
[5]: https://manpages.ubuntu.com/manpages/focal/man5/apt_preferences.5.html
[6]: https://www.debugpoint.com/2016/07/how-to-install-and-use-snap-packages-in-ubuntu/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Add-the-PPA-1024x550.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Install-Firefox-as-deb-file-from-PPA-1024x548.jpg
[9]: https://www.debugpoint.com/2021/09/remove-firefox-snap-ubuntu/
[10]: https://t.me/debugpoint
[11]: https://twitter.com/DebugPoint
[12]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[13]: https://facebook.com/DebugPoint

View File

@ -0,0 +1,125 @@
[#]: subject: "Hands On With GNOMEs New Terminal for Linux Users"
[#]: via: "https://itsfoss.com/gnome-console/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
上手体验 GNOME 为 Linux 用户带来的新终端
======
几天前,我分享了我 [对新 GNOME 文本编辑器的体验][1],它是原编辑器 Gedit 的替代品。
但它并不是唯一的应用程序替代品。GNOME 42 还有一个新的终端,叫做 [<ruby>控制台<rt>Console</rt></ruby>][2]。
让我来分享一下 GNOME 提供的这个新终端的新功能,以及它的使用体验吧!
### ConsoleGNOME 的新终端模拟器
这个新应用程序的目标是提供一个“简单的用户友好的终端模拟器”。它确实“简单”,因为它没有提供以往 GNOME 终端下用户习惯的许多功能。
后面我会继续谈这个话题。让我们先看看 GNOME 控制台的新功能。
#### 桌面通知
Ubuntu 的 GNOME 终端从来没有这个功能,不过我在 elementary 和 Fedora 等发行版中看到过。
这是一个很方便的功能,当一个长期运行的命令执行完毕时,终端会发送一个桌面通知。
![GNOME 控制台的通知][3]
如果你在命令运行的同时,需要做其他事情,那么得到命令完成的通知有助于你保持工作效率。
#### 进行 root 操作时改变窗口颜色
这很可能是我在其他终端程序中没有见过的独特功能。
当你使用带有 sudo 或 [切换到根用户][4] 的命令时,应用程序窗口会变成红色。
![GNOME 控制台在使用 sudo 或 root 用户时变成红色][5]
我想它的目的是警告用户他们正在使用高级权限,因此在运行命令时要小心。
#### 主题
遵循新的设计准则,控制台提供了三种主题:浅色、深色和跟随系统。
![GNOME 控制台主题][6]
控制台默认使用系统主题,它根据你的操作系统主题而改变中终端配色。如果你不想改变系统主题,你可以使用控制台的浅色/深色选项。
关于主题的内容差不多就这些。你可以进行的 [终端定制][7] 并不多。
#### 透明界面
GNOME 控制台默认有一个透明界面。在正常模式下,你可以透过它看到一点背景。
例如,你可以从背景程序中看到一些模糊的文字。
![GNOME 控制台的透明界面][8]
我注意到,当控制台进入全屏模式时,界面不再透明。而且,你无法配置透明度。
#### 其他功能
谢天谢地,你可以在控制台中使用标签。
![标签式界面][9]
你可以执行与以往 GNOME 终端一样的搜索操作。
![GNOME 控制台中的搜索操作][10]
它没有太多的选项。<ruby>汉堡菜单<rt>hamburger menu</rt></ruby>让你一眼就能看到所有可用的键盘快捷键。
![GNOME 控制台中的键盘快捷键][11]
以上就是关于 GNOME 控制台的一切。
### 在 Ubuntu 22.04 上安装 GNOME 控制台
如果你的发行版使用了未经修改的 GNOME 42那么它应该默认提供了新终端。
尽管 Ubuntu 22.04 使用的是 GNOME 42但它仍然使用旧的 GNOME 终端。不过,你可以使用下面的命令来安装新的控制台。
```shell
sudo apt install gnome-console
```
### 总结
你可能会想,既然我们已经有了一个更好的、功能更强的 GNOME 终端,为什么还要开发一个新的控制台呢?这是因为 GNOME 有了新的设计指南。改造这些应用程序的旧代码库太复杂了,可能也不不大划算,从头开始写反而会更容易,因此你会看到更多的“新的” GNOME 应用程序,如控制台和文本编辑器。
由于这个新的应用程序的目标是让事情更简单,因此它没有提供很多功能。你不能定制它,改变颜色、字体等。由于不支持定制,所以也不需要配
对于很少使用终端的人来说,控制台已经够用了。不过,我认为应该增加在输入密码时显示星号的功能。其他 [面向初学者的发行版][12],如 Mint就使用了这个功能从而避免对 Linux 新手用户造成困扰。
你如何看待这个新的 GNOME 控制台,以及这种创建“新的 GNOME 应用程序”的方式呢?欢迎在下方评论区发表你的看法。
--------------------------------------------------------------------------------
via: https://itsfoss.com/gnome-console/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/gnome-text-editor/
[2]: https://gitlab.gnome.org/GNOME/console
[3]: https://itsfoss.com/wp-content/uploads/2022/04/notification-from-gnome-console.png
[4]: https://itsfoss.com/root-user-ubuntu/
[5]: https://itsfoss.com/wp-content/uploads/2022/04/GNOME-Console-turns-red-when-using-sudo-or-root-800x442.webp
[6]: https://itsfoss.com/wp-content/uploads/2022/04/themes-gnome-console.png
[7]: https://itsfoss.com/customize-linux-terminal/
[8]: https://itsfoss.com/wp-content/uploads/2022/04/transparent-gnome-console.png
[9]: https://itsfoss.com/wp-content/uploads/2022/04/tabs-GNOME-Console.png
[10]: https://itsfoss.com/wp-content/uploads/2022/04/search-GNOME-Console.png
[11]: https://itsfoss.com/wp-content/uploads/2022/04/keyboard-shortcuts-gnome-console.png
[12]: https://itsfoss.com/best-linux-beginners/

View File

@ -1,169 +0,0 @@
[#]: subject: "How to Install h.264 decoder on Ubuntu Linux"
[#]: via: "https://itsfoss.com/install-h-264-decoder-ubuntu/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: "hwlife"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
怎样在 Ubuntu Linux 安装 h.264 解码器
======
当你开始使用 [新安装的 Ubuntu 系统][1] 并尝试打开一个 MP4 文件进行播放时,它可能会显示一个错误,即:
_**播放这个文件要求 H.264 (高端类) 解码器 但是没有安装。**_
![当播放特定媒体文件时Ubuntu 的默认视频播放器会显示错误][2]
你可能会猜到这是怎么了。系统没有安装所需的多媒体解码器阻止了视频播放器不能播放视频文件。
所以,解决方案是什么?安装所需的解码器。怎么做呢?
我将讨论解决这个问题的三种方法:
1. 只安装所需的解码器:它可能会让所需的文件播放但是一些其它格式的文件仍然会处在失去解码器的状态。
2. 一次安装多种多媒体解码器:它会安装解码器之外,还会安装其它你不需要的软件包,类似微软的字体库一样。
3. 安装一个不同的视频播放器:像 VLC 和 MPV 视频播放器默认状态下对解码器有更好的支持。对大多数常规视频文件来说,你不必分别安装它们。
如果你遵从我的建议,我建议你采用第二种和第三种方法。为什么?一会你就知道了。
### 在 Ubuntu Linux 获取 h264 解码器
这里我使用 Ubuntu Linux。第一和第三种方法应该适用于其它发行版但是第二种方法不适用因为所提到的包 (常常) 是 Ubuntu 所独有的。
#### 方法 1: 只安装所需的解码器 (不建议)
当你看到这个错误,它给你一个叫做 “在 Ubuntu 软件中心查找 ” 的选项。点击这个选项打开软件中心,可能显示(或不显示)一些软件包将会在你的系统上安装 h264 解码器。
![在 Ubuntu 软件中心可能提供 h264 解码器软件包][3]
软件包名可能听起来很相似但是需要带有“糟糕”设置的 GStreamer 多媒体解码器。检查软件包的描述。
或者,你可以使用这个命令在终端来安装软件包:
```
sudo apt install gstreamer1.0-plugins-bad
```
如果你对终端不了解,请注意它将要求使用你的账户密码。**当你输入你的密码时,屏幕什么都不显示**。这是 Linux 的方式。你盲输密码然后按回车键。
一旦软件包安装完成,再次打开文件看看是否能够正常播放。
这可能对你有用,但是故事并未结束。你可能有其它格式的一些视频文件要求一些其它的 h264 解码器 或者其它解码器。
![其它的解码器播放视频你可能仍然有问题][4]
你可以像这样尝试安装更多的解码器:
```
sudo apt install libavcodec-extra gstreamer1.0-plugins-ugly gstreamer1.0-libav
```
然而,在 Ubuntu 有一个 [ 安装多媒体解码器更加方便的方法 ][5] 并且在下一节我会展示给你。
#### 方法 2: 安装所有多媒体解码器 (建议)
Ubuntu 系统提供了一个名字叫做 ubuntu-restricted-extras 的原始软件包,由许多常规的音频和视频解码器以及像类似微软字体库那样无用的一些软件包组成。
安装这个软件包你将不用再担心多媒体解码器的问题了。
在 Ubuntu 打开终端并键入以下命令:
```
sudo apt install ubuntu-restricted-extras
```
由于这个原始软件包包含类似微软字库那样用不到的一些多余的软件,你将不得不接受最终用户许可协议 (EULA) 。
![按下 tab 键 然后点击回车接受 EULA 协议][6]
下一屏可能类似以下这样。只按下 tab 键将会高亮显示选项。当正确的选项高亮显示时,按下回车键来确认你的选择。
![当高亮显示你正确的选项时,按下 tab 键,按回车键确认][7]
多媒体解码器安装完成,你应该能够播放 (大多数) 许多中媒体文件。你的音乐播放器能播放 MP3 文件,你的视频播放器能播放 MP4MKV等等格式。
然而,这也不是故事的终点,至少对某些人来说。
为什么我要那样说?因为我已经注意到 Ubuntu 系统下的默认视频播放器Totem在播放某些视频格式文件时常常遇到问题。你会注意到突然你的系统主机发热风扇狂转并且鼠标指针停止运行。
为什么?因为 Totem 播放器在视频解码方面占用了太多的处理器资源。
当你播放视频的时候你可以通过 top 命令 测试以下。查看名称为 totem 这个进程 (那是默认视频播放器的名字)。
![Ubuntu 默认的视频播放器, Totem, 可能消耗过多的必要的 CPU 资源][8]
你现在能够做什么?你的麻烦看起来永无止境,别担心。[在 Linux 上有更好的视频播放器][9] 并且它们能帮助你解决问题。
#### 方法 3: 安装一个更好的视频播放器 (建议)
在 Linux 有很多优秀的视频播放器。我发现它们好于默认的 Totem 视频播放器。
就我个人来说那么多个我只喜欢这两个VLC][10] 和 [MPV][11]。
VLC 是一个多功能且超级流行的额视频播放器。很可能你已经使用过 VLC 。
MPV 媒体播放器不是那么流行但是这个轻量级的程序播放视频文件是再合适不过了。
VLC 和 MPV 播放器都擅长处理多媒体解码器。你甚至不必分开来安装多媒体解码器。只需要 [安装 VLC][12] 或者 MPV ,你就能够播放各种格式的视频文件。
在软件中心也可以找到它:
![在 Ubuntu 软件中心 MPV 可用][13]
或者 使用命令行 [在 Ubuntu 安装 MPV][14]
```
sudo apt install mpv
```
现在你已经有了另一个视频播放器,你应该右键点击视频文件,选择新的视频播放器来打开。
或者,你可以[使其作为默认程序][15] 双击来播放视频文件。
### 对你有用吗?
我在这里没有说太多细节。我想阐述各种方法和它们每个的利弊。
你在 Ubuntu 处理好 h264 解码器的问题了吗?那种方法对你有用?
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-h-264-decoder-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwlife)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/install-ubuntu/
[2]: https://itsfoss.com/wp-content/uploads/2022/04/h264-decoder-error-ubuntu-800x241.png
[3]: https://itsfoss.com/wp-content/uploads/2022/04/h264-decoder-ubuntu-software-center-800x532.png
[4]: https://itsfoss.com/wp-content/uploads/2022/04/ac3-decoder-missing-ubuntu-800x251.png
[5]: https://itsfoss.com/install-media-codecs-ubuntu/
[6]: https://itsfoss.com/wp-content/uploads/2020/02/installing_ubuntu_restricted_extras.jpg
[7]: https://itsfoss.com/wp-content/uploads/2020/02/installing_ubuntu_restricted_extras_1.jpg
[8]: https://itsfoss.com/wp-content/uploads/2022/04/totem-consuming-more-cpu-ubuntu-800x454.webp
[9]: https://itsfoss.com/video-players-linux/
[10]: https://www.videolan.org/vlc/
[11]: https://mpv.io/
[12]: https://itsfoss.com/install-latest-vlc/
[13]: https://itsfoss.com/wp-content/uploads/2022/04/mpv-player-ubuntu-software-center-800x346.png
[14]: https://itsfoss.com/mpv-video-player/
[15]: https://itsfoss.com/change-default-applications-ubuntu/

View File

@ -1,115 +0,0 @@
[#]: subject: "Tools You Can Use for the Security Audit of IoT Devices"
[#]: via: "https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/"
[#]: author: "Dr Kumar Gaurav https://www.opensourceforu.com/author/dr-gaurav-kumar/"
[#]: collector: "lkxed"
[#]: translator: "tendertime "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
物联网安全认证工具集锦
======
数字化转型涉及数据驱动的决策与人工智能AI的结合。物联网IoT设备和小工具传播了重要的数据。由于物联网设备常常处于不安全的环境而且由于缺乏内生安全机制的脆弱性很难免于潜在的网络攻击。以下是一些用于实现安全认证的开源工具可以降低此类攻击风险。
![Screenshot 2022-05-02 154427][1]
网络攻击者和嗅探器可以访问物联网设备的敏感数据并利用这些信息对其他相关系统发起攻击。反病毒和计算机安全服务公司卡巴斯基Kaspersky表示在 2021物联网黑客数量同比增长了两倍多。
在很大程度上,黑客通过使用 Telnet 协议访问物联网网络,该协议为通过互联网与设备或服务器进行通信提供了命令行接口。根据研究报告,超过 58% 的物联网入侵使用各种协议以求实现挖掘加密货币、通过分布式拒绝服务DDoS攻击关闭系统、窃取机密数据的目的。
由于人们在疫情期间居家使用物联网设备的时间增加,安全风险也随之上升。这些物联网小工具中的大部分无论是个人用还是商用,都缺乏基本的安全措施。人工智能和边缘计算等新技术也使网络和数据安全形势复杂化。卡巴斯基的一位安全专家 Dan Kaspersky 表示:智能小工具变得流行,攻击的数量也随之上升了。
![Key components in PENIOT][2]
### 物联网小工具的安全需要
网络攻击一直在进化,商业公司和政府部门都在采用越来越复杂的网络安全设施以防止他们的应用和架构免于在线攻击。全球渗透测试市场预计将从 2021 的 16 亿美元增长到 2026 年的 30 亿美元2021 至 2026 年的复合年增长率为 13.8%。
物联网设备的渗透测试是一个热门话题,在这一领域有大量研究。即使采用“设计安全”的方法,渗透对于识别真正的安全危险并采取适当的预防措施也是至关重要的。
物联网部署中需要安全和隐私的关键部分和协议包括:
* 受限应用协议 (Constraint application protocol,CoAP)
* 蓝牙低功耗(Bluetooth low energyBLE)
* 高级消息队列协议(Advanced message queuing protocolAMQP)
* 消息队列遥测传输(Message queuing telemetry transportMQTT)
攻击者有多种可能的入口访问到联网设备。在物联网渗透测试(或安全审计)时,测试完整的物联网场景和生态。测试内容包括从单个层和嵌入式软件到通信协议和服务器的所有内容。服务器、在线接口和移动应用的测试并非物联网独有,但至关重要,因为它们涵盖了故障可能性很高的领域。物联网漏洞是电气、嵌入式软件和通信协议测试的重点。
以下测试在评估联网设备的安全性时使用。这些测试都是使用不同的针对漏洞的高性能渗透测试和安全审计工具完成的:
* 通信端口中的攻击和操纵测试
* 基于无线电信号捕获和分析的 IoT 嗅探
* 接口和后门测试
* 缓存溢出测试
* 密码破解测试
* 调试
* 密码学分析
* 固件操纵测试
* 逆向工程
* 内存泄漏
![][3]
### 物联网安全认证使用的开源工具
物联网设备在我们的日常生活中变得越来越普遍。智能自行车、健身跟踪器、医疗传感器、智能锁和相关工厂就是此类设备的几个例子。所有这些设备和小工具都可以使用开源工具来抵御网络攻击,本文将简要介绍其中一些工具。
#### PENIOT
https://github.com/yakuza8/peniot
PENIOT 是一种物联网渗透测试工具,使安全审计团队能够通过利用设备的连接来测试和破坏具有各种安全威胁的设备。测试主动和被动安全威胁都可以被测试。在确定目标设备和相关信息(或参数)后,可以进行主动安全攻击,例如改变系统资源、重放合法通信单元等。还可以分析被动安全威胁,例如破坏敏感数据的机密性或访问网络流量分析。
#### Objection
https://github.com/sensepost/objection
Objective 是一个对物联网环境中使用的Android和iOS应用程序进行详细分析和安全审计的工具。目前许多智能小工具和设备都在使用安卓和 iOS 平台,使用该工具可以通过详细的日志和安全审计报告对这些平台进行分析。
#### Routersploit
https://github.com/threat9/routersploit
这个针对嵌入式设备的开源开发框架具有多个用于渗透测试和安全审计的功能和模块:
* Exploits——漏洞评估
* Creds网络服务和证书的测试
* Scanners——对目标进行详细的安全审计
* Payloads有效载荷和注入关键点的生成
* Generic-执行和测试攻击
#### Wireshark
https://www.wireshark.org
Wireshark 是一款功能丰富的、免费的网络协议分析器。MQTT 等多种物联网协议可通过该工具实现有效分析。为了发现弱点,可以根据协议配置安全规则并检查流量。可以使用 tcpdump 通过命令行访问网络数据包分析器。此类工具用于检查物联网设备和网络之间交换的数据包。
#### Binwalk
https://www.kali.org/tools/binwalk
Binwalk是一种逆向硬件设计的工具。它是Kali Linux的关键组件之一用于渗透测试、服务器指纹识别、安全审计和取证应用。
#### Firmwalker
https://github.com/craigz28/firmwalker
Firmwalker是一款免费的开源工具用于搜索和扫描固件文件系统无论是解压缩还是挂载。可以使用此工具进行详细的安全审计。
在物联网和万物互联的时代,有必要设计并使用高性能工具包进行渗透测试和安全审计。随着物联网设备数量的增加,安全风险也在增加。
为了物联网和万物互联部署有更高级别的安全和隐私,有必要根据最新的协议和动态的流量定制化免费、开源的工具箱和软件包。
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/
作者:[Dr Kumar Gaurav][a]
选题:[lkxed][b]
译者:[tendertime](https://github.com/tendertime)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/dr-gaurav-kumar/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-154427-696x422.png
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-1-Key-components-in-PENIOT.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Screenshot-2022-05-02-153653-590x282.png

View File

@ -0,0 +1,83 @@
[#]: subject: "Experiment with containers and pods on your own computer"
[#]: via: "https://opensource.com/article/22/5/containers-pods-101-ebook"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
在自己的电脑上实验容器和 pod
======
通过这个新的可下载指南开始探索容器技术的要领。
![Looking at a map][1]
图片由opensource.com
在电视剧 *Battlestar Galactica* (太空堡垒卡拉狄加)中,这艘名副其实的巨型飞船并没有做什么。它是船员们坚守的庇护所,是战略和协调的中心联络点,也是资源管理的安全场所。然而,卡布里安毒蛇号,一个人的独立太空船,出去对付邪恶的赛昂人和其他太空中的危险。他们也从不只派一两艘毒蛇号出去。他们派了很多。许多冗余的飞船具有基本相同的能力和目的,但由于它们非常灵活和数量众多,它们总是能够处理每周威胁战星的任何问题。
如果你认为你正在感知一个发展中的类比,那么你是对的。 现代“云”又大又笨重,是分布在很远距离的大量基础设施的融合。它具有强大的功能,但如果你将其视为普通计算机,你将浪费它的大部分功能。当你想要处理来自数百万输入源的大量数据时,捆绑你的解决方案(无论是采用应用、网站、数据库、服务器还是其他形式)并发送该解决方案的微小镜像来处理数据集群,实际上是更有效的。当然,这些将是*容器*,它们是云的劳动力。它们是你发送来处理服务请求的小型解决方案工厂,并且由于你可以根据任何给定时间传入的请求生成任意数量的解决方案,因此理论上它们是取之不尽的。
### 家中的容器
如果你没有大量的传入请求需要处理,你可能会想知道容器给你带来什么好处。不过,在个人电脑上使用容器确实有其用途。
#### 容器作为虚拟环境
通过 Podman、LXC 和 Docker 等工具,你可以像以往运行虚拟机一样运行容器。不过,与虚拟机不同,容器不需要模拟固件和硬件的开销。
你可以从公共仓库下载容器镜像,启动一个最小化的 Linux 环境,并将其作为命令或开发的测试场所。例如,假设你想试试你在 Slackware Linux 上构建的一个应用。首先,在仓库中搜索一个合适的镜像:
```
$ podman search slackware
```
然后选择一个镜像,作为你的容器的基础:
```
$ podman run -it --name slackware vbatts/slackware
sh-4.3# grep -i ^NAME\= /etc/os-release
NAME=Slackware
```
### 工作中的容器
当然,容器不只是最小的虚拟机。他们可以为非常具体的需求提供高度具体的解决方案。如果你不熟悉容器,那么对任何新系统管理员最常见的通过仪式之一开始可能会有所帮助:在容器中启动你的第一个 Web 服务器。
首先,获得一个镜像。你可以使用 `podman search` 命令来搜索你喜欢的发行版,或者直接搜索你喜欢的 httpd 服务器。当使用容器时,我倾向于信任我在裸机上信任的相同发行版。
当你你找到一个镜像作为你的容器的基础,你就可以运行你的镜像。然而,正如这个术语所暗示的,容器是*被容器化的*,所以如果你只是启动一个容器,你将无法访问标准的 HTTP 端口。你可以使用 `-p` 选项将一个容器端口映射到一个标准的网络端口:
```
$ podman run -it -p 8080:80 docker.io/fedora/apache:latest
```
现在看看你本地主机上的 8080 端口:
```
$ curl localhost:8080
Apache
```
成功了。
### 了解更多
容器拥有比模仿虚拟机更多的潜力。你可以将它们分组在 pod 中,构建复杂应用的自动部署,启动冗余服务以满足高需求等等。如果你刚刚开始使用容器,你可以[下载我们最新的电子书][2]来学习该技术,甚至学习创建一个 pod以便你可以运行 WordPress 和数据库。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/containers-pods-101-ebook
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png
[2]: https://opensource.com/downloads/containers-pods-101-ebook

View File

@ -0,0 +1,95 @@
[#]: subject: "Xebian A Blend of Debian and Goodness of Xfce [Review]"
[#]: via: "https://www.debugpoint.com/2022/05/xebian-review-2022/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Xebian Debian 与 Xfce 的完美结合(评论)
======
这是对漂亮而时尚的 Xebian Linux 发行版的快速回顾。
Xebian 是一个基于 Xfce 桌面环境的 Linux 发行版,基于 Debian Unstable (sid) 分支。这个 Linux 发行版带来了一个带有 Debian 的基本 Xfce 桌面,无需更改配置和附加软件包。因此,你无需担心安装 Debian 和 Xfce 就可以获得开箱即用的普通体验。
话虽如此,如果你想尝试一下,这里是 Xebian 的快速回顾。
### Xebian 评论
#### 安装
考虑到各种可用的 ISO迷你、自由、非自由等等Debian 安装可能会很棘手。毕竟,它是一个真正的“通用操作系统”。但是对于 Xebian它毫不费力因为它只有一个 64 位 ISO 文件,它为你提供 Debian sid 和 Xfce。 Xebian 使用 Debian 的本机安装程序,在你的物理系统或虚拟机中安装此发行版相当简单。
在我的测试过程中,安装很顺利,没有报告任何问题。安装大约需要 4 分钟。
#### 外观和感觉
安装后,当你首次启动系统时,你会看到带有 Xebian 默认壁纸的漂亮登录页面。登录屏幕是标准的默认 Xfce 桌面登录页面。
![Xebian Logn Screen][1]
首先,桌面非常轻量,并且带有 Xfce 的干净外观。 Xebian 提供了带有 Debian 的 Xfce 的完整版本。因此,唯一的区别是看起来不错的默认壁纸和默认的 Numix 主题(深色)。 Adwaita 和 Gerybird 主题也适用于那些喜欢更传统外观的人。
其次,顶部面板右侧有 Whisker 菜单和标准系统托盘,带有音量控制、电池指示、网络/Wi-Fi 和日期/时间。
#### 应用
Xebian 打包了所有 Xfce 原生应用,并且不添加任何额外内容。安装它时,你应该已经拥有一个稳定的工作桌面,并预装了以下应用程序。
* Thunar 文件管理器
* Ristretto 图像查看器
* Mousepad 文本编辑器
* Catfish 文件搜索
* XFCE 终端
* Firefox
* Synaptic 包管理器
* GParted 用于分区
* 系统设置
除此之外,如果你需要任何其他应用,你可以使用 Synaptic 包管理器轻松安装它们。使用内置的 “Software and Sources” 应用可以轻松调整软件源。
[Xfce 4.16][2] 是目前与原生应用一起稳定的官方版本。它的核心是基于 Debian Unstable “sid”在撰写本文时它具有 Debian 12 “bookworm” 发布路径。它基于最新的 [Linux Kernel 5.17][3] 滚动发布。 Xfce 4.18 距离最终版本还很遥远。
此外,如果你需要一个平常的图像编辑器、图形软件和 Office 套件(例如 LibreOffice那么你需要手动安装它们。它们不是 ISO 文件的一部分。
现在,让我们来看看性能。
#### Xebian 的性能
Xebian 是轻量级的,非常适合旧硬件,这要归功于 Debian。我分两个阶段测试了性能。我让系统闲置一段时间的理想阶段消耗大约 710 MB 内存,而 CPU 平均为 2%。大多数空闲状态资源被 Xfce4-desktop 和 Xfce 窗口管理器消耗。
其次,我在重度使用阶段对其进行了测试。在这个工作负载中,我使用文件管理器、文本编辑器、终端和 Firefox 浏览器的一个实例尝试了 Xebian。
在此工作负载下Xebian 平均消耗 1.2GB 内存和 2% 到 3% 的 CPU具体取决于各自的应用活动。
而且Firefox 明显消耗了大部分内存和 CPU其次是 Xfce 窗口管理器的内存消耗增加了近 50%。
总的来说,我认为它是稳定的,应该可以在至少 4 GB 内存的中档硬件中正常工作。
### 结束语
基于 Debian Unstable 分支的 [Linux 发行版][4]很少。如果你正在寻找 Xfce 和 Debian sid 的特定组合,那么 Xebian 是完美的,因为你从 Debian 获得了一个超级可靠的滚动版本并内置了 Xfce。
虽然它说“不稳定”但根据我的经验如果你每周保持系统更新Debian “unstable” 会很好地工作。
最后,如果你想尝试此发行版,请访问官方网站并[下载 ISO 文件][5]。
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/xebian-review-2022/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2022/05/Xebian-Logn-Screen-1024x578.jpg
[2]: https://www.debugpoint.com/2021/02/xfce-4-16-review/
[3]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
[4]: https://www.debugpoint.com/category/distributions
[5]: https://xebian.org/download/

View File

@ -0,0 +1,78 @@
[#]: subject: "My favorite open source tool for using crontab"
[#]: via: "https://opensource.com/article/22/5/cron-crontab-ui"
[#]: author: "Kevin Sonney https://opensource.com/users/ksonney"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
我最喜欢的使用 crontab 的开源工具
======
crontab-ui 是一个用 Node.js 编写的 Web 前端,帮助管理 crontab 文件。
![Woman using laptop concentrating][1]
图片提供Mapbox Uncharted ERG[CC-BY 3.0 US][2]
*自动化是目前的一个热门话题。在我作为网站可靠性工程师SRE的日常工作中我的部分职责是将尽可能多的重复性任务自动化。但是有多少人在我们的日常非工作生活中这样做呢今年我专注于将劳作自动化以便我们可以专注于重要的事情。*
作为一个初出茅庐的系统管理员,我最早了解的东西之一是 “cron”。cron 被广泛用于做一些事情,如轮换日志、启动和停止服务、运行程序作业等等。它在几乎所有的 Unix 和 Linux 系统中都可用而且是我认识的每个系统管理员用来帮助管理服务和服务器的东西。cron 可以自动运行任何控制台应用或脚本,这使得它非常、非常灵活。
![Image of a Crontab][3]
图片提供Kevin SonneyCC BY-SA 4.0
我已经用 cron 来获取电子邮件,运行过滤程序,确保服务正在运行,与 Habitica 等在线游戏互动等。
### 以传统方式使用 cron
要开始使用 cron你可以简单地在命令行输入 `crontab -e`,为自己打开一个带有当前 `crontab`(或 “cron table”文件的编辑器如果你以 root 身份这样做,你会得到系统 crontab。这是保存作业计划的地方以及何时运行。David Both 已经写了[大量][4]关于该文件的格式和如何使用它的文章,所以我不打算在这里介绍。我要说的是,对于新用户来说,这可能有点吓人,而且设置时间有点痛苦。
### 介绍 crontab-ui
有一些奇妙的工具可以帮助解决这个问题。我最喜欢的是 [crontab-ui][5],这是一个用 Node.js 编写的 Web 前端,可以帮助管理 crontab 文件。为了安装和启动 `crontab-ui` 供个人使用,我使用了以下命令。
```
# Make a backup
crontab -l > $HOME/crontab-backup
# Install Crontab UI
npm install -g crontab-ui
# Make a local database directory
mkdir $HOME/crontab-ui
# Start crontab-ui
CRON_DB_PATH=$HOME/crontab-ui crontab-ui
```
完成这些后,只需将你的网络浏览器指向 `http://localhost:8000`,你就会得到 crontab-ui 的网络界面。要做的第一件事是点击 “Get from Crontab”加载你可能有的任何现有作业。然后点击**备份**,这样你就可以回滚你所做的任何修改。
![Image of Crontab-UI][6]
图片提供Kevin SonneyCC BY-SA 4.0
添加和编辑 cron 作业是非常简单的。添加一个名称,你想运行的完整命令,以及时间(使用 cron 语法),然后保存。另外,你还可以捕获日志,并设置将工作状态邮寄到你选择的电子邮箱。
完成后,点击 **Save to Crontab**
我个人非常喜欢日志记录功能。有了 crontab-ui你可以通过点击一个按钮来查看日志这在排除故障时非常有用。
我推荐的一件事是不要一直运行 crontab-ui至少不要公开运行。虽然它确实具有一些基本的身份验证功能但它不应该暴露在你的本地机器之外。我不需要经常现在编辑我的 cron 作业,所以我可以按需启动和停止它。
下次你需要编辑你的 crontab 时,可以试试 crontab-ui
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/cron-crontab-ui
作者:[Kevin Sonney][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/ksonney
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png
[2]: https://creativecommons.org/licenses/by/3.0/us/
[3]: https://opensource.com/sites/default/files/2022-04/Day01-1.png
[4]: https://opensource.com/article/17/11/how-use-cron-linux
[5]: https://opensource.com/%5Bhttps%3A//github.com/alseambusher/crontab-ui%5D%28https%3A//github.com/alseambusher/crontab-ui%29
[6]: https://opensource.com/sites/default/files/2022-04/Day01-2.png

View File

@ -0,0 +1,157 @@
[#]: subject: "PyCaret: Machine Learning Model Development Made Easy"
[#]: via: "https://www.opensourceforu.com/2022/05/pycaret-machine-learning-model-development-made-easy/"
[#]: author: "S Ratan Kumar https://www.opensourceforu.com/author/s-ratan/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
PyCaret机器学习模型开发变得简单
======
在当今快节奏的数字世界中,组织使用低代码/无代码 (LC/NC) 应用来快速构建新的信息系统。本文介绍 PyCaret一个用 Python 编写的低代码机器学习库。
![Featured-image-of-pycaret][1]
PyCaret 是 R 编程语言中 Caret分类和回归训练的缩写包的 Python 版本,具有许多优点。
- **提高工作效率:** PyCaret 是一个低代码库,可让你提高工作效率。由于花费更少的时间进行编码,你和你的团队现在可以专注于业务问题。
- **易于使用:** 这个简单易用的机器学习库将帮助你以更少的代码行执行端到端的机器学习实验。
- **可用于商业:** PyCaret 是一个可用于商业的解决方案。它允许你从选择的 notebook 环境中快速有效地进行原型设计。
你可以在 Python 中创建一个虚拟环境并执行以下命令来安装 PyCaret 完整版:
```
pip install pycaret [full]
```
机器学习从业者可以使用 PyCaret 进行分类、回归、聚类、异常检测、自然语言处理、关联规则挖掘和时间序列分析。
### 使用 PyCaret 构建分类模型
本文通过从 PyCaret 的数据仓库中获取 Iris 数据集来解释使用 PyCaret 构建分类模型。
我们将使用 Google Colab 环境使事情变得简单,并按照下面提到的步骤进行操作。
#### 步骤 1
首先,通过给出以下命令安装 PyCaret
```
pip install pycaret
```
#### 步骤 2
接下来,加载数据集,如图 2 所示:
![Loading the data set][2]
```
from pycaret.datasets import get_data
dataset = get_data(iris) 
(or)
import pandas as pd
dataset = pd.read_csv(/path_to_data/file.csv)
```
#### 步骤 3
现在设置 PyCaret 环境,如图 2 所示:
![PyCaret environment setup][3]
```
from pycaret.classification import *
clf1 = setup (data=dataset, target = species)
```
![PyCaret environment setup result][4]
对于使用 PyCaret 构建任何类型的模型,环境设置是最重要的一步。默认情况下,*setup()* 函数采用 *data*: Pandas DataFrame 和 target它指向数据集中的类标签变量。 setup 函数的结果如图 3 所示。 setup 函数默认将 70% 的数据拆分为训练集30% 作为测试集,并进行数据预处理,如图 3 所示。
#### 步骤 4
接下来,找到最佳模型,如图 4 所示:
![Finding the best model][5]
```
best = compare_models()
```
默认情况下,*compare_models()* 应用十倍交叉验证并针对具有较少训练时间的不同分类器计算不同的性能指标如准确度、AUC、召回率、精度、F1 分数、Kappa 和 MCC如图 4 所示。通过将 tubro=True 传递给 *compare_models()* 函数,我们可以尝试所有分类器。
#### 步骤 5
现在创建模型,如图 5 所示:
![Creating the model][6]
```
lda_model=create_model (lda)
```
线性判别分析分类器表现良好,如图 4 所示。因此,通过将 “lda” 传递给 *create_model()* 函数,我们可以拟合模型。
#### 步骤 6
下一步是微调模型,如图 6 所示。
![Tuning the model][7]
```
tuned_lda=tune_model(lda_model)
```
超参数的调整可以提高模型的准确性。 *tune_model()* 函数将线性判别分析模型的精度从 0.9818 提高到 0.9909,如图 7 所示。
![Tuned model details][8]
#### 步骤 7
下一步是进行预测,如图 8 所示:
![Predictions using the tuned model][9]
```
predictions=predict_model(tuned_lda)
```
*predict_model()* 函数用于对测试数据中存在的样本进行预测。
#### 步骤 8
现在绘制模型性能,如图 9 所示:
![Evaluating and plotting the model performance — confusion matrix][10]
```
evaluate_model(tuned_lda)
```
*evaluate_model ()* 函数用于以最小的努力开发不同的性能指标。你可以尝试它们并查看输出。
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/pycaret-machine-learning-model-development-made-easy/
作者:[S Ratan Kumar][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/s-ratan/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Featured-image-of-pycaret-696x477.jpg
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-1-loading-the-dataset.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-2-PyCaret-Environment-Setup.jpg
[4]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-3-PyCaret-Environment-Setup-Result.jpg
[5]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-4-Finding-the-best-model.jpg
[6]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-5-Creating-the-model.jpg
[7]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-6-Tuning-the-model.jpg
[8]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-7Tuned-model-details.jpg
[9]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-8-Predictions-using-tuned-model.jpg
[10]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-9-Evaluating-and-ploting-the-model-performance-Confusion-Matrix.jpg

View File

@ -0,0 +1,91 @@
[#]: subject: "HydraPaper: A Wallpaper Manager for Linux with Multi-Monitor Support"
[#]: via: "https://itsfoss.com/hydrapaper/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
HydraPaper一个支持多显示器的 Linux 壁纸管理器
======
简介HydraPaper 是一个令人印象深刻的壁纸管理器,适用于 Linux 用户,也支持多显示器设置。让我们仔细看一下。
默认情况下,你可以根据你的 Linux 发行版上的桌面环境来设置壁纸。
而且当试图在可用的选择中添加一个自定义的壁纸集文件夹时往往会受到限制。此外当涉及到多显示器设置时你无法在发行版中选择单独的壁纸。因此你需要去寻找一个图形用户界面GUI程序让你做到这一点。
幸运的是,我偶然发现了一个让 Linux 用户印象深刻的选择,即 **HydraPaper**
### HydraPaper可以 CLI 访问的开源墙纸管理器
![hydrapaper wallpaper manager][1]
HydraPaper 是一个使用 Python 3 和 GTK 构建的相当有用的壁纸管理器。它可以让你为不同的显示器选择单独的墙纸。
虽然它主要是一个 GUI 程序,但你也可以使用命令行执行同样的任务。
因此HydraPaper 是一个同时适用于 GUI 和 CLI 用户的壁纸管理器。
![hydrapaper favorites][2]
它看起来是一个直接的解决方案,有一些简单的功能。让我提一下下面的主要亮点。
### HydraPaper 的特点
![hydrapaper folders][3]
HydraPaper 让你添加你的自定义壁纸集,组织/选择你想要的文件夹,并方便地挑选壁纸。
一些基本的特性包括:
* 管理文件夹集合(根据需要一键切换它们)。
* 挑选喜欢的壁纸,并将它们添加到你的最爱集合。
* 按照你的喜好定位墙纸(缩放,适合黑色背景/模糊,居中等)。
* 能够从你的收藏中快速设置一个随机壁纸,如果这是你决定的方式。
* 用深色模式自定义壁纸管理器的体验,选择单独保存壁纸,清除缓存,等等。
* 支持 CLI。
* 单一跨度壁纸模式适用于多显示器。
![single span mode][4]
使用起来相当简单。你可以为不同的显示器挑选壁纸,或者使用选项中的单跨壁纸模式,在多显示器之间应用一个壁纸。
![hydrapaper options][5]
你可以选择/添加/删除文件夹,调整位置,添加收藏夹,以及应用深色模式的墙纸。
### 在 Linux 中安装 HydraPaper
你可以在 Flathub 上找到 HydraPaper 的 [Flatpak 包][6],它适合每一个 Linux 发行版。如果你是第一次设置对 Flatpak 的支持,你可以参考我们的 [Flatpak 指南][7]。
你也可以在 Arch Linux 发行版的 AUR、Fedora 的仓库,以及 Debianunstable中找到它。
我在 Manjaro Linux 上测试了它,它使用 Flatpak 包工作得很好。
要探索更多的选择,你可以前往其 [GitLab 仓库][8]。
*你对 HydraPaper 有什么看法?你是否更喜欢用其他东西来管理多显示器设置上的壁纸?请在下面的评论中告诉我你的想法*。
--------------------------------------------------------------------------------
via: https://itsfoss.com/hydrapaper/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/wp-content/uploads/2022/05/hydrapaper-wallpaper-manager.jpg
[2]: https://itsfoss.com/wp-content/uploads/2022/05/hydrapaper-favorites.jpg
[3]: https://itsfoss.com/wp-content/uploads/2022/05/hydrapaper-folders.png
[4]: https://itsfoss.com/wp-content/uploads/2022/05/single-span-mode.jpg
[5]: https://itsfoss.com/wp-content/uploads/2022/05/hydrapaper-options.jpg
[6]: https://itsfoss.com/what-is-flatpak/
[7]: https://itsfoss.com/flatpak-guide/
[8]: https://gitlab.gnome.org/gabmus/hydrapaper