Merge pull request #35 from LCTT/master

update 20220509
This commit is contained in:
SamMa 2022-05-09 09:20:22 +08:00 committed by GitHub
commit ff1397c41f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 1295 additions and 1230 deletions

View File

@ -3,34 +3,34 @@
[#]: author: "Chris Collins https://opensource.com/users/clcollins"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "turbokernel"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14560-1.html"
使用 Go 和树莓派来解决 WiFi 问题
使用 Go 和树莓派排查 WiFi 问题
======
实现一个 WiFi 扫描仪玩玩~
![在在门廊上喝茶][1]
图源opensource.com
> 实现一个 WiFi 扫描器玩玩~
去年夏天,我和妻子卖掉了我们的全部财产,带着我们的两只狗搬到了夏威夷。这里有我们想象中的一切:美丽的阳光、温暖的沙滩、凉爽的冲浪 —— 你能想到的一切。我们也遇到了一些意料之外的事WiFi 问题。
![](https://img.linux.net.cn/data/attachment/album/202205/08/085020czfsvsfpdg0usuph.jpg)
不过,这不是夏威夷的问题,而是我们租住的公寓的问题。我们住在一个单身公寓里,与房东的公寓仅一墙之隔。我们的租房协议中包含了免费的网络连接!好耶!只不过,它是由房东的公寓里的 WiFi 提供的,哇哦……
去年夏天我和妻子变卖了家产带着我们的两只狗移居了夏威夷。这里有美丽的阳光、温暖的沙滩、凉爽的冲浪等你能想到的一切。我们同样遇到了一些意料之外的事WiFi 问题。
说实话,它的效果还不错……吗?好吧,我承认它不尽如人意,我也不知道是哪里出了问题。明明路由器就在墙的另一边,但我们的信号就是很不稳定,经常会自动断开连接。在家的时候,我们的 WiFi 路由器的信号能够穿过层层墙壁和地板。事实上,它所覆盖的区域比我们居住的 600 平方英尺(大约 55 平方米)的公寓还要大。
不过,这不是夏威夷的问题,而是我们租住公寓的问题。我们住在一个单身公寓里,与房东的公寓仅一墙之隔。我们的租房协议中包含了免费的网络连接!好耶!只不过,它是由房东的公寓里的 WiFi 提供的,哇哦……
在这种情况下,一个优秀的技术人员会怎么做呢?既然想知道为什么,当然是开始调查咯!
说实话,它的效果还不错……吧?好吧,我承认它不尽如人意,并且不知道是哪里的问题。路由器明明就在墙的另一边,但我们的信号就是很不稳定,经常会自动断开连接。在家的时候,我们的 WiFi 路由器的信号能够穿过层层墙壁和地板。事实上,它所覆盖的区域比我们居住的 600 平方英尺(大约 55 平方米)的公寓还要大。
幸运的是,我们在搬家之前卖掉的“全部财产”并不包括树莓派 Zero W。它是如此小! 如此便携! 我当然就把它一起带来了。我有一个机智的想法:使用树莓派和它内置的 WiFi 适配器,用 Go 语言编写一个小程序来测量并显示从路由器收到的 WiFi 信号。我打算先简单快速地把它实现出来,以后再去考虑该如何优化。烦死了!我现在只想知道这个 WiFi 是怎么回事
在这种情况下,一个优秀的技术人员会怎么做呢?既然想知道为什么,当然是开始排查咯
谷歌搜索了一番后,我发现了一个相对有用的 Go 软件包 [mdlayher/wifi][2],它专门用于 WiFi 相关操作,听起来很有希望!
幸运的是,我们在搬家之前并没有变卖掉树莓派 Zero W。它是如此小巧便携! 我当然就把它一起带来了。我有一个机智的想法:通过树莓派和它内置的 WiFi 适配器,使用 Go 语言编写一个小程序来测量并显示从路由器收到的 WiFi 信号。我打算先简单快速地把它实现出来,以后再去考虑优化。真是麻烦!我现在只想知道这个 WiFi 是怎么回事!
谷歌搜索了一番后,我发现了一个比较有用的 Go 软件包 [mdlayher/wifi][2],它专门用于 WiFi 相关操作,听起来很有希望!
### 获取 WiFi 接口的信息
我的计划是查询 WiFi 接口的统计数据并返回信号强度所以我需要先找到设备上的接口。幸运的是mdlayher/wifi 包有一个查询它们的方法,所以我可以创建一个 `main.go` 来实现它,就像下面这样
我的计划是查询 WiFi 接口的统计数据并返回信号强度,所以我需要先找到设备上的接口。幸运的是,`mdlayher/wifi` 包有一个查询它们的方法,所以我可以创建一个 `main.go` 来实现它,具体代码如下
```go
```
package main
import (
@ -54,9 +54,9 @@ func main() {
}
```
让我们来看看上面的代码都做了什么吧!嗯,首先是导入依赖模块,导入后,我就可以使用 mdlayher/wifi 模块就在主函数中创建一个新的客户端(类型为 `*Client`)。接下来,这个新的客户端(变量名为 `c`就可以获得系统中的接口列表,只需要调用 `c.Interfaces()` 方法即可。接着,我就可以遍历包含接口指针的切片(变长数组),然后打印出它们的具体信息。
让我们来看看上面的代码都做了什么吧!首先是导入依赖包,导入后,我就可以使用 `mdlayher/wifi` 模块就在 `main` 函数中创建一个新的客户端(类型为 `*Client`)。接下来,只需要调用这个新的客户端(变量名为 `c``c.Interfaces()` 方法就可以获得系统中的接口列表。接着,我就可以遍历包含接口指针的切片(变长数组),然后打印出它们的具体信息。
注意到 `%+v` 中有一个 “+” 了吗?它意味着程序会额外打印出 `*Interface` 结构中的属性名,这将有助于我辨认出我看到的东西,而不用回头去看文档。
注意到 `%+v` 中有一个 `+` 了吗?它意味着程序会详细输出 `*Interface` 结构体中的属性名,这将有助于我标识出我看到的东西,而不用去查阅文档。
运行上面的代码后,我得到了机器上的 WiFi 接口列表:
@ -65,17 +65,17 @@ func main() {
&{Index:3 Name:wlp2s0 HardwareAddr:5c:5f:67:f3:0a:a7 PHY:0 Device:1 Type:station Frequency:2412}
```
注意,两行输出中的 MAC 地址都是 `HardwareAddr`,这意味着它们是同一个物理硬件。你也可以通过 `PHY: 0` 来确认。根据 Go 的 [wifi 模块文档][3]`PHY` 指的就是接口所属的物理设备。
注意,两行输出中的 MAC 地址`HardwareAddr`)是相同的,这意味着它们是同一个物理硬件。你也可以通过 `PHY: 0` 来确认。查阅 Go 的 [wifi 模块文档][3]`PHY` 指的就是接口所属的物理设备。
第一个接口没有名字,类型是 `TYPE: P2P`。第二个接口名为 `wpl2s0`,类型是 `TYPE: Station`Go 的 wifi 模块文档列出了 [不同类型的接口][4],并描述了它们是什么。根据文档,“<ruby>P2P<rt>点对点传输</rt></ruby>” 类型表示“这个接口是点对点客户端网络中的一个设备”。我认为这个接口是用于 [WiFi 直连][5] ,这是一个允许两个 WiFi 设备在没有中间接入点的情况下直接连接的标准。
第一个接口没有名字,类型是 `TYPE: P2P`。第二个接口名为 `wpl2s0`,类型是 `TYPE: Station``wifi` 模块的文档列出了 [不同类型的接口][4],以及它们的用途。根据文档,`P2P`(点对点传输) 类型表示“该接口属于点对点客户端网络中的一个设备”。我认为这个接口的用途是 [WiFi 直连][5] ,这是一个允许两个 WiFi 设备在没有中间接入点的情况下直接连接的标准。
<ruby>Station<rt>基站</rt></ruby>” 类型表示“这个接口是带有<ruby>控制接入点<rt>controlling access point</rt></ruby>的客户端设备管理的<ruby>基本服务集BSS<rt>basic service set</rt></ruby>的一部分”。这是大多数人所习惯的无线设备标准功能,也就是作为一个客户端来连接到网络接入点。这是测试 WiFi 质量的重要接口。
`Station`(基站)类型表示“该接口是具有<ruby>控制接入点<rt>controlling access point</rt></ruby>的客户端设备管理的<ruby>基本服务集<rt>basic service set</rt></ruby>BSS的一部分”。这是大众熟悉的无线设备标准功能作为一个客户端来连接到网络接入点。这是测试 WiFi 质量的重要接口。
### 利用接口获取基站信息
利用这个信息,我可以修改遍历接口的代码来获取我正在寻找的信息:
利用该信息,我可以修改遍历接口的代码来获取所需信息:
```go
```
for _, x := range interfaces {
if x.Type == wifi.InterfaceTypeStation {
// c.StationInfo(x) returns a slice of all
@ -91,9 +91,9 @@ for _, x := range interfaces {
}
```
首先,这段程序检查了 `x.Type`(接口类型)是否为 `wifi.InterfaceTypeStation`,它是一个基站接口(也是本练习中唯一涉及到的类型)。这是一个不幸的命名冲突,因为这个接口“类型”和 Golang 中的“类型”不是一个东西。事实上,我在这里使用了一个叫做 `interfaceType` 的 Go 类型来代表接口类型。呼,我花了一分钟才弄明白!
首先,这段程序检查了 `x.Type`(接口类型)是否为 `wifi.InterfaceTypeStation`,它是一个基站接口(也是本练习中唯一涉及到的类型)。不幸的是名字出现了冲突,这个接口“类型”并不是 Golang 中的“类型”。事实上,我在这里使用了一个叫做 `interfaceType` 的 Go 类型来代表接口类型。呼,我花了一分钟才弄明白!
然后,假设接口的类型符合预期,我们就可以调用 `c.StationInfo(x)` 来检索基站信息,`StationInfo()` 方法可以获取到关于这个接口 `x` 的信息。
然后,假设接口的类型正确,我们就可以调用 `c.StationInfo(x)` 来检索基站信息,`StationInfo()` 方法可以获取到关于这个接口 `x` 的信息。
这将返回一个包含 `*StationInfo` 指针的切片。我不大确定这里为什么要用切片,或许是因为接口可能返回多个 `StationInfo`?不管怎么样,我都可以遍历这个切片,然后使用之前提到的 `+%v` 技巧格式化打印出 `StationInfo` 结构的属性名和属性值。
@ -103,7 +103,7 @@ for _, x := range interfaces {
&{HardwareAddr:70:5a:9e:71:2e:d4 Connected:17m10s Inactive:1.579s ReceivedBytes:2458563 TransmittedBytes:1295562 ReceivedPackets:6355 TransmittedPackets:6135 ReceiveBitrate:2000000 TransmitBitrate:43300000 Signal:-79 TransmitRetries:2306 TransmitFailed:4 BeaconLoss:2}
```
我感兴趣的是<ruby>信号<rt>Signal</rt></ruby>”部分,可能还有“<ruby>传输失败<rt>TransmitFailed</rt></ruby>”和“<ruby>信标丢失<rt>BeaconLoss</rt></ruby>”部分。信号强度是以 dBm全称 <ruby>decibel-milliwatts<rt>分贝-毫瓦</rt><ruby>)为单位来报告的。
我感兴趣的是 `Signal`(信号)部分,可能还有 `TransmitFailed`(传输失败)和 `BeaconLoss`(信标丢失)部分。信号强度是以 dBm<ruby>分贝-毫瓦<rt>decibel-milliwatts</rt><ruby>)为单位来报告的。
#### 简短科普:如何读懂 WiFi dBm
@ -112,16 +112,16 @@ for _, x := range interfaces {
* -30 最佳,但它既不现实也没有必要
* -67 非常好,它适用于需要可靠数据包传输的应用,例如流媒体
* -70 还不错,它是实现可靠数据包传输的底线,适用于电子邮件和网页浏览
* -80 很差,只能保持绝对的基本连接,不可靠的数据包传输
* -90 不可用,接近“<ruby>噪音底线<rt>noise floor</rt></ruby>
* -80 很差,只是基本连接,数据包传输不可靠
* -90 不可用,接近“<ruby>背景噪声<rt>noise floor</rt></ruby>
*注意dBm 是对数尺度,-60 比 -30 要低 1000 倍。*
### 使它成为一个真的“扫描
### 使它成为一个真的“扫描
所以,看着上面输出显示的我的信号:-79。哇哦感觉不大好呢。不过单看这个结果并没有太大帮助它只能提供某个时间点的参考只对 WiFi 网络适配器在那一瞬间所在的特定物理空间有效。一个连续的读数会更有用,它能使我们有可能看到信号随着树莓派的移动而变化。我可以再次修改主函数来实现这一点。
所以,看着上面输出显示的我的信号:-79。哇哦感觉不大好呢。不过单看这个结果并没有太大帮助它只能提供某个时间点的参考只对 WiFi 网络适配器在特定物理空间的某一瞬间有效。一个连续的读数会更有用,借助于它,我们观察到信号随着树莓派的移动而变化。我可以再次修改 `main` 函数来实现这一点。
```go
```
var i *wifi.Interface
for _, x := range interfaces {
@ -153,9 +153,9 @@ for {
首先,我命名了一个 `wifi.Interface` 类型的变量 `i`。因为它在循环的范围外,所以我可以用它来存储接口信息。循环内创建的任何变量在该循环的范围外都是不可访问的。
然后,我可以把这个循环一分为二。第一个遍历了 `c.Interfaces()` 返回的接口切片,如果元素是一个 `Station` 类型,它就将其存储在先前创建的变量 `i`中,并跳出循环。
然后,我可以把这个循环一分为二。第一个遍历了 `c.Interfaces()` 返回的接口切片,如果元素是一个 `Station` 类型,它就将其存储在先前创建的变量 `i` 中,并跳出循环。
第二个循环是一个无限循环,所以它将不断地运行,直到我按下 **Ctrl** + **C** 来结束程序。和之前一样,这个循环内部获取接口信息、检索基站信息,并打印出信号信息。然后它会休眠一秒钟,再次运行,反复打印信号信息,直到我退出为止。
第二个循环是一个死循环,它将不断地运行,直到我按下 `Ctrl + C` 来结束程序。和之前一样,这个循环内部获取接口信息、检索基站信息,并打印出信号信息。然后它会休眠一秒钟,再次运行,反复打印信号信息,直到我退出为止。
运行上面的程序后,我得到了下面的输出:
@ -173,13 +173,13 @@ Signal: -81
不管怎么说,知道这些信息总比不知道要好。让树莓派连接上显示器或者电子墨水屏,并接上电源,我就可以让它在公寓里移动,并绘制出信号死角的位置。
剧透一下:由于房东的接入点在隔壁的公寓里,对我来说最大的死角是公寓厨房的冰箱那里发射出的一个圆锥体形状区域......这个冰箱与房东的公寓共用一堵墙!
剧透一下:由于房东的接入点在隔壁的公寓里,对我来说最大的死角是以公寓厨房的冰箱为顶点的一个圆锥体形状区域......这个冰箱与房东的公寓靠着一堵墙!
我想如果用《龙与地下城》里的黑话来说,它就是一个“<ruby>沉默之锥<rt>Cone of Silence</rt></ruby>”。或者至少是一个“<ruby>糟糕的网络连接之锥<rt>Cone of Poor Internet</rt></ruby>”。
总之,这段代码可以直接在树莓派上运行 `go build -o wifi_scanner` 来编译,得到的二进制文件 `wifi_scanner` 可以与任何其他 ARM 设备(同一版本)共享。另外,它也可以在常规系统上用正确的 ARM 设备库进行编译。
总之,这段代码可以直接在树莓派上运行 `go build -o wifi_scanner` 来编译,得到的二进制文件 `wifi_scanner` 可以运行在其他同样的ARM 设备上。另外,它也可以在常规系统上用正确的 ARM 设备库进行编译。
祝你扫描愉快!希望你的 WiFi 路由器不在你的冰箱后面!你可以在 [我的 GitHub repo][7] 中找到这个项目所用的代码。
祝你扫描愉快!希望你的 WiFi 路由器不在你的冰箱后面!你可以在 [我的 GitHub 存储库][7] 中找到这个项目所用的代码。
--------------------------------------------------------------------------------
@ -188,7 +188,7 @@ via: https://opensource.com/article/21/3/troubleshoot-wifi-go-raspberry-pi
作者:[Chris Collins][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者ID](https://github.com/校对者ID)
校对:[turbokernel](https://github.com/turbokernel)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,18 +3,20 @@
[#]: author: (Chris Hermansen https://opensource.com/users/clhermansen)
[#]: collector: (lujun9972)
[#]: translator: (hanszhao80)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14558-1.html)
使用 apt 进行 Linux 包管理
======
学习如何使用 apt 命令在基于 Debian 的 Linux 发行版上安装软件包,然后下载我们的速查表,让正确的命令触手可及。
![绿色背景的 bash 标志][1]
[包管理器][2] 可帮助你处理 Linux 系统的计算机上软件的更新、卸载、故障排除等问题。Seth Kenlon 写了 [使用 `dnf` 进行 Linux 包管理][3] 一文,介绍了如何使用 dnf 这款命令行包管理工具,在 RHEL、CentOS、Fedora、Mageia、OpenMandriva 和其他 Linux 发行版中安装软件
> 学习如何使用 apt 命令在基于 Debian 的 Linux 发行版上安装软件包,然后下载我们的速查表,让正确的命令触手可及。
Debian 和基于 Debian 的发行版(例如 MX Linux、Deepin、Ubuntu以及基于 Ubuntu 的发行版(例如 Linux Mint 和 Pop!_OS都有`apt`,一个“相似但不同”的工具。在本文中,我将按照 Seth 的示例(但使用 `apt`)向你展示如何使用它。
![](https://img.linux.net.cn/data/attachment/album/202205/07/104236md5zqhpub9vqeaah.jpg)
[包管理器][2] 可帮助你处理 Linux 系统的计算机上软件的更新、卸载、故障排除等问题。Seth Kenlon 写了 [使用 dnf 进行 Linux 包管理][3] 一文,介绍了如何使用 `dnf` 这款命令行包管理工具,在 RHEL、CentOS、Fedora、Mageia、OpenMandriva 等 Linux 发行版中安装软件。
Debian 和基于 Debian 的发行版(例如 MX Linux、Deepin、Ubuntu以及基于 Ubuntu 的发行版(例如 Linux Mint 和 Pop!_OS都有 `apt`,这是一个“相似但不同”的工具。在本文中,我将按照 Seth 的示例(但使用 `apt`)向你展示如何使用它。
在一开始,我想先提一下四个跟 `apt` 相关的软件安装工具:
@ -23,17 +25,14 @@ Debian 和基于 Debian 的发行版(例如 MX Linux、Deepin、Ubuntu
* `apt` 的前身有 `apt-get`、`apt-cache` 等工具。
* [Dpkg][6] 是在 `apt` 包管理器背后处理繁杂事务的”幕后工作者“。
还有其他的包管理系统,例如 [Flatpak][7] 和 [Snap][8],你可能会在 Debian 和基于 Debian 的系统上遇到它们,但我不打算在这里讨论。还有一些应用程序“商店”,例如 [GNOME “软件”][9],与 `apt` 和其他打包技术重叠;我也不打算在这里讨论它们。最后,还有其他 Linux 发行版,例如 [Arch][10] 和 [Gentoo][11] 既不使用 `dnf` 也不使用 `apt`,我也不打算在这里讨论它们!
还有其他的包管理系统,例如 [Flatpak][7] 和 [Snap][8],你可能会在 Debian 和基于 Debian 的系统上遇到它们,但我不打算在这里讨论。还有一些应用程序“商店”,例如 [GNOME 软件][9],与 `apt` 和其他打包技术重叠;我也不打算在这里讨论它们。最后,还有其他 Linux 发行版,例如 [Arch][10] 和 [Gentoo][11] 既不使用 `dnf` 也不使用 `apt`,我也不打算在这里讨论它们!
上面我讲了这么多我不想提及的内容,您可能怀疑 `apt` 到底还能处理多少软件。这么说吧,在我的 Ubuntu 20.04 上,`apt` 可以让我使用 69,371 个软件包,从 `0ad` ,一款古代战争题材的即时战略游戏,到 `zzuf`,一个透明的应用程序输入模糊器。一点也不差。
上面我讲了这么多我不想提及的内容,你可能怀疑 `apt` 到底还能处理多少软件。这么说吧,在我的 Ubuntu 20.04 上,`apt` 可以让我使用 69,371 个软件包,从 `0ad`(一款古代战争题材的即时战略游戏)到 `zzuf`(一个透明的应用程序模糊测试工具),一点也不差。
### 使用 apt 搜索软件
使用 `apt` 软件包管理器的第一步是找到感兴趣的软件包。Seth 的 `dnf` 文章以 [Cockpit][12] 服务器管理应用程序为例。用 `apt` 我会输入如下命令:
```
$ apt search cockpit
Sorting... Done
@ -50,9 +49,8 @@ $
上面的第二个包就是你要的那个(以 `cockpit/hirsute` 开头的那一行)。如果你决定要安装它,输入:
```
`$ sudo apt install cockpit`
$ sudo apt install cockpit
```
`apt` 将负责安装 Cockpit 以及使其工作所需的所有部件或 _依赖_。有时我们不太确定这是我们所需要的。了解更多的信息可能有助于你决定是否真的要安装此应用程序。
@ -61,7 +59,6 @@ $
要了解有关软件包的更多信息,使用 `apt show` 命令:
```
$ apt show cockpit
Package: cockpit
@ -69,22 +66,22 @@ Version: 238-1
Priority: optional
Section: universe/admin
Origin: Ubuntu
Maintainer: Ubuntu Developers &lt;[ubuntu-devel-discuss@lists.ubuntu.com][13]&gt;
Original-Maintainer: Utopia Maintenance Team &lt;[pkg-utopia-maintainers@lists.alioth.debian.org][14]&gt;
Bugs: <https://bugs.launchpad.net/ubuntu/+filebug>
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 88.1 kB
Depends: cockpit-bridge (&gt;= 238-1), cockpit-ws (&gt;= 238-1), cockpit-system (&gt;= 238-1)
Recommends: cockpit-storaged (&gt;= 238-1), cockpit-networkmanager (&gt;= 238-1), cockpit-packagekit (&gt;= 238-1)
Suggests: cockpit-doc (&gt;= 238-1), cockpit-pcp (&gt;= 238-1), cockpit-machines (&gt;= 238-1), xdg-utils
Homepage: <https://cockpit-project.org/>
Depends: cockpit-bridge (>= 238-1), cockpit-ws (>= 238-1), cockpit-system (>= 238-1)
Recommends: cockpit-storaged (>= 238-1), cockpit-networkmanager (>= 238-1), cockpit-packagekit (>= 238-1)
Suggests: cockpit-doc (>= 238-1), cockpit-pcp (>= 238-1), cockpit-machines (>= 238-1), xdg-utils
Homepage: https://cockpit-project.org/
Download-Size: 21.3 kB
APT-Sources: <http://ca.archive.ubuntu.com/ubuntu> hirsute/universe amd64 Packages
APT-Sources: http://ca.archive.ubuntu.com/ubuntu hirsute/universe amd64 Packages
Description: Web Console for Linux servers
 The Cockpit Web Console enables users to administer GNU/Linux servers using a
 web browser.
 .
 It offers network configuration, log inspection, diagnostic reports, SELinux
 troubleshooting, interactive command-line sessions, and more.
The Cockpit Web Console enables users to administer GNU/Linux servers using a
web browser.
.
It offers network configuration, log inspection, diagnostic reports, SELinux
troubleshooting, interactive command-line sessions, and more.
$
```
@ -95,7 +92,6 @@ $
有时你并不知道包名但你知道包里一定包含着的某个文件。Seth 以 `qmake-qt5` 程序作为示例。使用 `apt search` 找不到它:
```
$ apt search qmake-qt5
Sorting... Done
@ -105,7 +101,6 @@ $
但是,另一个有关联的命令 `apt-file` 可以用来探索包内部:
```
$ apt-file search qmake-qt5
qt5-qmake-bin: /usr/share/man/man1/qmake-qt5.1.gz
@ -118,7 +113,6 @@ $
方便的 `apt-file` 命令会列出给定的包中包含哪些文件。例如:
```
$ apt-file list cockpit
cockpit: /usr/share/doc/cockpit/TODO.Debian
@ -136,29 +130,29 @@ $
你还可以使用 `apt` 移除软件包。例如,要移除`apt-file` 应用程序:
```
`$ sudo apt purge apt-file`
$ sudo apt purge apt-file
```
注意必须由超级用户运行 `apt` 才能安装或移除应用程序。
移除一个包并不会自动移除 `apt` 在此过程中安装的所有依赖项。不过,一点点的工作就很容易去除这些残留:
```
`$ sudo apt autoremove`
$ sudo apt autoremove
```
### 认识一下 apt
正如 Seth 所写的,“你对包管理器的工作方式了解得越多,在需要安装和查询应用程序时就会越容易。”
即便你不是 `apt` 的重度使用者,当你需要在命令行中安装或删除软件包时(例如,在一台远程服务器上或遵循某些热心肠发布的操作指南时),掌握一些 apt 的知识也会很有用。在某些软件创作者仅提供了一个裸 `.pkg` 文件的情况下,可能还需要了解一些关于 Dkpg 的知识(如上所述)。
即便你不是 `apt` 的重度使用者,当你需要在命令行中安装或删除软件包时(例如,在一台远程服务器上或遵循某些热心肠发布的操作指南时),掌握一些 `apt` 的知识也会很有用。在某些软件创作者仅提供了一个裸 `.pkg` 文件的情况下,可能还需要了解一些关于 dpkg 的知识(如上所述)。
我发现 Synaptic 包管理器在我的桌面上是一个非常有用的工具,但出于各种目的,我也在少数维护的服务器上使用着 `apt`
**[下载我们的 `apt` 速查表][15]** 习惯该命令并尝试一些新技巧。一旦你这样做了,你可能会发现很难再使用其他任何东西。
[下载我们的 apt 速查表][15] 习惯该命令并尝试一些新技巧。一旦你这样做了,你可能会发现很难再使用其他任何东西。
> **[apt 速查表][15]**
--------------------------------------------------------------------------------
@ -167,7 +161,7 @@ via: https://opensource.com/article/21/6/apt-linux
作者:[Chris Hermansen][a]
选题:[lujun9972][b]
译者:[hanszhao80](https://github.com/hanszhao80)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -175,7 +169,7 @@ via: https://opensource.com/article/21/6/apt-linux
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/bash_command_line.png?itok=k4z94W2U (bash logo on green background)
[2]: https://opensource.com/article/21/2/linux-package-management
[3]: https://opensource.com/article/21/5/dnf
[3]: https://linux.cn/article-14542-1.html
[4]: https://www.nongnu.org/synaptic/
[5]: https://wiki.debian.org/Aptitude
[6]: https://wiki.debian.org/Teams/Dpkg

View File

@ -3,80 +3,67 @@
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "hanszhao80"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14563-1.html"
2022 年学习 Rust
2022 Rust 入门指南
======
如果你打算在今年探索 Rust请下载我们的免费 Rust 速查表,以供快速参考基础知识。
![Cheat Sheet cover image][1]
Rust 是一门相对较新的编程语言,受到各个企业的 [程序员的欢迎][2]。尽管如此它仍是一门建立在之前所有事物之上的语言。毕竟Rust 不是一天做出来的,所以即便 Rust 中的一些概念看起来与你从 Python、Java、C++ 等编程语言学到的东西大不相同,但它们都是在同一个 CPU 和你一直交互使用(无论你是否知道)的 <ruby>非一致性内存访问<rt>NUMA</rt></ruby> 架构上打下的基础,因此 Rust 中的一些新功能让人感觉有些熟悉
> 如果你打算在今年探索 Rust请下载我们的免费 Rust 速查表,以供快速参考基础知识。
现在我的职业不是程序员。我没耐心但我又有点儿强迫症。当我需要完成某件事时如果一门语言不能帮助相对较快地获得我想要的结果那么我很少会受到鼓舞而使用它。Rust 试图平衡两个矛盾:现代计算机对安全和结构化代码的需求和现代程序员对编码工作事半功倍的渴望。
![](https://img.linux.net.cn/data/attachment/album/202205/08/161625lvo8v82ell9l3xmm.jpg)
Rust 是一门相对较新的编程语言,受到各个企业的 [程序员的欢迎][2]。尽管如此它仍是一门建立在之前所有事物之上的语言。毕竟Rust 不是一天做出来的,所以即便 Rust 中的一些概念看起来与你从 Python、Java、C++ 等编程语言学到的东西大不相同,但它们都是基于同一个基础,那就是你一直与之交互(无论你是否知道)的 CPU 和 NUMA<ruby>非统一内存访问<rt>Non Uniform Memory Access</rt></ruby>)架构,因此 Rust 中的一些新功能让人感觉有些熟悉。
现在我的职业不是程序员。我没耐心但我又有点儿强迫症。当我需要完成某件事时如果一门语言不能帮助我相对较快地获得想要的结果那么我很少会受到鼓舞而使用它。Rust 试图平衡两个矛盾:现代计算机对安全和结构化代码的需求,和现代程序员对编码工作事半功倍的渴望。
### 安装 Rust
[rust-lang.org][3] 网站有丰富的的文档指导如何安装 Rust但通常它就像下载 `sh.rustup.rs` 脚本并运行它一样简单。
```
$ curl --proto '=https' --tlsv1.2 -sSf <https://sh.rustup.rs>
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs
$ less sh.rustup.sh
$ sh ./sh.rustup.rs
```
### 没有类
Rust 没有类,也不使用 `class` 关键字。Rust 确实有 `struct` 数据类型,但它的作用是充当数据集合的一种模板。因此,你可以使用<ruby>结构体<rt>struct</rt></ruby>,而不是创建一个类来表示虚拟对象:
```
struct Penguin {
    genus: String,
    species: String,
    extinct: bool,
    classified: u64,
  genus: String,
  species: String,
  extinct: bool,
  classified: u64,
}
```
你可以像使用类一样使用它。例如,当定义完 `Penguin` 结构,你就可以创建它的实例,并与该实例进行交互:
```
struct Penguin {
    genus: String,
    species: String,
    extinct: bool,
    classified: u64,
  genus: String,
  species: String,
  extinct: bool,
  classified: u64,
}
fn main() {
    let p = Penguin { genus: "Pygoscelis".to_owned(),
         species: "R adeliæ".to_owned(), 
         extinct: false, 
         classified: 1841 };
  let p = Penguin { genus: "Pygoscelis".to_owned(),
   species: "R adeliæ".to_owned(), 
   extinct: false, 
   classified: 1841 };
    println!("Species: {}", p.species);    
    println!("Genus: {}", p.genus);
    println!("Classified in {}", p.classified);
    if p.extinct == true {
        println!("Sadly this penguin has been made extinct.");
    }
    
  println!("Species: {}", p.species);    
  println!("Genus: {}", p.genus);
  println!("Classified in {}", p.classified);
  if p.extinct == true {
    println!("Sadly this penguin has been made extinct.");
  }
}
```
`impl` 数据类型与 `struct` 数据类型结合使用,你可以实现一个包含函数的结构体,并且可以添加继承和其他与类相似的特性。
@ -87,23 +74,16 @@ Rust 中的函数很像其他语言中的函数。每个函数都代表一组严
`fn` 关键字声明函数,后跟函数名称和函数接受的所有参数。
```
fn foo() {
  let n = 8;
  println!("Eight is written as {}", n);
}
```
通过参数,将信息从一个函数传递到另一个函数。例如,我已经创建了一个 `Penguin` 类,并且我有一个 `Penguin` 的实例为 `p`,将目标函数的参数指定为 `Penguin`类型,就可把 `p` 的属性从一个函数传递到另一个函数。
通过参数,将信息从一个函数传递到另一个函数。例如,我已经创建了一个 `Penguin` 类(结构),并且我有一个 `Penguin` 的实例为 `p`,将目标函数的参数指定为 `Penguin` 类型,就可把 `p` 的属性从一个函数传递到另一个函数。
```
fn main() {
  let p = Penguin { genus: "Pygoscelis".to_owned(), 
    species: "R adeliæ".to_owned(), 
@ -116,169 +96,134 @@ fn printer(p: Penguin) {
  println!("Genus: {}", p.genus);
  println!("Classified in {}", p.classified);
  if p.extinct == true {
      println!("Sadly this penguin has been made extinct.");
    println!("Sadly this penguin has been made extinct.");
  }
}
```
### 变量
Rust 默认创建的为<ruby>不可变<rt>immutable</rt></ruby>变量。这意味着你创建的变量以后无法更改。这段代码虽然看起来没问题,但无法编译:
```
fn main() {
 let n = 6;
 let n = 5;
 }
 let n = 6;
  let n = 5;
}
```
但你可以使用关键字 `mut` 声明一个<ruby>可变<rt>mutable</rt></ruby>变量,因此下面这段代码可以编译成功:
```
fn main() {
 let mut n = 6;
 println!("Value is {}", n);
 n = 5;
 println!("Value is {}", n);
  let mut n = 6;
  println!("Value is {}", n);
  n = 5;
  println!("Value is {}", n);
}
```
### 编译
Rust 编译器,至少就其报错信息而言,是可用的最好的编译器之一。当你在 Rust 中出错时,编译器会真诚地告诉你做错了什么。实际上,仅通过从编译器错误消息中学习,我就了解了 Rust 的许多细微差别(就我理解到的 Rust 的任何细微差别而言)。即便有时错误消息太过于模糊,而不知所以然,互联网搜索几乎总能得到解释。
启动 Rust 程序的最简单方法是使用 `cargo`,即 Rust 包管理和构建系统。
启动 Rust 程序的最简单方法是使用 `cargo`,它是 Rust 的包管理和构建系统。
```
$ mkdir myproject
$ cd myproject
$ cargo init 
```
以上命令为项目创建了基本的基础架构,最值得注意的是 `src` 子目录中的 `main.rs` 文件。打开此文件,把我为本文生成的示例代码粘贴进去:
```
struct Penguin {
    genus: String,
    species: String,
    extinct: bool,
    classified: u64,
  genus: String,
  species: String,
  extinct: bool,
  classified: u64,
}
fn main() {
    let p = Penguin { genus: "Pygoscelis".to_owned(), species: "R adeliæ".to_owned(), extinct: false, classified: 1841 };
    printer(p);
    foo();
  let p = Penguin { genus: "Pygoscelis".to_owned(), species: "R adeliæ".to_owned(), extinct: false, classified: 1841 };
  printer(p);
  foo();
}
fn printer(p: Penguin) {
    println!("Species: {}", p.species);    
    println!("Genus: {}", p.genus);
    println!("Classified in {}", p.classified);
    if p.extinct == true {
        println!("Sadly this penguin has been made extinct.");
    }
  println!("Species: {}", p.species);    
  println!("Genus: {}", p.genus);
  println!("Classified in {}", p.classified);
  if p.extinct == true {
    println!("Sadly this penguin has been made extinct.");
  }
}
fn foo() {
     let mut n = 6;
 println!("Value is {}", n);
 n = 8;
  let mut n = 6;
  println!("Value is {}", n);
  n = 8;
  println!("Eight is written as {}", n);
}
```
使用 `cargo build` 命令进行编译:
```
$ cargo build
```
执行 `target` 子目录下的二进制程序,或者直接运行 `cargo run` 命令来运行你的项目:
```
$ cargo run
Species: R adeliæ
Genus: Pygoscelis
Classified in 1841
Value is 6
Eight is written as 8
```
### Crates
任何语言的大部分便利都来自于它的库或模块。在 Rust 中,进行分发和跟踪的库称为 `crate`。 [crates.io][4] 是一个很好的社区 `crate` 注册网站。
把一个 `crate` 添加到你的 Rust 项目,首先要在 `Cargo.toml` 文件中添加这个 `crate`。 例如,要安装随机数函数,我使用名为 `rand``crate`,使用 `*` 作为通配符,以确保在编译时获得最新版本:
任何语言的大部分便利都来自于它的库或模块。在 Rust 中,进行分发和跟踪的库称为 “crate”箱子。[crates.io][4] 是一个很好的社区 crate 注册网站。
把一个 crate 添加到你的 Rust 项目,首先要在 `Cargo.toml` 文件中添加这个 crate。例如要安装随机数函数我使用名为 `rand` 的 crate使用 `*` 作为通配符,以确保在编译时获得最新版本:
```
[package]
name = "myproject"
version = "0.1.0"
authors = ["Seth &lt;[seth@opensource.com][5]&gt;"]
authors = ["Seth <seth@opensource.com>"]
edition = "2022"
[dependencies]
rand = "*"
```
在 Rust 代码中使用它需要在最顶行使用 `use` 语句:
```
use rand::Rng;
```
以下是一些创建随机种子和随机范围的示例代码:
```
fn foo() {
    let mut rng = rand::thread_rng();
    let mut n = rng.gen_range(1..99);
  let mut rng = rand::thread_rng();
  let mut n = rng.gen_range(1..99);
    println!("Value is {}", n);
    n = rng.gen_range(1..99);
    println!("Value is {}", n);
  println!("Value is {}", n);
  n = rng.gen_range(1..99);
  println!("Value is {}", n);
}
```
你可以使用 `cargo run` 来运行它,它会检测代码是否被更改并触发一个新的构建。构建过程中下载名为 `rand``crete` 和它依赖的所有 `crate`,编译代码,然后运行它:
```
$ cargo run
Updating crates.io index
Downloaded ppv-lite86 v0.2.16
@ -299,14 +244,15 @@ Genus: Pygoscelis
Classified in 1841
Value is 70
Value is 35
```
### Rust 速查表
Rust 是一门令人非常愉快的语言。它拥有在线注册网站的集成、有用的编译器和几乎直观的语法,给人的感觉非常现代
Rust 是一门令人非常愉快的语言。集成了在线注册网站、有用的编译器和几乎直观的语法,它给人的适当的现代感
但请不要误会Rust 仍是一门复杂的语言它具有严格的数据类型、强作用域变量和许多内置方法。Rust 值得一看,如果你要探索它,那么你应该下载我们的免费 **[Rust 速查表][6]**,以便快速了解基础知识。越早开始,就越早了解 Rust。当然你应该经常练习以避免生疏。
但请不要误会Rust 仍是一门复杂的语言它具有严格的数据类型、强作用域变量和许多内置方法。Rust 值得一看,如果你要探索它,那么你应该下载我们的免费 [Rust 速查表][6],以便快速了解基础知识。越早开始,就越早了解 Rust。当然你应该经常练习以避免生疏。
> **[Rust 速查表][6]**
--------------------------------------------------------------------------------
@ -315,7 +261,7 @@ via: https://opensource.com/article/22/1/rust-cheat-sheet
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[hanszhao80](https://github.com/hanszhao80)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,46 +3,39 @@
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: translator: "hwlife"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14561-1.html"
怎样从Pop OS 21.10 更新到 Pop OS 22.02 lts [按步骤]
分步指南:从 Pop OS 21.10 更新到 Pop OS 22.04 LTS
======
我们给了你简单的步骤从 POP OS 21.10 升级到 POP OS 22.04 LTS 。
System76 依照 [Ubuntu 22.04 LTS][2] [发布][1] 了 Pop OS 22.04 LTS 它带来了一些令人兴奋的功能。Pop OS 22.04 LTS 是来自 System76 发布的长期支持版本,它带来了自动计划更新,自定义的 GNOME 42,潜在的性能改进和 [许多其它的功能][3]。
你一定会很兴奋来体验 Pop OS 22.04 并计划更新它。这里我给出你升级 Pop OS 22.04 LTS 的步骤。
![](https://img.linux.net.cn/data/attachment/album/202205/08/094819p7c49e1fc9b4vc15.jpg)
: 你不能直接从 Pop OS 20.04 升级到 Pop OS 22.04 。首先,你需要先升级到 Pop OS 21.10 然后此处概述的步骤升级到这个版本。
> 从 Pop OS 21.10 升级到 Pop OS 22.04 LTS 的简单步骤。
System76 跟着 [Ubuntu 22.04 LTS][2] [发布][1] 了 Pop OS 22.04 LTS 它带来了一些令人兴奋的功能。Pop OS 22.04 LTS 是来自 System76 发布的长期支持版本,它带来了自动计划更新、自定义的 GNOME 42、底层性能改进和 [许多其它的功能][3]。
你肯定很想体验一下,计划更新到 Pop OS 22.04 。这里我给出你升级 Pop OS 22.04 LTS 的步骤。
注意: 你不能直接从 Pop OS 20.04 升级到 Pop OS 22.04 。首先,你需要先升级到 Pop OS 21.10,然后按照此处概述的步骤升级到这个版本。
### 从 Pop OS 21.10 升级到 Pop OS 22.04
#### 升级之前的准备
Pop OS 升级过程相对来说较为稳定。 因为根据我们 [关于升级问题的最近文章][4] 显示,许多用户面临升级方面的问题。但是如果你运行带有 NVIDIA 硬件的 Pop OS ,我建议你做个备份。
* 确保你的系统是最新的。你可以使用 Pop 商店应用检查更新。或者,你可以打开终端提示符并运行以下命令升级。
```
Pop OS 升级过程是相对稳定的。因为根据我们 [上一篇关于升级的文章][4],许多用户面临升级方面的问题。但是如果你正在使用英伟达硬件运行 Pop OS ,我建议你做个备份。
* 确保你的系统是最新的。你可以使用 Pop 商店应用检查更新。或者,你可以打开终端提示符并运行以下命令更新:
```
sudo apt update && sudo apt upgrade
```
```
* 按照以上步骤升级完成之后,重启系统。
* 备份你的文档,照片,视频和其它文件到独立的磁盘分区或者 USB 驱动器。
* 升级之前,禁用所有 GNOME 扩展。许多扩展会阻挡迁移到 GNOME 42 的过程,如果你升级之前禁用所有扩展,之后再启用它们是最好的
* 备份你的文档、照片、视频和其它文件到独立的磁盘分区或者 USB 驱动器。
* 升级之前,禁用所有 GNOME 扩展。许多扩展会阻挡迁移到 GNOME 42 的过程,最好在你升级之前禁用所有扩展,之后再启用它们。
* 记下所有额外的软件源或你已经添加的 PPA 仓库,因为它们可能与 “jammy” 分支不兼容。升级之后你可能需要验证它们。
* 关闭所有运行的程序
* 最后,确保你有时间和稳定的网络连接来完成升级。
[][5]
另见: 怎样从Pop OS 20.10 更新到 Pop OS 21.04 lts [按步骤]
* 关闭所有运行的程序。
* 最后,确保你有时间和稳定的网络连接来完成升级。
### Pop OS 22.04 LTS 的升级步骤
@ -50,79 +43,38 @@ Pop OS 升级过程相对来说较为稳定。 因为根据我们 [关于升级
如果你正在运行的是 Pop OS 21.10 ,你应该看到如下提示是否你的系统需要升级。
![Pop OS 22.04 升级提示][6]
或者, 你可以打开设置然后访问系统升级和恢复标签。这里你应该看到系统更新信息是可用的
或者,你可以打开 “<ruby>设置<rt>Settings</rt></ruby>” 然后访问 “<ruby>系统升级和恢复<rt>OS Upgrade and Recovery</rt></ruby>” 标签。这里你应该看到有系统更新信息
![Pop OS 22.04 在设置标签的提示][7]
点击 <ruby>Download<rt>下载</rt></ruby> 开始升级过程。
点击 <ruby>Download<rt>下载</rt></ruby> 开始升级过程。
#### 升级到 Pop OS 22.04 LTS 的终端方法
* 打开终端运行以下命令。
```
* 打开终端运行以下命令:
```
sudo apt update
```
```
sudo apt full-upgrade
```
* 这能确保在升级过程开始前系统保持最新。如果你已经完成了这个作为以上描述的预升级的步骤,那么你可以忽略它。
```
* 这能确保在升级过程开始前系统保持最新。如果你已经在上述升级前步骤中完成了这个步骤,那么你可以忽略它。
* 使用以下命令更新恢复分区并等待它完成。这只适用于 UEFI 安装模式。
```
```
pop-upgrade recovery upgrade from-release
```
```
* 现在使用以下命令开始升级过程:
```
```
pop-upgrade release upgrade
```
![开始升级过程][8]
* 首先,升级过程将会下载软件包。按照我们的测试,大约 1600 多个软件包需要下载。因此,你应该等到它结束。
* 其次,一旦下载完成,更新管理器将会提示你重启。
![准备升级][9]
```
![开始升级过程][8]
* 首先,升级过程将会下载软件包。按照我们的测试,需要下载大约 1600 多个软件包。因此,你应该等到它结束。
* 其次,一旦下载完成,更新管理器将会提示你重启。
![准备升级][9]
* 重启之后Pop OS 将开始安装最新的软件包到你的系统中。
* 最后,这个下载过程要花将近一个小时,所以等待它完成。我不建议中途停止更新,这将会导致系统不稳定。
![Pop OS 22.04 LTS 桌面][10]
* 升级完成之后,享受全新的 Pop OS 22.04 LTS 。
* * *
我们带来了最新的技术,软件和重要新闻。通过 [Telegram][11], [Twitter][12], [YouTube][13] 和 [Facebook][14] 与我们保持联系,不要错过更新哟!
* 最后,这个下载过程要花将近一个小时,所以等待它完成。我不建议中途停止更新,这将会导致系统不稳定。
![Pop OS 22.04 LTS 桌面][10]
* 升级完成之后,享受全新的 Pop OS 22.04 LTS 吧。
--------------------------------------------------------------------------------
@ -131,7 +83,7 @@ via: https://www.debugpoint.com/2022/04/upgrade-pop-os-22-04-from-21-10/
作者:[Arindam][a]
选题:[lujun9972][b]
译者:[hwlife](https://github.com/hwlife)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,22 +3,22 @@
[#]: author: "Shebuel Inyang https://opensource.com/users/shebuel"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14562-1.html"
我如何通过开源来发展我的产品经理职业
======
毫不夸张地说,在开源方面获得的经验,帮助我在产品管理领域创造了一条成功的职业道路。
![如何做好发布说明][1]
图源Opensource.com
![](https://img.linux.net.cn/data/attachment/album/202205/08/112446zy420r4zutdlu0ol.jpg)
> 毫不夸张地说,在开源方面获得的经验,帮助我在产品管理领域创造了一条成功的职业道路。
我是一个充满好奇心的人我喜欢探索科技行业的许多领域从视觉设计、编程到产品管理。我也被开放源码的理念所吸引。因此我很高兴与大家分享我作为一个产品经理PM是如何利用开源来建立我的职业生涯的。我相信我的经验可以帮助其他对产品管理感兴趣的人。
### 什么是开源软件
简单地说,开源软件是开放源代码的软件,这意味着任何人都可以检查、修改、增强和分享它的源代码。[Opensource.com][2] 上发表过一篇详细、[全面的文章][3] 来帮助你了解什么是开源。
简单地说,开源软件是开放源代码的软件,这意味着任何人都可以检查、修改、增强和分享它的源代码。我们发表过一篇详细、[全面的文章][3] 来帮助你了解什么是开源。
我最早知道开源是很久以前了,那时,我还是一名刚入行不久的视觉设计师。我很想知道开源是什么,也很想知道如何成为它的一部分。在这种好奇心的驱使下,我接触到了一些有经验的开源贡献者和倡导者。虽然我当时没有做出贡献,但是他们让我知道了什么是社区,这对我下定决心开始贡献有很大帮助。
@ -58,7 +58,7 @@
* 他们是如何被告知这个解决方案的?
* 该解决方案如何与当前和更广泛的生态系统相适应?
* 项目的文件是在哪里维护的?
* 项目维护者是否了解<ruby>无障碍<rt>accessibility</rt></ruby>>要求?它们是否被满足?
* 项目维护者是否了解<ruby>无障碍<rt>accessibility</rt></ruby>要求?它们是否被满足?
既然你已经获得了产品经理的所需技能,为何不应用它们呢?结合所学,表达出你深思熟虑的问题,并邀请你的团队来评估吧!你的团队可以选择那些能引起开发者和社区共鸣的问题,并优先考虑其中最重要的。
@ -70,7 +70,7 @@
OpenUnited 是一个开源平台,为各类贡献者(包括产品经理、开发人员、设计师、商业分析师和其他人)提供服务。它致力于帮助贡献者提高技能,并为他们提供长期的高质量付费工作来源。
Miro 公司的高级产品经理 Farbod Saraf 让我加入他与合作伙伴创建的一个平台。我加入了这个项目,并了解了如何对 OpenUnited 做出贡献。我还了解了其他可以帮助我在产品管理生涯中成长的项目,并做出了我的第一次贡献。这是一次很好的经历,因为我可以迅速地开始投入到产品的某些部分,以改善平台上其他用户的体验。在我为项目做贡献的时候,我的导师 Farbod 随时为我提供任何需要的帮助,使我的工作更加轻松。
Miro 公司的高级产品经理 Farbod Saraf 让我加入他与合作伙伴创建的一个平台。我加入了这个项目,并了解了如何对 OpenUnited 做出贡献。我还了解了其他可以帮助我在产品管理生涯中成长的项目,并做出了我的第一次贡献。这是一次很好的经历,因为我可以迅速地开始投入到产品的某些部分,以改善平台上其他用户的体验。在我为项目做贡献的时候,我的导师 Farbod 随时为我提供任何需要的帮助,使我的工作更加轻松。
你对开源项目所做的一切贡献,都会成为你成长为产品经理过程中的有力的公共记录。对于任何想通过开源上手产品管理的人,我都强烈推荐 OpenUnited 平台。
@ -82,13 +82,13 @@ Miro 公司的高级产品经理 Farbod Saraf 让我加入了他与合作伙伴
* 在产品经理社区中发言,如 Mind The Product 和 Product School。
* 参加当地的聚会和开源会议,如非洲开源社区节,以此来与开源项目的创建者和维护者保持联系。
* 与在大型开源公司工作的产品经理接触,如 GitLab 或 Mozilla。他们可能会把你推荐到需要你的技能和贡献的开源项目中。
* 访问开源公司的开源倡导者和开发者关系团队,让他们推荐一些入门级产品经理适合贡献的开源项目。
* 寻找 AngelList 上的开源公司或 Product Hunt 上流行开源产品。这些都是你可以找到适合贡献的开源产品的好地方。
* 与在 GitLab 或 Mozilla 等大型开源公司工作的产品经理接触。他们可能会把你推荐到需要你的技能和贡献的开源项目中。
* 联系开源公司的开源倡导者和开发者关系团队,让他们推荐一些适合入门级产品经理贡献的开源项目。
* 寻找 AngelList 上的开源公司或 Product Hunt 上流行开源产品。这些都是你可以找到适合贡献的开源产品的好地方。
### 下一步
[Ruth Ikegah][7] 是我的一个重要灵感来源,她写了一篇 [关于开源新手的文章][8]。她的文章给出了一些提示,在你开始为开源做贡献时,可能需要考虑一下它们。
[Ruth Ikegah][7] 是我的一个重要灵感来源,她 [为开源新手写了一篇文章][8]。她的文章给出了一些提示,在你开始为开源做贡献时,可能需要考虑一下它们。
在加入和贡献项目、社区或组织之前,对它们做一些研究,并提出自己的问题。当你最终决定加入社区时,试着积极地介绍自己,并说明你可以在哪些方面提供帮助。
@ -101,7 +101,7 @@ via: https://opensource.com/article/22/4/product-management-open-source
作者:[Shebuel Inyang][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/) 荣誉推出
@ -109,7 +109,7 @@ via: https://opensource.com/article/22/4/product-management-open-source
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/rh_003784_02_os.comcareers_resume_rh1x.png
[2]: http://Opensource.com
[3]: https://opensource.com/resources/what-open-source
[3]: https://linux.cn/article-8624-1.html
[4]: https://twitter.com/hellodavidryan
[5]: https://twitter.com/susanavlopes
[6]: https://openunited.com

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

@ -1,45 +0,0 @@
zxcv545 is translating
[#]: 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 Begins To Set The Foundation For Future Open And Parallel Coding
======
![Nvidia_logo_angled_shutterstock][1]
As graphics processors become more common in computers, Nvidia is expanding its collaboration with standards and open source communities to include downstream technologies that were previously limited to the companys development tools. A lot of effort is being put into programming languages like C++ and Fortran, which are thought to lag behind native implementation when it comes to executing code on highly parallel computers.
Nvidias CUDA parallel programming framework, which combines open and proprietary libraries, is responsible for many of the technologies being opened up and mainstreamed. In 2007, CUDA was introduced as a set of programming tools and frameworks for programmers to develop GPU-based systems. However, as GPU utilisation grew in more applications and sectors, the CUDA philosophy shifted.
Nvidia is best recognised for its GPU dominance, but CUDA is at the heart of the companys rebranding as a software and services supplier targeting a $1 trillion market cap. Nvidias long-term ambition is to become a full-stack provider with a focus on specific fields such as autonomous driving, quantum computing, health care, robotics, cybersecurity, and quantum computing.
Nvidia has created dedicated CUDA libraries in certain domains, as well as the hardware and services that businesses can use. The concept of a “AI factory,” announced by CEO Jensen Huang at the recent GPU Technology Conference, best exemplifies the full-stack strategy. Customers can drop applications into Nvidias mega datacenters, with the result being a customised AI model tailored to specific industry or application needs.
Nvidia may profit from AI factory principles in two ways: by utilising GPU capacity or by utilising domain-specific CUDA libraries. On Nvidia GPUs, programmers can use open source parallel programming frameworks such as OpenCL. CUDA, on the other hand, will deliver that extra last-mile increase for those willing to invest because it is tuned to operate closely with Nvidias GPU.
While parallel programming is common in high-performance computing, Nvidias goal is to make it a norm in mainstream computing. The company is assisting in the standardisation of best-in-class tools for writing parallel code that is portable across hardware platforms regardless of brand, accelerator type, or parallel programming framework.
For one thing, Nvidia is a member of a C++ group that is building the groundwork for simultaneous execution of portable code across hardware. A context could be a CPU thread that primarily performs IO or a CPU or GPU thread that does demanding computation. Nvidia is particularly engaged in delivering C++ programmers a standard language and infrastructure for asynchrony and parallelism.
The first work focused on the memory model, which was incorporated in C++ 11, but had to be updated when parallelism and concurrency became more prevalent. C++ 11s memory model emphasised concurrent execution across multicore CPUs, but it lacked parallel programming hooks. The C++ 17 standard laid the foundation for higher-level parallelism features, but real portability will have to wait for future standards. C++ 20 is the current standard, with C++ 23 on the horizon.
--------------------------------------------------------------------------------
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/译者ID)
校对:[校对者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

@ -1,39 +0,0 @@
[#]: subject: "ESI Group Collaborates With ENSAM, Open Sources Its “Inspector” Software"
[#]: via: "https://www.opensourceforu.com/2022/05/esi-group-collaborates-with-ensam-open-sources-its-inspector-software/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "Veryzzj"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
ESI Group Collaborates With ENSAM, Open Sources Its “Inspector” Software
======
![software][1]
Inspector is a visual and interactive data exploration software that can analyse massive amounts of data and extract relevant information for applications such as predictive maintenance, cybersecurity, control, and machine learning algorithm analysis.
ESI Group extends its commitment to the industrial and academic ecosystems by making Inspector software available to as many individuals as possible, allowing them to collaborate on a dependable and flexible solution to address the technological problems and special needs of the community.
Inspectors growth and extension will be led by ENSAM (Ecole Nationale Supérieure dArts et Métiers), as part of an ongoing sponsorship and co-creation partnership between ESI Group and ENSAM. Their joint participation in the DesCartes initiative, coordinated by the CNRS in Singapore, the CREATE-ID international research chair, and the ESI ENSAM virtual engineering laboratory has strengthened their relationship.
There are numerous advantages to using an open source strategy. First, it lets the community to use the programme in the most efficient and effective manner possible, allowing the scientific community to benefit from new functionality tailored to each users needs, as well as security enhancements. Second, ESI Group hopes to provide an opportunity to profit from software whose dependability has been demonstrated over time by its clients in a variety of industries, including automotive and aeronautics. Thanks to the involvement of many stakeholders, “Inspector” will continue to evolve and adapt to the demands of the community.
ESI Groups intention to release its data analysis software as open source has received interest and support from a number of industry leaders and “Inspector” users. This is the case with CNS, for example.
Stephane Perrin, Managing Director of CNS says: “The decision taken by ESI Group is a great illustration of the Groups dedication to the innovation and scientific ecosystem with its cutting-edge technologies. At CNS, a Network and Security expertise company, we are mobilized to ensure the future of Inspector. In addition to integrating Inspector into our continuous network auditing software suite, we will also soon offer support for the software via our business unit dedicated to innovative solutions.”
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/esi-group-collaborates-with-ensam-open-sources-its-inspector-software/
作者:[Laveesh Kocher][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.opensourceforu.com/author/laveesh-kocher/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/software-696x371.jpg

View File

@ -1,40 +0,0 @@
[#]: subject: "Open Source Developer Creates First-of-its-Kind Fund To Support Maintainers"
[#]: via: "https://www.opensourceforu.com/2022/05/open-source-developer-creates-first-of-its-kind-fund-to-support-maintainers/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Open Source Developer Creates First-of-its-Kind Fund To Support Maintainers
======
![opensourceBETTERimage][1]
Appwrite, an open source Backend-as-a-Service (BaaS) platform for web, mobile, and flutter developers, today announced the Open Source Software Fund (OSS Fund), which will award $50,000 in its first year to open source maintainers whose projects lay the groundwork for todays digital infrastructure but arent being compensated for it.
Appwrites yearly OSS Fund will help meet the industrys need to assist open source maintainers, promote technology innovation, and create awareness for a variety of open source development solutions. Each year, the fund amount will be reviewed to ensure that it continues to meet the communitys needs. The application period is currently open, and applications will be accepted on an annual basis. The Appwrite Developer Relations team will choose the recipients: [https://appwrite.io/oss-fund][2]
“I know what its like to spend long hours in front of your computer, putting your blood, sweat and tears into something you love and that is also benefiting thousands or even millions of people around the world,” said Eldad Fux, founder & CEO of Appwrite. “Ive known all along that we would use some of Appwrites success and investment to support other developers and maintainers just like me, to give back in order to look forward. We hope our contribution can make a difference.”
One of the most pressing challenges in todays technological environment is the long-term viability of open source developers and maintainers. Despite the fact that open source software accounts for 70-90 percent of all software and is the foundation of our digital civilization, many developers and maintainers working on the most vital projects integrated across networks and products go unpaid or underpaid. How to help these people has become a contentious issue, with a range of solutions being presented. Appwrite is taking action on behalf of maintainers, elevating their work and providing financial support in exchange for their contributions to the industry and digital society.
Eldad Fux, the founder of Appwrite, began his career as a developer by contributing to open source software projects and participating in open source communities. Appwrite began as a side project, and he built it from the ground up as a BaaS product. Fux currently supports the open source philosophy by focusing on a completely open source platform and giving back to the community in a variety of ways, including the Appwrite OSS Fund.
“Open source powers most of the Worlds modern day infrastructure, from mobile to web, cars and even missions beyond this planet. This is only sustainable by the generosity of the community, their time and efforts. However, this could be improved by the support of more companies and organizations, to prevent community members burnout,” said Eddie Jaoude, Developer and Creator of EddieHub.
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/open-source-developer-creates-first-of-its-kind-fund-to-support-maintainers/
作者:[Laveesh Kocher][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.opensourceforu.com/author/laveesh-kocher/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/opensourceBETTERimage-696x392.jpg
[2]: https://appwrite.io/oss-fund

View File

@ -1,95 +0,0 @@
[#]: subject: "Tails 5.0 Release is Based on Debian 11 With a New “Kleopatra” Tool"
[#]: via: "https://news.itsfoss.com/tails-5-0-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Tails 5.0 Release is Based on Debian 11 With a New “Kleopatra” Tool
======
Tails is a popular Linux distribution that focuses on protecting against censorship and surveillance. It is one of the [privacy-focused Linux distributions][1].
Without worrying about exposing your information, you can use it anywhere using a USB stick and get your work done.
Its latest release, Tails 5.0, utilizes Debian 11 (Bullseye) as its base. So, you should expect all the [improvements in Debian 11][2] in Tails 5.0.
### Tails 5.0: Whats New?
Here, we shall look at the new features and software upgrades introduced with the release.
Some highlights include:
#### Adding Kleopatra
![][3]
Kleopatra is a graphical interface to [GnuPG][4] to help encrypt text and files. With Tails 5.0, Kleopatra replaces _OpenPGP_ Applet and the _Seahorse_ utility.
Kleopatra does it all in a single package. In addition to that, Kleopatra is more actively maintained comparatively with minimal issues.
#### Additional Software Enabled by Default
When using the persistent storage, the additional software feature is enabled by default.
So, you can quickly configure what you want in no time.
#### Improvements to the Activities Overview
![][5]
With Tails 5.0, you can use the Activities overview to access your windows and applications. You can simply click on the Activities button in the top-left corner of the screen or press the Super key on your keyboard.
It is also possible to search applications, files, and folders from the same screen.
#### Updated Software
With Debian 11 as its base, all the essential software has been upgraded, including:
* Tor Browser to 11.0.11
* GNOME 3.38
* MAT to 0.12
* Audacity 2.4.2
* Disk Utility 3.38
* GIMP 2.10.12
* LibreOffice 7.0
#### Other Improvements
Along with all the software upgrades, hardware support for driverless printing and scanning has also been updated to support newer printers/scanners.
In addition to all this, you also get numerous fixes. You can explore more about it in its [official release announcement][6].
### Download Tails 5.0
You can download the latest Tails 5.0 ISO from the official website.
[Tails 5.0][7]
And, if you already use Tails, you cannot perform an automatic upgrade. You need to do a manual upgrade instead, following the [official instructions][8].
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/tails-5-0-release/
作者:[Ankush Das][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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/privacy-focused-linux-distributions/
[2]: https://news.itsfoss.com/debian-11-feature/
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQxMSIgd2lkdGg9IjUzNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[4]: https://www.gnupg.org/
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgd2lkdGg9IjY4MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[6]: https://tails.boum.org/news/version_5.0/index.en.html
[7]: https://tails.boum.org/install/index.en.html
[8]: https://tails.boum.org/doc/upgrade/index.en.html#manual

View File

@ -1,116 +0,0 @@
[#]: subject: "Ubuntu MATEs Lead Creates a Nifty Tool to Help Install 3rd Party Deb Packages"
[#]: via: "https://news.itsfoss.com/deb-get-ubuntu/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu MATEs Lead Creates a Nifty Tool to Help Install 3rd Party Deb Packages
======
An interesting tool to replace apt-get for 3rd party .deb packages on Ubuntu. It should help you save time!
![deb get][1]
Ubuntu MATEs lead,**Martin Wimpress,** has another fun project for Linux users.
In case you did not know, Martin regularly develops something interesting. Last year, we covered [Quickemu][2], which helps create virtual machines in Linux through a QEMU-based GUI tool making the process easy.
Now, he is back with an interesting “**deb-get**” tool that aims to imitate the functionality of “**apt-get**” for 3rd party .deb packages.
Let us take a closer look at it.
### Deb Get: Seamlessly Install 3rd Party Deb Packages Using the CLI
When it comes to software packages that arent available in the official repositories (like Google Chrome, Vivaldi), you will have to [add a PPA (unofficial/official)][3] or download the .deb file and [get it installed][4] manually.
What if you can simply install it using the terminal as if it is available in the official repositories?
Thats where the deb-get tool comes in.
Usually, when installing a package through the terminal, you utilize either of the following commands:
```
sudo apt install packagename
```
or
```
sudo apt-get install packagename
```
You get to keep the same format and simply replace apt-get with this tool, which should look like this:
```
sudo deb-get install packagename
```
As an example, usually, we needed to add the PPA or download the deb file when [installing Vivaldi on Linux][5].
Now, if you set up the deb-get tool on your system**(setup instructions at the end of this article**), you can easily install Vivaldi using the following command:
```
sudo deb-get install vivaldi-stable
```
![][6]
And, just like the apt-get upgrade process, you can upgrade packages using the following command:
```
sudo deb-get upgrade
```
**Note:** While it makes it easy to install third-party .deb packages, you will be limited to a verified list supported by the tool. You can expect the list of supported packages to expand soon, but it already supports many [essential applications.][7]
You can also check the list of available packages that you can install with deb-get using the following command:
```
sudo deb-get list
```
![deb-get][8]
### Setting Up Deb-Get on Ubuntu-based Distributions
The deb-get tool works with Ubuntu 22.04 LTS (I tested it) and should work with other Ubuntu-based distributions.
You can install it on your system using the command below:
```
sudo apt install curl && curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get
```
Or, you can download the deb package for it manually from its [GitHub releases section][9].
To explore more about it, and the available commands/functionalities, you can head to its [GitHub page][10].
*What do you think of deb-get attempting to mimic apt-get functionality for third-party packages? Do you think it is useful? Let me know your thoughts in the comments.*
**Via: OMG!Ubuntu!**
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/deb-get-ubuntu/
作者:[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/deb-get.jpg
[2]: https://itsfoss.com/quickgui/
[3]: https://itsfoss.com/ppa-guide/
[4]: https://itsfoss.com/install-deb-files-ubuntu/
[5]: https://itsfoss.com/install-vivaldi-ubuntu-linux/
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get-vivaldi.jpg
[7]: https://itsfoss.com/essential-linux-applications/
[8]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get-list.jpg
[9]: https://github.com/wimpysworld/deb-get/releases
[10]: https://github.com/wimpysworld/deb-get

View File

@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/2/transparency-open-source-communities"
[#]: author: "Emilio Galeano Gryciuk https://opensource.com/users/egaleano"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: translator: "aREversez"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@ -99,7 +99,7 @@ via: https://opensource.com/article/22/2/transparency-open-source-communities
作者:[Emilio Galeano Gryciuk][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
译者:[aREversez](https://github.com/aREversez)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,84 @@
[#]: subject: "How open source leads the way for sustainable technology"
[#]: via: "https://opensource.com/article/22/5/open-source-sustainable-technology"
[#]: author: "Hannah Smith https://opensource.com/users/hanopcan"
[#]: collector: "lkxed"
[#]: translator: "PeterPan0106"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How open source leads the way for sustainable technology
======
There are huge parallels between the open source way and what our wider society needs to do to achieve a more sustainable future.
![][1]
(Image by: opensource.com)
There's a palpable change in the air regarding sustainability and environmental issues. Concern for the condition of the planet and efforts to do something about it have gone mainstream. To take one example, look at climate-based venture capitalism. The Climate Tech Venture Capital (CTVC) Climate Capital List has [more than doubled][2] in the past two years. The amount of capital pouring in demonstrates a desire and a willingness to solve hard climate challenges.
It's great that people want to take action, and I'm here for it! But I also see a real risk: As people rush to take action or jump on the bandwagon, they may unwittingly participate in greenwashing.
The Wikipedia definition of greenwashing calls it "a form of marketing spin in which green PR and green marketing are deceptively used to persuade the public that an organization's products, aims, and policies are environmentally friendly." In my view, greenwashing happens both intentionally and accidentally. There are a lot of good people out there who want to make a difference but don't yet know much about complex environmental systems or the depth of issues around sustainability.
It's easy to fall into the trap of thinking a simple purchase like offsetting travel or datacenter emissions by planting trees will make something greener. While these efforts are welcome, and planting trees is a viable solution to improving sustainability, they are only a good first step—a scratch on the surface of what needs to happen to make a real difference.
So what can a person, or a community, do to make digital technology genuinely more sustainable?
Sustainability has different meanings to different people. The shortest definition that I like is from the 1987 Bruntland Report, which summarizes it as "meeting the needs of the present without compromising the ability of future generations to meet their needs." Sustainability at its core is prioritizing long-term thinking.
### Sustainability is more than environmental preservation
There are three key interconnected pillars in the definition of sustainability:
1. Environmental
2. Economic / governance
3. Social
Conversations about sustainability are increasingly dominated by the climate crisis—for good reason. The need to reduce the amount of carbon emissions emitted by the richer countries in the world becomes increasingly urgent as we continue to pass irreversible ecological tipping points. But true sustainability is a much more comprehensive set of considerations, as demonstrated by the three pillars.
Carbon emissions are most certainly a part of sustainability. Many people consider emissions only an environmental issue: Just take more carbon out of the air, and everything will be ok. But social issues are just as much a part of sustainability. Who is affected by these carbon emissions? Who stands to bear the greatest impact from changes to our climate? Who has lost their land due to rising sea levels or a reliable water source due to changing weather patterns? That's why you might have heard the phrase "climate justice is social justice."
Thinking only about decarbonization as sustainability can give you carbon tunnel vision. I often think that climate change is a symptom of society getting sustainability wrong on a wider scale. Instead, it is critical to address the root causes that brought about climate change in the first place. Tackling these will make it possible to fix the problems in the long term, while a short-term fix may only push the issue onto another vulnerable community.
The root causes are complex. But if I follow them back to their source, I see that the root causes are driven by dominant Western values and the systems designed to perpetuate those values. And what are those values? For the most part, they are short-term growth and the extraction of profit above all else.
That is why conversations about sustainability that don't include social issues or how economies are designed won't reach true solutions. After all, societies, and the people in positions of power, determine what their own values are—or aren't.
### What can you or I do?
Many in the tech sector are currently grappling with these issues and want to know how to take meaningful action. One common approach is looking at how to optimize the tech they build so that it uses electricity more effectively. Sixty percent of the world's electricity is still generated by burning fossil fuels, despite the increasing capacity for renewable energy generation. Logically, using less electricity means generating fewer carbon emissions.
And yes, that is a meaningful action that anyone can take right now, today. Optimizing the assets sent when someone loads a page to send less data will use less energy. So will optimizing servers to run at different times of the day, for example when there are more renewables online, or deleting old stores of redundant information, such as analytics data or logs.
But consider Jevon's paradox: Making something more efficient often leads to using more of it, not less. When it is easier and more accessible for people to use something, they end up consuming more. In some ways, that is good. Better performing tech is a good thing that helps increase inclusion and accessibility, and that's good for society. But long-term solutions for climate change and sustainability require deeper, more uncomfortable conversations around the relationship between society and technology. What and who is all this technology serving? What behaviors and practices is it accelerating?
It's common to view advancing technology as progress, and some people repeat the mantra that technology will save the world from climate change. A few bright folks will do the hard work, so no one else has to change their ways. The problem is that many communities and ecosystems are already suffering.
For example, the accelerating quest for more data is causing some communities in Chile to have insufficient water to grow their crops. Instead, datacenters are using it. Seventy percent of the pollution caused by mobile phones comes from their manufacture. The raw resources such as lithium and cobalt to make and power mobile devices are usually extracted from a community that has little power to stop the destruction of their land and that certainly does not partake in the profit made. Still, the practice of upgrading your phone every two years has become commonplace.
### Open source leading the way for sustainability
It's time to view the use of digital technology as a precious resource with consequences to both the planet and (often already disadvantaged) communities.
The open source community is already a leading light in helping people to realize there is another way: the open source way. There are huge parallels between the open source way and what our wider society needs to do to achieve a more sustainable future. Being more open and inclusive is a key part of that.
We also need a mindset shift at all levels of society that views digital technology as having growth limits and not as the abundantly cheap and free thing we see today. We need to wisely prioritize its application in society to the things that matter. And above all else, we need to visualize and eradicate the harms from its creation and continued use and share the wealth that is does create equitably with everyone in society, whether they are users of digital tech or not. These things arent going to happen overnight, but they are things we can come together to push towards so that we all enjoy the benefits of digital technology for the long-term, sustainably.
This article is based on a longer presentation. To see the talk in full or view the slides, see the post ["How can we make digital technology more sustainable."][3]
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/open-source-sustainable-technology
作者:[Hannah Smith][a]
选题:[lkxed][b]
译者:[PeterPan0106](https://github.com/PeterPan0106)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/hanopcan
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/pictures/green-780x400.jpg
[2]: https://climatetechvc.substack.com/p/-a-running-list-of-climate-tech-vcs?s=w
[3]: https://opcan.co.uk/talk/wordfest-live-2022

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (FYJNEVERFOLLOWS )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,219 +0,0 @@
[#]: subject: "3 steps to start running containers today"
[#]: via: "https://opensource.com/article/22/2/start-running-containers"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
3 steps to start running containers today
======
In this tutorial, you will learn how to run two containers in a pod to
host a WordPress site.
![Shipping containers stacked][1]
Whether you're interested in them as part of your job, for future job opportunities, or just out of interest in new technology, containers can seem pretty overwhelming to even an experienced systems administrator. So how do you actually get started with containers? And what's the path from containers to [Kubernetes][2]? Also, why is there a path from one to the other at all? As you might expect, the best place to start is the beginning.
### 1\. Understanding containers
On second thought, starting at the beginning arguably dates back to early BSD and their special chroot jails, so skip ahead to the middle instead.
Not so very long ago, the Linux kernel introduced _cgroups_, which enables you to "tag" processes with something called a _namespace_. When you group processes together into a namespace, those processes act as if nothing outside that namespace exists. It's as if you've put those processes into a sort of container. Of course, the container is virtual, and it exists inside your computer. It runs on the same kernel, RAM, and CPU that the rest of your operating system is running on, but you've contained the processes.
Pre-made containers get distributed with just what's necessary to run the application it contains. With a container engine, like [Podman][3], Docker, or CRI-O, you can run a containerized application without installing it in any traditional sense. Container engines are often cross-platform, so even though containers run Linux, you can launch containers on Linux, macOS, or Windows.
More importantly, you can run more than one container of the same application when there's high demand for it.
Now that you know what a container is. The next step is to run one.
**[ Get the cheat sheet: [Whats the difference between a pod, a cluster, and a container?][4] ]**
### 2\. Run a container
Before running a container, you should have a reason for running a container. You can make up a reason, but it's helpful for that reason to interest you, so you're inspired actually to use the container you run. After all, running a container but never using the application it provides only proves that you're not noticing any failures, but using the container demonstrates that it works.
I recommend WordPress as a start. It's a popular web application that's easy to use, so you can test drive the app once you've got the container running. While you can easily set up a WordPress container, there are many configuration options, which can lead you to discover more container options (like running a database container) and how containers communicate.
I use Podman, which is a friendly, convenient, and daemonless container engine. If you don't have Podman available, you can use the Docker command instead. Both are great open source container engines, and their syntax is identical (just type `docker` instead of `podman`). Because Podman doesn't run a daemon, it requires more setup than Docker, but the ability to run rootless daemonless containers is worth it.
If you're going with Docker, you can skip down to the [WordPress subheading][5]. Otherwise, open a terminal to install and configure Podman:
```
`$ sudo dnf install podman`
```
Containers spawn many processes, and normally only the root user has permission to create thousands of process IDs. Add some extra process IDs to your user by creating a file called `/etc/subuid` and defining a suitably high start UID with a suitable large number of permitted PIDs:
```
`seth:200000:165536`
```
Do the same for your group in a file called `/etc/subgid`. In this example, my primary group is `staff` (it may be `users` for you, or the same as your username, depending on how you've configured your system.)
```
`staff:200000:165536`
```
Finally, confirm that your user is also permitted to manage thousands of namespaces:
```
$ sysctl --all --pattern user_namespaces
user.max_user_namespaces = 28633
```
If your user doesn't have permission to manage at least 28,000 namespaces, increase the number by creating the file `/etc/sysctl.d/userns.conf` and enter:
```
`user.max_user_namespaces=28633`
```
#### Running WordPress as a container
Now, whether you're using Podman or Docker, you can pull a WordPress container from a container registry online and run it. You can do all this with a single Podman command:
```
$ podman run --name mypress \
-p 8080:80 -d wordpress
```
Give Podman a few moments to find the container, copy it from the internet, and start it up.
Start a web browser once you get a terminal prompt back and navigate to `localhost:8080`. WordPress is running, waiting for you to set it up.
![WordPress running in a container][6]
(Seth Kenlon, [CC BY-SA 4.0][7])
It doesn't take long to reach your next hurdle, though. WordPress uses a database to keep track of data, so you need to provide it with a database where it can store its information.
Before continuing, stop and remove the WordPress container:
```
$ podman stop mypress
$ podman rm mypress
```
### 3\. Run containers in a pod
Containers are, by design and, as their name suggests, self-contained. An application running in a container isn't supposed to interact with applications or infrastructure outside of its container. So when one container requires another container to function, one solution is to put those two containers inside a bigger container called a _pod_. A pod ensures that its containers can share important namespaces to communicate with one another.
Create a new pod, providing a name for the pod and which ports you want to be able to access:
```
$ podman pod create \
\--name wp_pod \
\--publish 8080:80
```
Confirm that the pod exists:
```
$ podman pod list
POD ID        NAME     STATUS    INFRA ID      # OF CONTAINERS
100e138a29bd  wp_pod   Created   22ace92df3ef   1
```
#### Add a container to a pod
Now that you have a pod for your interdependent containers, you launch each container by specifying a pod for it to run in.
First, launch a database. You can make up your own credentials as long as you use those same credentials when connecting to the database from 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
```
Next, launch the WordPress container into the same pod:
```
$ 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
```
Now launch your favorite web browser and navigate to `localhost:8080`.
This time, the setup goes as expected. WordPress connects to the database because you've passed those environment variables while launching the container.
![WordPress setup][8]
(Seth Kenlon, [CC BY-SA 4.0][7])
After you've created a user account, you can log in to see the WordPress dashboard.
![WordPress dashboard running in a container][9]
(Seth Kenlon, [CC BY-SA 4.0][7])
### Next steps
You've created two containers, and you've run them in a pod. You know enough now to run services in containers on your own server. If you want to move to the cloud, containers are, of course, well-suited for that. With tools like Kubernetes and OpenShift, you can automate the process of launching [containers and pods on a cluster][10]. If you're thinking about taking the next step, read [3 ways to get started with Kubernetes][11] by Kevin Casey, and give the Minikube tutorial he mentions a try.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/2/start-running-containers
作者:[Seth Kenlon][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/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/bus-containers.png?itok=d_4QhZxT (Shipping containers stacked)
[2]: https://opensource.com/tags/kubernetes
[3]: https://www.redhat.com/sysadmin/podman-guides-2020
[4]: https://enterprisersproject.com/cheat-sheet-what-s-difference-between-pod-cluster-and-container
[5]: tmp.1zBHYsK8TH#wp
[6]: https://opensource.com/sites/default/files/uploads/podman-wordpress.jpg (WordPress running in a container)
[7]: https://creativecommons.org/licenses/by-sa/4.0/
[8]: https://opensource.com/sites/default/files/uploads/wordpress-setup.jpg (WordPress setup)
[9]: https://opensource.com/sites/default/files/uploads/wordpress-welcome.jpg (WordPress dashboard running in a container)
[10]: https://enterprisersproject.com/article/2020/9/pod-cluster-container-what-is-difference
[11]: https://enterprisersproject.com/article/2019/11/kubernetes-3-ways-get-started

View File

@ -1,176 +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: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Difference Between Ubuntu 22.04 and Ubuntu 20.04 LTS
======
A LIST OF 10 SIGNIFICANT FEATURE DIFFERENCES BETWEEN UBUNTU 20.04 AND
UBUNTU 22.04 LTS FOR FOLKS TRANSITIONING FROM LTS TO LTS.
If you are a [Ubuntu 20.04 LTS Focal Fossa][1] user and plan to upgrade or install the latest [Ubuntu 22.04 LTS “Jammy Jellyfish”][2], this guide is for you. The primary aspect is there are significant and structural changes between these two LTS versions which is somewhat rare in terms of LTS releases. In one go, a lot changed if you compare both the LTS releases.
So, with that in mind, in this guide, we give you ten pointers that address the fundamental changes from an average user perspective and give you a heads up before you try the new Jammy Jellyfish.
### Ubuntu 22.04 LTS vs Ubuntu 20.04 LTS Feature Difference
#### 1\. Logo, Colors and Plymouth
The first visual change that you notice is the base accent colour of Ubuntu changes to more “Orange” compared to two earlier “brown-orange”. Also, Canonical changed the Ubuntu official logo from this release onwards, and it is visible right from the Plymouth animation while booting. The new logo may look a little strange while you look at it for the first time, but it grows into you, eventually. I feel its a distinct logo in its way.
![New Ubuntu logo and Plymouth][3]
#### 2\. Installation
The default Ubuntu installer did not see any additional changes. We hoped that the new [Flutter based installer][4] would land, but it didnt. With that said, the steps to installation remain the same. The only difference you may notice is the accent colour and cosmetic changes on the dialogue boxes and controls. Functionality wise, there is no change in the installation steps.
![Colour differences between two LTS Versions][5]
#### 3\. Lock and Login Screen, Desktop First look and Wallpaper
Furthermore, the lock and login screen colour gradient changes with more fine and borderless controls for the password box. The apparent difference is the stunning Jammy Jellyfish default wallpaper when you first log in. The desktop “Home” shortcut is renamed as Home than that of your username, and the Trash shortcut now goes to the left dock with a separator in the new Ubuntu 22.04 LTS.
In addition to that, the top bar didnt change much. However, the system tray menu is little organised with more spacing and separators. There are mainly the changes coming from the [GNOME 42][6] changes.
The Calendar menu remained almost the same between both the LTS versions.
![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\. Desktop Layouts and GNOME Version Upgrades
The significant difference that users would see visually is the GNOME version change GNOME 3.36 vs the GNOME 42. This is the significant difference that all users migrating to current LTS would face. The Ubuntu 22.04 LTS with GNOME 42 brings a horizontal workspace view alongside the horizontal application view. So, it would be a little weird to feel first time migrating from vertical to horizontal gestures. But you get used to it within a day or two.
If you use touch-based Laptops or screens, then the GNOME 42 gestures would give you some fluid feel with a bit of learning. Heres how the desktop, applications and workspace view looks side by side.
![Activities View Difference Ubuntu 20.04 and 22.04][10]
![Application View Difference Ubuntu 20.04 and 22.04][11]
#### 5\. New Appearance Style with Accent Color
Moreover, one particular change which I would like to highlight here is new settings for light and dark modes. Earlier Ubuntu had three options for desktop looks light, dark and a mixed one Standard. This is completely changed and replaced by the GNOME 42s built-in light and dark mode. In addition to that, a new Accent colour option is introduced (which is not part of vanilla GNOME 42) that enables you to change the colour across the desktop based on a selection of palettes.
However, you can not choose the custom accent colour yet, like KDE Plasma 🥰. Most of these changes come with the recent libadwaita and GTK4 port of GNOME Shell and native applications.
When you apply the dark mode in Ubuntu 22.04 it applies automatically to all the supported applications. This is one of the fundamental differences with the Ubuntu 20.04 LTS.
![Accent Color and other changes][12]
![How Accent colour change impact looks in Ubuntu 22.04 LTS][13]
#### 6\. File Manager
The Files file manager version changes from 3.36.x to 42 in this release. The difference you see is the more compact design, well-defined spacing between controls and texts, and the top bar widgets style, thanks to GTK4 and underlying bug fixes. The address bar in Files is a little different, with a separator between directories, and the hamburger menu is at the end. Although, these minor changes would not impact much, and you may not feel much difference between the two LTS releases.
![Files Difference Ubuntu 20.04 vs 22.04][14]
#### 7\. Screenshot Workflow difference between Ubuntu 22.04 and 20.04
Another notable change that requires a little learning for migrating users is how screenshots are captured. It changes completely. Earlier, you hit print-screen from the keyboard to take a screenshot and save the image file automatically in your Pictures folder. The workflow is different now with GNOME 42s built-in screenshot and screen-recorder tool.
[][15]
SEE ALSO:   Ubuntu Budgie 22.04 LTS - New Features and Release Details
So, when you try to take a screenshot in Ubuntu 22.04 LTS, you see a screen below which gives you all the options, such as a screenshot of an area, an entire desktop or a specific window. Moreover, you have the option to show the cursor in a screenshot or want to record the screen. And when you hit the capture button, the tool saves the image file in the Pictures folder and in your clipboard.
![New Screenshot tool in Ubuntu 22.04 LTS][16]
Overall, an additional step change for your earlier workflow.
You get a new context menu, “Take a screenshot”, on the top bar right-click menu of all the application windows.
![Take Screenshot option in top bar menu][17]
#### 8\. Firefox Web Browser as Snap in Ubuntu 22.04
In addition to the above changes, the Firefox is now a snap version in Ubuntu 22.04 LTS if you compare it with the prior LTS version. The Firefox 97 in Ubuntu 20.04 was a deb package. So, if you are an average user, you may not see much difference.
However, Firefox Snap runs in a sandbox mode, which means users may face trouble while installing GNOME Extensions and may feel slow performance due to Snap in the same hardware used by Ubuntu 20.04 LTS.
I think it would be interesting to see how this significant snap migration of the most used applications of Ubuntu plays out in the coming days.
#### 9\. Difference in Settings Window between Ubuntu 22.04 and 20.04
Furthermore, a new panel is introduced in Settings, i.e. Multitasking. The Multitasking panel gives you options to tweak the hot corners and active screen edges. In addition to that, you can now specify the fixed number of workspace you want with the option to remove the empty workspace automatically. Other than that, if you use multiple displays, you have now options to show workspaces in the primary display or all displays.
![New Multitasking Panel in Settings][18]
#### 10\. Flavours and Application Updates
In addition to the above differences, the Software application changes bring different responsive looks and adapt to any form factor. The Software also brings a more different home page with the arrangement of applications as per categories and editor choice section.
Furthermore, the details page of any software shows essential information in a distinguishable manner with details such as total download size, ratings, safe marker and image carousels.
![GNOME Software Home page difference][19]
![GNOME Software Details page difference][20]
Finally, the under the hood differences between these two releases are spread across the packages, official desktop environment flavours and bug fixes. Heres a quick summary of important packages.
**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
### Summary
To conclude the difference between Ubuntu 20.04 LTS and Ubuntu 22.04, I am compelled to say; that it is one of the biggest LTS releases from Ubuntu in terms of visual and feature changes.
I hope this guide showing the difference between Ubuntu 20.04 LTS and Ubuntu 22.04 gives you and many users a starting point on what to expect on their journey of Ubuntu 22.04 LTS and beyond.
Cheers.
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][21], [Twitter][22], [YouTube][23], and [Facebook][24] and never miss an update!
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/
作者:[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/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,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

@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/2022/05/xebian-review-2022/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

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

View File

@ -0,0 +1,40 @@
[#]: subject: "Open Source Developer Creates First-of-its-Kind Fund To Support Maintainers"
[#]: via: "https://www.opensourceforu.com/2022/05/open-source-developer-creates-first-of-its-kind-fund-to-support-maintainers/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
开源开发者创建首个支持维护者的基金会
======
![opensourceBETTERimage][1]
Appwrite 是一个为 Web、移动和 flutter 开发者提供的开源“<ruby>后端即服务<rt>Backend-as-a-Service</rt></ruby>BaaS平台。今天它宣布成立开源软件基金OSS 基金会),该基金会将在第一年,向那些为当下数字基础设施奠定基础,却没有得到补偿的开源维护者,提供 5 万美元的资助。
Appwrite 每年的开源基金将用于协助开源开发者、促进技术革新,并为各种开源开发方案创造知名度。每年,它都会对基金数额进行审查,以确保其继续满足社区的需求。目前已经开始接受申请,并且每年都会接受申请。获奖者将由 Appwrite 开发者关系团队选出。了解更多:[https://appwrite.io/oss-fund][2]。
创始人兼 CEO Eldad Fux 说:“我懂这种感受,你在电脑前花费大量时间,把血汗和泪水投入到热爱的事物中,而且这些事物还在使全世界成千上万甚至数百万人受益。我一直就有这个想法:借用 Appwrite 的一些成功经验和投资,来支持其他像我一样的开发者和维护者,以回馈的方式来展望未来。希望我们的贡献能够带来改变。”
在今天的技术环境中,最紧迫的挑战之一就是开源开发者和维护者的长期生存能力。尽管开源软件占比已经达到 70% 到 90%是当下数字文明的基础但许多最重要项目的开发者和维护者仍然没有获得足够报酬或者根本没有报酬。关于如何帮助这些人业界已经有了许多讨论并提出了一系列的解决方案。Appwrite 正在为维护者做一些事,提升他们的工作,并提供经济支持,以换取他们对行业和数字社会的贡献。
Eldad Fux 自身通过为开源软件项目做贡献和参与开源社区开始了他的开发者生涯。Appwrite 最初是一个副业项目,他把它作为一个 BaaS 产品从头打造。目前Fux 通过专注于完全开源的平台和以各种方式回馈社区来支持开源理念,其中就包括了 Appwrite OSS 基金。
EddieHub 的创始人和开发者 Eddie Jaoude 说:“开源为世界上大部分的现代基础设施提供动力,从移动到网络、汽车甚至是地球以外的任务。只有靠社区的慷慨解囊,他们的时间和努力才能持续。如果有更多的公司和组织的支持,这种情况将得到改善,避免社区成员因报酬不足/没有报酬而懈怠。”
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/open-source-developer-creates-first-of-its-kind-fund-to-support-maintainers/
作者:[Laveesh Kocher][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://www.opensourceforu.com/author/laveesh-kocher/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/opensourceBETTERimage-696x392.jpg
[2]: https://appwrite.io/oss-fund

View File

@ -0,0 +1,93 @@
[#]: subject: "Tails 5.0 Release is Based on Debian 11 With a New “Kleopatra” Tool"
[#]: via: "https://news.itsfoss.com/tails-5-0-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Tails 5.0 发布:基于 Debian 11附带新的 “Kleopatra” 工具
======
Tails 是一个流行的 Linux 发行版,它专注于保护人们免受审查和监视,是 [注重隐私的 Linux 发行版][1] 之一。
你可以在任何地方使用它和 U 盘 来完成工作,而不用担心暴露你的信息。
Tails 5.0 是最新的版本,它基于 Debian 11Bullseye构建。因此你可以期待 Tails 5.0 中具备所有 [Debian 11 的改进][2]。
### Tails 5.0:更新内容
让我们来看看该版本所引入了哪些新功能和软件升级吧!
以下是其中的一些亮点。
#### 增加了 Kleopatra 工具
![][3]
Kleopatra 是 [GnuPG][4] 的一个图形界面,它用于加密文本和文件。在 Tails 5.0 中Kleopatra 取代了 _OpenPGP_ 小程序 和 _Seahorse_ 工具。
Kleopatra 只在一个软件包中就完成了这一切。并且相对而言Kleopatra 的维护更加积极,问题最少。
#### 默认启用的附加软件
当使用持久化存储时,附加软件功能是默认启用的。
因此,你可以在短时间内快速配置您想要的东西。
#### 对活动概览的改进
![][5]
在 Tails 5.0 中,你可以使用活动概览来访问你的窗口和应用程序。你只需点击屏幕左上角的<ruby>“活动”<rt>Activities</rt></ruby>按钮或按下键盘上的<ruby>超级<rt>Super</rt></ruby>LCTT 译注:在某些键盘上是 WIN 键)即可。
你还可以在同一屏幕中搜索应用程序、文件和文件夹。
#### 软件升级
Tails 5.0 基于 Debian 11因此所有的基本软件都已升级包括
* Tor Browser to 11.0.11
* GNOME 3.38
* MAT to 0.12
* Audacity 2.4.2
* Disk Utility 3.38
* GIMP 2.10.12
* LibreOffice 7.0
#### 其他改进
除软件升级外,无驱动打印和扫描的硬件支持也得到了更新,以支持新款的打印机/扫描仪。
除此之外,它还有许多修复。你可以在其 [官方发布公告][6] 中查看更多信息。
### 下载 Tails 5.0
你可以在官方网站下载最新的 Tails 5.0 ISO。
[Tails 5.0][7]
注意,如果你已经在使用 Tails请不要执行自动升级。你需要按照 [官方说明][8] 进行手动升级。
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/tails-5-0-release/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者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/lujun9972
[1]: https://itsfoss.com/privacy-focused-linux-distributions/
[2]: https://news.itsfoss.com/debian-11-feature/
[3]: https://news.itsfoss.com/wp-content/uploads/2022/05/kleopatra.png
[4]: https://www.gnupg.org/
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/desktop-tails-5.png
[6]: https://tails.boum.org/news/version_5.0/index.en.html
[7]: https://tails.boum.org/install/index.en.html
[8]: https://tails.boum.org/doc/upgrade/index.en.html#manual

View File

@ -0,0 +1,116 @@
[#]: subject: "Ubuntu MATEs Lead Creates a Nifty Tool to Help Install 3rd Party Deb Packages"
[#]: via: "https://news.itsfoss.com/deb-get-ubuntu/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu MATE 的负责人开发了一个漂亮的工具,专用于安装第三方 deb 包
======
这是一个有趣的工具,它可以替代 apt-get 来安装 Ubuntu 上的第三方 deb 包。它应该能帮为你节省时间!
![deb-get][1]
Ubuntu MATE 的负责人 **Martin Wimpress** 为 Linux 用户带来了另一个有趣的项目。
你可能不知道,这个 Martin 经常开发一些有趣的东西。去年,我们报道了 [Quickemu][2],它通过一个基于 QEMU 的 GUI 工具,帮助用户在 Linux 中创建虚拟机,使这个过程变得简单。
现在,他又带来了一个有趣的 “**deb-get**” 工具,其目标是模仿 “**apt-get**” 对第三方 .deb 包的支持。
让我们来详细了解一下它吧!
### Deb Get使用 CLI 无缝安装第三方 deb 包
当官方软件库中没有你想安装的软件包时(比如 Google Chrome、Vivaldi 等),你必须先 [添加一个 PPA非官方/官方)][3] 或者下载 .deb 文件后 [手动安装][4]。
如果我现在告诉你,你可以直接在终端中安装它们,就好像官方软件库中有它们一样呢?
这就是 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
```shell
sudo deb-get install vivaldi-stable
```
![][6]
另外,类似于 `apt-get upgrade`,你可以使用下面的命令来升级软件包:
```shell
sudo deb-get upgrade
```
**注意:**虽然 deb-get 使安装第三方 .deb 包变得很容易,但它是有限制的,你只能安装它提供的核实列表中的软件。不过,它已经支持许多 [必要的应用程序][7],相信支持的软件包列表很快就会扩大。
你也可以使用下面的命令,检查你 deb-get 可用软件包的列表:
```shell
sudo deb-get list
```
![deb-get][8]
### 在基于 Ubuntu 的发行版上设置 deb-get
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
```
或者,你可以在它的 [GitHub 发布页面][9] 手动下载它的 deb 包。
要了解更多关于它的信息,以及可用的命令/功能,你可以访问它的 [GitHub 页面][10]。
*你怎么看待 deb-get 试图实现支持第三方软件包的 apt-get你认为它有用吗请在评论区留言发表你的看法吧*
**来源OMG!Ubuntu!**
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/deb-get-ubuntu/
作者:[Ankush Das][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://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get.jpg
[2]: https://itsfoss.com/quickgui/
[3]: https://itsfoss.com/ppa-guide/
[4]: https://itsfoss.com/install-deb-files-ubuntu/
[5]: https://itsfoss.com/install-vivaldi-ubuntu-linux/
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get-vivaldi.jpg
[7]: https://itsfoss.com/essential-linux-applications/
[8]: https://news.itsfoss.com/wp-content/uploads/2022/05/deb-get-list.jpg
[9]: https://github.com/wimpysworld/deb-get/releases
[10]: https://github.com/wimpysworld/deb-get

View File

@ -0,0 +1,197 @@
[#]: subject: "3 steps to start running containers today"
[#]: via: "https://opensource.com/article/22/2/start-running-containers"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
当下运行容器的 3 个步骤
======
在本教程中,你将学习如何在一个 pod 中运行两个容器来托管一个 WordPress 站点。
![堆积的运输容器][1]
无论你是将其作为工作的一部分、未来的工作机会或者仅仅是出于对新技术的兴趣,容器对很多人,即使是经验丰富的系统管理员,可能是非常难以应付的。那么如何真正开始使用容器呢?从容器到 [Kubernetes][2] 的成长路径是什么?另外,为什么有不止一条路径?如你所料,最好的起点就是现在。
### 1\. 了解容器
转念一想,从头开始可以追溯到早期 BSD 及其特殊的 chroot 监狱,时间久了还是直接跳到最近发生的事情吧。
不久前Linux 内核引入和 _cgroups_,允许你能够使用 _namespace_ 来“标记”进程。当你将进程组合到一个命名空间时这些进程的行为在命名空间之外好像不存在任何东西就像你把这些进程放入某种容器一样。当然容器是虚拟的它位于计算机内部它和你操作系统的其余进程使用相同的内核、RAM 和 CPU但你已经包含了这些进程。
预制的容器仅包含运行它所包含的应用程序必须的内容。使用容器引擎,如 [Podman][3]、Docker 或 CRI-O你可以运行容器化应用程序而无需像之前一样操作很多配置。容器引擎通常是跨平台的因此即使容器运行在 Linux 上,你也可以在其他 Linux、MacOS 或 Windows 上启动容器。
更重要的是,当需求量很大时,你可以运行同一应用程序的多个容器。
现在你知道了什么是容器,下一步是运行一个容器。
**[ 获取备忘录:[Pod、集群和容器之间有什么区别][4] ]**
### 2\. 运行一个容器
在运行容器之前,你应该有一个想要运行它的理由。你可以编一个,这有助于你对让容器创建过程感兴趣,这样你在运行容器过程中会收到鼓舞。毕竟,运行容器但不使用它提供的应用程序只能证明你没有注意到任何故障,但使用容器证明它可以工作。
我推荐从 WordPress 开始,它是一个很流行的 Web 应用程序,容易使用,所以一旦容器运行,你就可以测试使用它。虽然你可以轻松地配置一个 WordPress 容器,但还是有很多配置选项可以引导你发现更多容器选项(例如运行数据库容器)以及容器如何通信。
我使用 Podman它是一个友好、方便且无守护进程的容器引擎。如果你没有安装 Podman可以改用 Docker 命令。它们都是很棒的开源容器引擎,而且它们的语法是相同的(只需输入 `docker` 而不是 `podman`)。因为 Podman 没有守护进程,所以它需要更多的配置,这种代价是值得的。
如果你使用 Docker可以跳到 [WordPress 容器部分][5],否则,打开终端安装并配置 Podman
```
$ sudo dnf install podman
```
容器会产生许多进程,通常只有 root 用户有权创建数千个进程 ID。创建一个名为 `/etc/subuid` 的文件,定义一个适当的起始 UID 和大量合法的 PID这样就可以为你添加一些额外的进程 ID
```
seth:200000:165536
```
在名为 `/etc/subgid` 的文件中对你的组执行相同的操作。在这个例子中,我的主要组是 `staff`(对你来说可能是 `users`,或者和你的用户名一样,这取决于你的系统)。
```
staff:200000:165536
```
最后,确认你的用户可以管理很多命名空间:
```
$ sysctl --all --pattern user_namespaces
user.max_user_namespaces = 28633
```
如果你的用户无权管理超过 28,000 个命名空间,创建 `/etc/sysctl.d/userns.conf` 文件来增加数量并输入:
```
user.max_user_namespaces=28633
```
#### 运行 WordPress 容器
现在,无论你使用的是 Podman 还是 Docker你都可以从在线容器仓库中下载 WordPress 容器并运行它。你可以使用以下 Podman 命令完成所有这些操作:
```
$ podman run --name mypress \
-p 8080:80 -d wordpress
```
给 Podman 一会来找到容器,从互联网下载它,然后启动。
在收到终端返回提示后启动 Web 浏览器,打开 `localhost:8080`。WordPress 正在运行,等待你进行设置。
![WordPress 容器][6]
(Seth Kenlon, [CC BY-SA 4.0][7])
不过,你很快就会遇到障碍,因为 WordPress 使用数据库来存储数据,因此你需要为其提供一个数据库。
在继续之前,停止并删除 WordPress 容器:
```
$ podman stop mypress
$ podman rm mypress
```
### 3\. 在 pod 中运行容器
容器在设计上是独立的,正如它们的名字所暗示的那样。在容器中运行的应用程序不应该与在容器外的应用程序或基础设置进行交互。因此,当一个容器需要另一个容器才能运行时,一种解决方案是将这两个容器放在一个更大的容器中,称为 _pod_。Pod 确保其容器可以共享重要的命名空间以便相互通信。
创建一个新的 pod为 pod 提供一个名称,以及希望能够访问的端口:
```
$ podman pod create \
\--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
```
接下来,在同一个 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
```
现在启动你最喜欢的网络浏览器并打开 `localhost:8080`
这一次设置会正常进行。WordPress 会连接到数据库,因为你在启动容器时传递了这些环境变量。
![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 教程。
--------------------------------------------------------------------------------
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)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/seth
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/bus-containers.png?itok=d_4QhZxT (Shipping containers stacked)
[2]: https://opensource.com/tags/kubernetes
[3]: https://www.redhat.com/sysadmin/podman-guides-2020
[4]: https://enterprisersproject.com/cheat-sheet-what-s-difference-between-pod-cluster-and-container
[5]: tmp.1zBHYsK8TH#wp
[6]: https://opensource.com/sites/default/files/uploads/podman-wordpress.jpg (WordPress running in a container)
[7]: https://creativecommons.org/licenses/by-sa/4.0/
[8]: https://opensource.com/sites/default/files/uploads/wordpress-setup.jpg (WordPress setup)
[9]: https://opensource.com/sites/default/files/uploads/wordpress-welcome.jpg (WordPress dashboard running in a container)
[10]: https://enterprisersproject.com/article/2020/9/pod-cluster-container-what-is-difference
[11]: https://enterprisersproject.com/article/2019/11/kubernetes-3-ways-get-started

View File

@ -0,0 +1,169 @@
[#]: 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,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