Merge pull request #37 from LCTT/master

sync
This commit is contained in:
SamMa 2022-05-23 06:01:12 +08:00 committed by GitHub
commit b7f7425c9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
71 changed files with 6334 additions and 2896 deletions

View File

@ -0,0 +1,124 @@
[#]: subject: "Creating random, secure passwords in Go"
[#]: via: "https://opensource.com/article/18/5/creating-random-secure-passwords-go"
[#]: author: "Mihalis Tsoukalos https://opensource.com/users/mtsouk"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14621-1.html"
在 Go 中生成随机的安全密码
======
> Go 的随机数生成器是生成难以猜测的密码的好方法。
![](https://img.linux.net.cn/data/attachment/album/202205/21/152534k13a1wly39fuywu2.jpg)
你可以使用 [Go 编程语言][2] 提供的随机数生成器来生成由 ASCII 字符组成的难以猜测的密码。尽管本文中提供的代码很容易阅读,但是你仍需要了解 Go 的基础知识,才能更好地理解它。如果你是对 Go 还不熟悉,请阅读 [Go 语言之旅][3] 来了解更多信息,然后返回此处。
在介绍实用程序和它的代码之前,让我们先来看看这个 ASCII 表的子集,它可以在 `man ascii` 命令的输出中找到:
```
30 40 50 60 70 80 90 100 110 120
 ---------------------------------
0:    (  2  <  F  P  Z  d   n   x
1:    )  3  =  G  Q  [  e   o   y
2:    *  4  >  H  R  \  f   p   z
3: !  +  5  ?  I  S  ]  g   q   {
4: "  ,  6  @  J  T  ^  h   r   |
5: #  -  7  A  K  U  _  i   s   }
6: $  .  8  B  L  V  `  j   t   ~
7: %  /  9  C  M  W  a  k   u  DEL
8: &  0  :  D  N  X  b  l   v
9: '  1  ;  E  O  Y  c  m   w
```
在所有 ASCII 字符中,可打印字符的十进制值范围为 33 到 126其他的 ASCII 值都不适合用于密码。因此,本文介绍的实用程序将生成该范围内的 ASCII 字符。
### 生成随机整数
第一个实用程序名为 `random.go`,它生成指定数量的随机整数,这些整数位于给定范围内。`random.go` 最重要的部分是这个函数:
```
func random(min, max int) int {
return rand.Intn(max-min) + min
}
```
此函数使用了 `rand.Intn()` 函数来生成一个属于给定范围的随机整数。请注意,`rand.Intn()` 返回一个属于 `[0,n)` 的非负随机整数。如果它的参数是一个负数,这个函数将会抛出异常,异常消息是:`panic: invalid argument to Intn`。你可以在 [math/rand 文档][4] 中找到 `math/rand` 包的使用说明。
`random.go` 实用程序接受三个命令行参数:生成的整数的最小值、最大值和个数。
编译和执行 `random.go` 会产生这样的输出:
```
$ go build random.go
$ ./random
Usage: ./random MIX MAX TOTAL
$ ./random 1 3 10
2 2 1 2 2 1 1 2 2 1
```
如果你希望在 Go 中生成更安全的随机数,请使用 Go 库中的 `crypto/rand` 包。
### 生成随机密码
第二个实用程序 `randomPass.go` 用于生成随机密码。`randomPass.go` 使用 `random()` 函数来生成随机整数,它们随后被以下 Go 代码转换为 ASCII 字符:
```
for {
myRand := random(MIN, MAX)
newChar := string(startChar[0] + byte(myRand))
fmt.Print(newChar)
if i == LENGTH {
break
}
i++
}
```
`MIN` 的值为 `0``MAX` 的值为 `94`,而 `startChar` 的值为 `!`,它是 ASCII 表中第一个可打印的字符(十进制 ASCII 码为 `33`)。因此,所有生成的 ASCII 字符都位于 `!``~` 之间,后者的十进制 ASCII 码为 `126`
因此,生成的每个随机数都大于 `MIN`,小于 `MAX`,并转换为 ASCII 字符。该过程继续进行,直到生成的密码达到指定的长度。
`randomPass.go` 实用程序接受单个(可选)命令行参数,以定义生成密码的长度,默认值为 8这是一个非常常见的密码长度。执行 `randomPass.go` 会得到类似下面的输出:
```
$ go run randomPass.go 1
Z
$ go run randomPass.go 10
#Cw^a#IwkT
$ go run randomPass.go
Using default values!
[PP8@'Ci
```
最后一个细节:不要忘记调用 `rand.Seed()`,并提供一个<ruby>种子<rt>seed</rt></ruby>值,以初始化随机数生成器。如果你始终使用相同的种子值,随机数生成器将生成相同的随机整数序列。
![随机数生成代码][5]
你可以在 [GitHub][6] 找到 `random.go``randomPass.go` 的源码。你也可以直接在 [play.golang.org][7] 上执行它们。
我希望这篇文章对你有所帮助。如有任何问题,请在下方发表评论或在 [Twitter][8] 上与我联系。
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/5/creating-random-secure-passwords-go
作者:[Mihalis Tsoukalos][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/mtsouk
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/laptop-password.jpg
[2]: https://golang.org/
[3]: https://tour.golang.org/welcome/1
[4]: https://golang.org/pkg/math/rand/
[5]: https://opensource.com/sites/default/files/styles/panopoly_image_original/public/uploads/random.png?itok=DG0QPUGX
[6]: https://github.com/mactsouk/opensource.com
[7]: https://play.golang.org/
[8]: https://twitter.com/mactsouk

View File

@ -3,16 +3,16 @@
[#]: author: "Mihalis Tsoukalos https://opensource.com/users/mtsouk"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14623-1.html"
在 Go 中实现一个支持并发的 TCP 服务端
======
仅用大约 65 行代码,开发一个用于生成随机数、支持并发的 TCP 服务端。
![土拨鼠插图][1]
图源Renee French, CC BY 3.0
![](https://img.linux.net.cn/data/attachment/album/202205/22/115536nkfuuf4dklgg7fsx.jpg)
> 仅用大约 65 行代码,开发一个用于生成随机数、支持并发的 TCP 服务端。
TCP 和 UDP 服务端随处可见,它们基于 TCP/IP 协议栈,通过网络为客户端提供服务。在这篇文章中,我将介绍如何使用 [Go 语言][2] 开发一个用于返回随机数、支持并发的 TCP 服务端。对于每一个来自 TCP 客户端的连接,它都会启动一个新的 goroutine轻量级线程来处理相应的请求。
@ -22,7 +22,7 @@ TCP 和 UDP 服务端随处可见,它们基于 TCP/IP 协议栈,通过网络
这个程序的主要逻辑在 `handleConnection()` 函数中,具体实现如下:
```go
```
func handleConnection(c net.Conn) {
        fmt.Printf("Serving %s\n", c.RemoteAddr().String())
        for {
@ -44,14 +44,14 @@ func handleConnection(c net.Conn) {
}
```
如果 TCP 客户端发送了一个“STOP”字符串为它提供服务的 goroutine 就会终止否则TCP 服务端就会返回一个随机数给它。只要客户端不主动终止,服务端就会一直提供服务,这是由 `for` 循环保证的。具体来说,`for` 循环中的代码使用了 `bufio.NewReader(c).ReadString('\n')` 来逐行读取客户端发来的数据,并使用 `c.Write([]byte(string(result)))` 来返回数据(生成的随机数)。你可以在 Go 的 net 标准包 [文档][4] 中了解更多。
如果 TCP 客户端发送了一个 “STOP” 字符串,为它提供服务的 goroutine 就会终止否则TCP 服务端就会返回一个随机数给它。只要客户端不主动终止,服务端就会一直提供服务,这是由 `for` 循环保证的。具体来说,`for` 循环中的代码使用了 `bufio.NewReader(c).ReadString('\n')` 来逐行读取客户端发来的数据,并使用 `c.Write([]byte(string(result)))` 来返回数据(生成的随机数)。你可以在 Go 的 net 标准包 [文档][4] 中了解更多。
### 支持并发
`main()` 函数的实现部分,每当 TCP 服务端收到 TCP 客户端的连接请求,它都会启动一个新的 goroutine 来为这个请求提供服务。
```go
```
func main() {
        arguments := os.Args
        if len(arguments) == 1 {
@ -138,7 +138,7 @@ via: https://opensource.com/article/18/5/building-concurrent-tcp-server-go
作者:[Mihalis Tsoukalos][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,255 @@
[#]: subject: (Build a printer UI for Raspberry Pi with XML and Java)
[#]: via: (https://opensource.com/article/21/3/raspberry-pi-totalcross)
[#]: author: (Edson Holanda Teixeira Junior https://opensource.com/users/edsonhtj)
[#]: collector: (lujun9972)
[#]: translator: (CoWave-Fall)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-14620-1.html)
用 XML 和 Java 构建树莓派打印机的用户界面
======
> 使用 TotalCross 来快速构建嵌入式系统程序的用户界面。
![](https://img.linux.net.cn/data/attachment/album/202205/21/110711zv3t7n1o7hllhodt.jpg)
从头开始构建 GUI 是一个非常耗时的过程,以硬编码的方式处理所有的位置和对齐对于一些程序员来说确实很困难。所以在本文中,我将演示如何使用 XML 加快这一过程。
本项目使用 [TotalCross][2] 作为目标框架。TotalCross 是一个开源的跨平台软件开发工具包SDK旨在更快地为嵌入式设备创建 GUI。TotalCross 无需在设备上运行 Java 即可提供 Java 的开发优势,因为它使用自己的字节码和虚拟机(<ruby>TC 字节码<rt>TC bytecode</rt></ruby> 和 TCVM来增强性能。
我还使用了 Knowcode-XML这是一个用于 TotalCross 框架的开源 XML 解析器,它可以将 XML 文件转换为 TotalCross 组件。
### 项目需求
要重现此项目,你需要:
* [KnowCode-XML][3]
* [VSCode][4] 或 [VSCodium][5]
* [一个 Android 开发环境][6]
* [用于 VSCode 的 TotalCross 插件][7]
* 适用于你的开发平台([Linux][8]、[Mac][9] 或 [Windows][10])的 Java需要 Java 11或更高版本
* [Git][11]
### 制作嵌入式应用程序
该应用程序由一个具有扫描、打印和复印等基本打印功能的嵌入式 GUI 组成。
![打印机初始化画面][12]
构建这个 GUI 需要几个步骤,包括使用 Android-XML 生成 GUI然后使用 Knowcode-XML 解析器在 TotalCross 框架上运行它。
#### 1、生成 Android XML
要创建 XML 文件,首先构建一个简单的 Android 屏幕,然后对其进行自定义。如果你不知道如何编写 Android-XML或者你只是想简单尝试一下你可以从这个 [GitHub 项目][14] 中下载这个应用程序的 XML。该项目还包含渲染 GUI 要用到的图片。
#### 2、调整 XML
生成 XML 文件后,你需要进行一些微调以确保所有内容都已经对齐、比例正确并且图像的路径正确。
将 XML 布局添加到 `Layouts` 文件夹,将所有资源添加到 `Drawable` 文件夹。然后你就可以开始自定义 XML 了。
例如,如果想要更改 XML 对象的背景,可以更改 `android:background` 属性:
```
android:background="@drawable/scan"
```
你也可以使用 `tools:layout_editor_absoluteX``tools:layout_editor_absoluteY` 更改对象的位置:
```
tools:layout_editor_absoluteX="830dp"
tools:layout_editor_absoluteY="511dp"
```
或者使用 `android:layout_width``android:layout_height` 更改对象的大小:
```
android:layout_width="70dp"
android:layout_height="70dp"
```
如果要在对象上放置文本,可以使用 `android:textSize`、`android:text`、`android:textStyle` 和 `android:textColor`
```
android:textStyle="bold"
android:textColor="#000000"
android:textSize="20dp"
android:text="2:45PM"
```
下面是一个完整的 XML 对象的示例:
```
<ImageButton
android:id="@+id/ImageButton"
android:layout_width="70dp"
android:layout_height="70dp"
tools:layout_editor_absoluteX="830dp"
tools:layout_editor_absoluteY="511dp"
android:background="@drawable/home_config" />
```
#### 3、在 TotalCross 上运行 GUI
完成所有 XML 调整后,就可以在 TotalCross 上运行它了。在 TotalCross 扩展LCTT 译注:在 VSCode 里面)上创建一个新项目,并将 `XML``Drawable` 文件夹添加到 `Main` 文件夹里。如果你仍然不确定如何创建 TotalCross 项目,请参阅我们的 [入门指南][15]。
配置好环境后,使用 `totalcross.knowcode.parse.XmlContainerFactory``import totalcross.knowcode.parse.XmlContainerLayout` 在 TotalCross 框架上使用 XML GUI。 你可以在其 [GitHub 页面][3] 上找到更多关于使用 KnowCode-XML 的信息。
#### 4、添加过渡效果
这个项目的平滑过渡效果是由 `SlidingNavigator` 类创建的,它使用 TotalCross 的 `ControlAnimation` 类从一个屏幕滑到另一个屏幕。
`XMLpresenter` 类上调用 `SlidingNavigator`
```
new SlidingNavigator(this).present(HomePresenter.class);
```
`SlidingNavigator` 类上实现 `present` 函数:
```
public void present(Class<? extends XMLPresenter> presenterClass)
throws InstantiationException, IllegalAccessException {
final XMLPresenter presenter = cache.containsKey(presenterClass) ? cache.get(presenterClass)
: presenterClass.newInstance();
if (!cache.containsKey(presenterClass)) {
cache.put(presenterClass, presenter);
}
if (presenters.isEmpty()) {
window.add(presenter.content, LEFT, TOP, FILL, FILL);
} else {
XMLPresenter previous = presenters.lastElement();
window.add(presenter.content, AFTER, TOP, SCREENSIZE, SCREENSIZE, previous.content);
```
使用动画控件中的 `PathAnimation` 来创建从一个屏幕到另一个屏幕的滑动动画:
```
PathAnimation.create(previous.content, -Settings.screenWidth, 0, new ControlAnimation.AnimationFinished() {
@Override
public void onAnimationFinished(ControlAnimation anim) {
window.remove(previous.content);
}
}, 1000).with(PathAnimation.create(presenter.content, 0, 0, new ControlAnimation.AnimationFinished() {
@Override
public void onAnimation Finished(Control Animation anim) {
presenter.content.setRect(LEFT, TOP, FILL, FILL);
}
}, 1000)).start();
}
presenter.setNavigator(this);
presenters.push(presenter);
presenter.bind2();
if (presenter.isFirstPresent) {
presenter.onPresent();
presenter.isFirstPresent = false;
}
```
#### 5、加载环形进度条
打印机应用程序的另一个不错的功能是显示进度的加载屏幕动画。它包括文本和旋转动画。
![加载环形进度条][18]
通过添加定时器和定时器监听器来更新进度标签,然后调用函数 `spinner.start()` 来实现此功能。所有的动画都是由 TotalCross 和 KnowCode 自动生成的:
```
public void startSpinner() {
time = content.addTimer(500);
content.addTimerListener((e) -> {
try {
progress(); // Updates the Label
} catch (InstantiationException | IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
});
Spinner spinner = (Spinner) ((XmlContainerLayout) content).getControlByID("@+id/spinner");
spinner.start();
}
```
这里的环形进度条被实例化为对 XML 文件中描述的 `XmlContainerLayout` `spinner` 的引用:
```
<ProgressBar
android:id="@+id/spinner"
android:layout_width="362dp"
android:layout_height="358dp"
tools:layout_editor_absoluteX="296dp"
tools:layout_editor_absoluteY="198dp"
android:indeterminateTint="#2B05C7"
style="?android:attr/progressBarStyle" />
```
#### 6、构建应用程序
是时候构建应用程序了。你可以在 `pom.xml` 中查看和更改<ruby>目标系统<rt>target systems</rt></ruby>。 请确保 `Linux Arm` 目标可用。
如果你使用的是 VSCode请按下键盘上的 `F1` 键,选择 `TotalCross: Package` 并等待完成。 然后就可以在 `Target` 文件夹中看到安装文件了。
#### 7、在树莓派上部署和运行应用程序
要使用 SSH 协议在 [树莓派][19] 上部署应用程序,请按键盘上的 `F1`。选择 `TotalCross: Deploy&Run` 并提供有关你的 SSH 连接的信息用户名、IP地址、密码和应用程序路径。
![TotalCross部署与运行][20]
![配置 SSH 用户名][21]
![配置 IP 地址][22]
![输入密码][23]
![配置路径][24]
### 总结
KnowCode 让使用 Java 创建和管理应用程序屏幕变得更加容易。Knowcode-XML 将你的 XML 转换为 TotalCross GUI 界面,然后生成二进制文件以在你的树莓派上运行。
将 KnowCode 技术与 TotalCross 相结合,使你能够更快地创建嵌入式应用程序。 你可以访问我们在 GitHub 上的 [嵌入式示例][25] 并编辑你自己的应用程序,了解你还可以做什么。
如果你有问题、需要帮助,或者只是想与其他嵌入式 GUI 开发人员互动,请随时加入我们的 [Telegram][26] 小组,讨论任何框架上的嵌入式应用程序。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/3/raspberry-pi-totalcross
作者:[Edson Holanda Teixeira Junior][a]
选题:[lujun9972][b]
译者:[CoWave-Fall](https://github.com/CoWave-Fall)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/edsonhtj
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/gears_devops_learn_troubleshooting_lightbulb_tips_520.png?itok=HcN38NOk (Tips and gears turning)
[2]: https://opensource.com/article/20/7/totalcross-cross-platform-development
[3]: https://github.com/TotalCross/knowcode-xml
[4]: https://code.visualstudio.com/
[5]: https://opensource.com/article/20/6/open-source-alternatives-vs-code
[6]: https://developer.android.com/studio
[7]: https://marketplace.visualstudio.com/items?itemName=totalcross.vscode-totalcross
[8]: https://opensource.com/article/19/11/install-java-linux
[9]: https://opensource.com/article/20/7/install-java-mac
[10]: http://adoptopenjdk.net
[11]: https://opensource.com/life/16/7/stumbling-git
[12]: https://opensource.com/sites/default/files/uploads/01_printergui.png (printer init screen)
[13]: https://creativecommons.org/licenses/by-sa/4.0/
[14]: https://github.com/TotalCross/embedded-samples/tree/main/printer-application/src/main/resources/layout
[15]: https://totalcross.com/get-started/?utm_source=opensource&utm_medium=article&utm_campaign=printer
[16]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+instantiationexception
[17]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+illegalaccessexception
[18]: https://opensource.com/sites/default/files/uploads/03progressspinner.png (Loading Spinner)
[19]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/
[20]: https://opensource.com/sites/default/files/uploads/04_totalcross-deployrun.png (TotalCross: Deploy&Run)
[21]: https://opensource.com/sites/default/files/uploads/05_ssh.png (SSH user)
[22]: https://opensource.com/sites/default/files/uploads/06_ip.png (IP address)
[23]: https://opensource.com/sites/default/files/uploads/07_password.png (Password)
[24]: https://opensource.com/sites/default/files/uploads/08_path.png (Path)
[25]: https://github.com/TotalCross/embedded-samples
[26]: https://t.me/totalcrosscommunity

View File

@ -3,21 +3,20 @@
[#]: author: "David Wang https://opensource.com/users/davidwang"
[#]: collector: "lkxed"
[#]: translator: "unigeorge"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14608-1.html"
开源分析数据库 Apache Druid 的推荐理由
为什么推荐开源分析数据库 Apache Druid
======
对用户而言,优秀的对外数据分析工具不可多得,因此选择合适的数据架构就显得尤为重要。
![metrics and data shown on a computer screen][1]
> 对用户而言,优秀的对外数据分析工具非常关键,因此选择合适的数据架构就显得尤为重要。
(Image by: Opensource.com)
![](https://img.linux.net.cn/data/attachment/album/202205/18/154417bvakcquzn2ahv4ua.jpg)
现如今,数据分析不再是仅面向内部开发人员。当为业务方构建数据分析系统时,你需要确认哪种数据库后端是最合适的。
程序员的本能可能是“选用自己了解的数据库(例如 PostgreSQL 或 [MySQL][2])”。诚然,数据仓库可能会扩展到其核心 BI 仪表板和报告之外的功能,不过对业务方的数据分析支持仍是其重要功能之一,因此要选择合适的工具来保证此功能的性能。
程序员的本能可能是“选用自己了解的数据库(例如 PostgreSQL 或 [MySQL][2])”。数据仓库可能会扩展核心 BI 仪表板和报告之外的功能,不过对业务方的数据分析支持仍是其重要功能之一,因此要选择合适的工具来保证此功能的性能。
问题的关键点在于用户体验,以下是对外支持数据分析工作的一些关键技术讨论点(以 Apache Druid 为例)。
@ -25,12 +24,11 @@
一直在队列中等待查询会让人很恼火。与延迟有关的因素包括数据量、数据库的处理能力、用户和 API 调用的数量,以及数据库支持查询应用的能力。
当数据量比较大时,有一些方法可以基于任意在线分析处理 (OLAP) 数据库构建交互式数据体验,但或多或少都有一些其他方面的牺牲。预计算查询会对性能要求较高,还会使架构变得僵化。预聚合处理会使数据粒度变大。将数据时间限制在近期的处理方式,会使得数据完整性得不到保证。
当数据量比较大时,有一些方法可以基于任意在线分析处理OLAP数据库构建交互式数据体验,但或多或少都有一些其他方面的牺牲。预计算查询会对性能要求较高,还会使架构变得僵化。预聚合处理会使数据粒度变大。将数据时间限制在近期的处理方式,会使得数据完整性得不到保证。
“不妥协”的解决方案是选择专为大规模交互而构建的优化架构和数据格式,[Apache Druid][3] 正是这样一个旨在支持现代分析程序的实时数据库。
一个“不妥协”的解决方案是选择专为大规模交互而构建的优化架构和数据格式,[Apache Druid][3] 正是这样一个旨在支持现代分析程序的实时数据库。
* 首先Druid 具备特有的分布式弹性架构,可将数据从共享数据层预取到近乎无限容量的数据服务器集群中。这种架构与诸如云数据仓库这样的解耦查询引擎相比,具有更快的性能,因为它不需要移动数据,并且比像 PostgreSQL 和 MySQL 这样的纵向扩展数据库具有更高的可扩展性。
* 其次Druid 采用内置于数据格式中的自动多级索引来驱动每个内核去支持更多查询操作。在常规 OLAP 列格式基础之上,还增加了全局索引、数据字典和位图索引,这可以最大化利用 CPU 周期,加快处理速度。
### 高可用性
@ -41,11 +39,11 @@
考虑弹性就需要考虑设计标准。节点或集群范围的故障能完全避免吗?丢失数据的后果有多严重?保障应用程序和数据需要涉及哪些工作?
关于服务器故障,保证弹性的常规方法是多节点服务以及[备份机制][4]。但如果你是为客户构建应用程序,则对数据丢失的敏感性要高得多。*间断性*备份并不能完全解决这一问题。
关于服务器故障,保证弹性的常规方法是多节点服务以及 [备份机制][4]。但如果你是为客户构建应用程序,则对数据丢失的敏感性要高得多。*偶尔的*备份并不能完全解决这一问题。
Apache Druid 的核心架构内置了该问题的解决方案,本质是一种强大而简单的弹性方法,旨在保证承受任何变故都不会丢失数据(即使是刚刚发生的事件)。
Druid 基于对象存储中共享数据的自动、多级复制实现高可用性 (HA) 和持久性。它实现了用户期望的 HA 特性以及持续备份机制,即使整个集群出现问题,也可以自动保护和恢复数据库的最新状态。
Druid 基于对象存储中共享数据的自动、多级复制实现高可用性HA和持久性。它实现了用户期望的 HA 特性以及持续备份机制,即使整个集群出现问题,也可以自动保护和恢复数据库的最新状态。
### 多用户
@ -63,7 +61,7 @@ Druid 基于对象存储中共享数据的自动、多级复制实现高可用
分析应用程序对于用户而言至关重要,所以要构建正确的数据架构。
你肯定不想一开始就选择了一个错误的数据库然后在后续扩展时面对诸多令人头疼的问题。幸运的是Apache Druid 可以从小规模开始并在之后轻松扩展以支持任何可以想象的应用程序。Apache Druid 有[优秀的官方文档][5],当然它是开源的,所以不妨尝试一下并,快速上手吧。
你肯定不想一开始就选择了一个错误的数据库然后在后续扩展时面对诸多令人头疼的问题。幸运的是Apache Druid 可以从小规模开始并在之后轻松扩展以支持任何可以想象的应用程序。Apache Druid 有 [优秀的官方文档][5],当然它是开源的,所以不妨尝试一下并,快速上手吧。
--------------------------------------------------------------------------------
@ -72,7 +70,7 @@ via: https://opensource.com/article/22/4/apache-druid-open-source-analytics
作者:[David Wang][a]
选题:[lkxed][b]
译者:[unigeorge](https://github.com/unigeorge)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,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: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14625-1.html"
开源为可持续发展技术提供新思路
======
> 开源和社会对于更为稳定的技术演进的需求具有相同的目标,即实现一个更为可持续的未来。
![](https://img.linux.net.cn/data/attachment/album/202205/22/160753zekl2094033e4igr.jpg)
在可持续发展和环境问题上,目前正在发生明确的变化。关注地球的状况并为之做出努力已经成为主流思想。举个例子,看看基于气候的风险资本主义。<ruby>气候技术风险投资公司<rt>Climate Tech Venture Capital</rt></ruby>CTVC的气候资本名单在过去两年中增加了 [一倍多][2]。涌入的资本表明了人们对解决艰难的气候挑战的愿望和意愿。
人们想采取行动,这很好,我持相同态度!但我也看到了一个真正的风险:当人们急于采取行动并参与到其中时,他们可能会不知不觉地卷入洗绿运动中。
维基百科对 “<ruby>洗绿<rt>greenwashing</rt></ruby>” 的定义称其为 “一种营销策略,其中绿色公关和绿色营销被欺骗性地用来说服公众,使其相信一个组织的产品、目标和政策是环保的”。在我看来,洗绿既是有意为之,也是无意中发生的。外面有很多想有所作为的好人,但对复杂的环境系统或围绕可持续发展的问题的深度还不甚了解。
我们很容易落入这样的陷阱,即认为通过植树来抵消旅行或数据中心的排放等简单的购买行为会使一些东西变得更加绿色。虽然这些努力是值得提倡的,而且植树是改善可持续发展的一个可行的解决方案,但它们只是一个很好的开端,仍然需要进行更多的努力才能真正产生变革。
那么,一个人或一个社区可以做些什么来使数字技术真正地更加可持续?
“可持续性”对不同的人有不同的含义。我喜欢的最简短的定义来自 1987 年的《<ruby>布伦特兰报告<rt>Bruntland Report</rt></ruby>》,该报告将其概括为 “既能满足当代的需要,同时又不损及后代满足其需要的发展模式”。可持续发展的核心是优先考虑长期思维。
### 可持续发展不仅仅是保护环境
在可持续性的定义中,有三个相互关联的关键支柱:
1. 环境
2. 经济 / 政策
3. 社会
关于可持续发展的讨论越来越多地被气候危机所主导,这是有道理的。随着我们继续通过不可逆转的生态临界点,减少世界上较富裕国家的碳排放的需求变得越来越紧迫。但真正的可持续性是一套更全面的体系,正如三大支柱所展示的那样。
碳排放无疑是可持续性的一部分。许多人认为排放只是一个环境问题。只要从空气中移除更多的碳,一切都会好起来。但社会问题也是可持续性的一部分。谁会受到这些碳排放的影响?谁将承受我们气候变化带来的最大影响?谁因海平面上升而失去了家园,或因天气模式变化而失去了可靠的水源?这就是为什么你可能听说过 “气候正义就是社会正义” 这句话。
仅仅把减碳看作是可持续发展会令你的视野被限定在碳上。我经常认为,气候变化是社会在更大范围内错失可持续性的一个症状。相反,关键是要解决首先导致气候变化的根本原因。解决这些问题将使长期解决这些问题成为可能,而短期解决可能只会将问题推向另一个脆弱的边缘。
其根本原因很复杂。但是,如果我追根溯源,我看到根源是由西方的主流价值观和旨在延续这些价值观的制度所驱动的。这些价值观是什么呢?一语概之,它们是快速增长和对利润的攫取高于一切。
这就是为什么关于可持续性的对话如果不包括社会问题或经济的设计方式,就不会达成真正的解决方案。毕竟,社会和掌握权力的人决定了他们自己的价值观是什么,或者不是什么。
### 我能做什么?
科技领域的许多人目前正致力于解决这些问题,并想知道怎样行动更有意义。一个常见的方法是研究如何优化他们制造的技术,使其更有效地使用电力。世界上 60% 的电力仍然是通过燃烧化石燃料产生的,尽管可再生能源的发电能力不断提高。但从逻辑上讲,使用更少的电力意味着产生更少的碳排放。
是的,这是很有意义的,任何人都可以尝试,立即就能生效。当用户加载一个页面时,优化发送的资源,以发送更少的数据,将使用更少的能源。因此,优化服务器,使其在一天中的不同时段运行,例如,当有更多的可再生能源可用时运行,或删除多余信息的旧存储,如分析数据或日志。
但考虑到<ruby>杰文<rt>Jevon</rt></ruby>的悖论:使某样东西更有效率往往会导致使用更多的东西,而不是减少。当人们更容易和更便于使用某样东西时,他们最终会使用更多。在某种角度,这是好的。性能更好的技术是一件好事,有助于提高包容性和触及性,这对社会是有益的。但是,气候变化和可持续性的长期解决方案需要围绕社会和技术之间的关系进行更深入、更令人不适的对话。所有这些技术在为什么和谁服务?它正在加速哪些行为和做法?
将技术的演进视为进步很正常,一些人认为:技术将把世界从气候变化中拯救出来。一些聪明的人正在通过艰苦卓绝的努力改善这一问题,所以其他人不需要改变他们的方式。问题是,许多社区和生态系统已经在遭受更大的创伤。
例如,对更多更高速传输的数据的追求正在导致智利的一些社区没有足够的水来种植农作物。因为数据中心正在使用这些宝贵的水源。移动电话造成的污染有 70% 来自于其制造。制造移动设备并为其提供动力的锂和钴等原材料通常是从弱势的社区中提取的,而这些社区几乎没有能力阻止制造商对其土地的破坏,当然也没有分享所获利润。尽管如此,每两年升级一次手机的做法已经变得很普遍了。
### 开源思路引领可持续发展之路
现在是时候将数字技术的使用视为一种宝贵的资源,这对地球和(通常已经处于弱势的)社区都有影响。
开源社区已经帮助人们认识到有另一种解决方案:开源。开源与我们更广泛的社会为实现更可持续的未来而需要做的事情之间有巨大的相似之处。更加开放和包容是其中的一个关键部分。
我们还需要在社会的各个层面进行思维转变,将数字技术视为有代价的增长,而不是我们今天看到的大量廉价和免费的东西。我们需要明智地将其优先用于对于社会而言最为重要的事情。更重要的是,我们需要关注并消除其创造和长期使用所带来的危害,并与社会上的每个人公平地分享其创造的财富,无论他们是否是数字技术的使用者。这些事情不会在一夜之间发生,但它们是我们可以共同推动的事情,以便我们都能长期、可持续地享受数字技术的好处。
本文节选自一篇较长的演讲。要想看到演讲的全文或查看幻灯片,请参见《[我们如何使数字技术更具有可持续性][3]》一文。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/open-source-sustainable-technology
作者:[Hannah Smith][a]
选题:[lkxed][b]
译者:[PeterPan0106](https://github.com/PeterPan0106)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://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

@ -3,17 +3,18 @@
[#]: author: "S Ratan Kumar https://www.opensourceforu.com/author/s-ratan/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14607-1.html"
PyCaret机器学习模型开发变得简单
======
在当今快节奏的数字世界中,组织使用低代码/无代码 (LC/NC) 应用来快速构建新的信息系统。本文介绍 PyCaret一个用 Python 编写的低代码机器学习库。
> 在当今快节奏的数字世界中,机构们使用低代码/无代码LC/NC应用来快速构建新的信息系统。本文将介绍 PyCaret这是一个用 Python 编写的低代码机器学习库。
![Featured-image-of-pycaret][1]
PyCaret 是 R 编程语言中 Caret分类和回归训练的缩写包的 Python 版本,具有许多优点。
PyCaret 是 R 编程语言中 Caret<ruby>分类和回归训练<rt>Classification And REgression Training</rt></ruby>的缩写)包的 Python 版本,具有许多优点。
- **提高工作效率:** PyCaret 是一个低代码库,可让你提高工作效率。由于花费更少的时间进行编码,你和你的团队现在可以专注于业务问题。
- **易于使用:** 这个简单易用的机器学习库将帮助你以更少的代码行执行端到端的机器学习实验。
@ -35,7 +36,7 @@ pip install pycaret [full]
#### 步骤 1
首先,通过给出以下命令安装 PyCaret
首先,通过给出以下命令安装 PyCaret
```
pip install pycaret
@ -49,10 +50,10 @@ pip install pycaret
```
from pycaret.datasets import get_data
dataset = get_data(iris) 
(or)
dataset = get_data('iris') 
(或者)
import pandas as pd
dataset = pd.read_csv(/path_to_data/file.csv)
dataset = pd.read_csv('/path_to_data/file.csv')
```
#### 步骤 3
@ -63,12 +64,12 @@ dataset = pd.read_csv(/path_to_data/file.csv)
```
from pycaret.classification import *
clf1 = setup (data=dataset, target = species)
clf1 = setup(data=dataset, target = species)
```
![PyCaret environment setup result][4]
对于使用 PyCaret 构建任何类型的模型,环境设置是最重要的一步。默认情况下,*setup()* 函数采用 *data*: Pandas DataFrame 和 target它指向数据集中的类标签变量。 setup 函数的结果如图 3 所示。 setup 函数默认将 70% 的数据拆分为训练集30% 作为测试集,并进行数据预处理,如图 3 所示。
使用 PyCaret 构建任何类型的模型,环境设置是最重要的一步。默认情况下,`setup()` 函数接受参数 `data`Pandas 数据帧)和 `target`(指向数据集中的类标签变量)。`setup()` 函数的结果如图 3 所示。 `setup()` 函数默认将 70% 的数据拆分为训练集30% 作为测试集,并进行数据预处理,如图 3 所示。
#### 步骤 4
@ -80,7 +81,7 @@ clf1 = setup (data=dataset, target = species)
best = compare_models()
```
默认情况下,*compare_models()* 应用十倍交叉验证并针对具有较少训练时间的不同分类器计算不同的性能指标如准确度、AUC、召回率、精度、F1 分数、Kappa 和 MCC如图 4 所示。通过将 tubro=True 传递给 *compare_models()* 函数,我们可以尝试所有分类器。
默认情况下,`compare_models()` 应用十倍交叉验证并针对具有较少训练时间的不同分类器计算不同的性能指标如准确度、AUC、召回率、精度、F1 分数、Kappa 和 MCC如图 4 所示。通过将 `tubro=True` 传递给 `compare_models()` 函数,我们可以尝试所有分类器。
#### 步骤 5
@ -92,7 +93,7 @@ best = compare_models()
lda_model=create_model (lda)
```
线性判别分析分类器表现良好,如图 4 所示。因此,通过将 “lda” 传递给 *create_model()* 函数,我们可以拟合模型。
线性判别分析分类器表现良好,如图 4 所示。因此,通过将 `lda` 传递给 `create_model()` 函数,我们可以拟合模型。
#### 步骤 6
@ -104,7 +105,7 @@ lda_model=create_model (lda)
tuned_lda=tune_model(lda_model)
```
超参数的调整可以提高模型的准确性。 *tune_model()* 函数将线性判别分析模型的精度从 0.9818 提高到 0.9909,如图 7 所示。
超参数的调整可以提高模型的准确性。`tune_model()` 函数将线性判别分析模型的精度从 0.9818 提高到 0.9909,如图 7 所示。
![Tuned model details][8]
@ -118,7 +119,7 @@ tuned_lda=tune_model(lda_model)
predictions=predict_model(tuned_lda)
```
*predict_model()* 函数用于对测试数据中存在的样本进行预测。
`predict_model()` 函数用于对测试数据中存在的样本进行预测。
#### 步骤 8
@ -130,7 +131,7 @@ predictions=predict_model(tuned_lda)
evaluate_model(tuned_lda)
```
*evaluate_model ()* 函数用于以最小的努力开发不同的性能指标。你可以尝试它们并查看输出。
`evaluate_model()` 函数用于以最小的努力开发不同的性能指标。你可以尝试它们并查看输出。
--------------------------------------------------------------------------------
@ -139,7 +140,7 @@ via: https://www.opensourceforu.com/2022/05/pycaret-machine-learning-model-devel
作者:[S Ratan Kumar][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,13 +3,15 @@
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14619-1.html"
无法在 Ubuntu 22.04 上运行 AppImage这是解决方法
======
![该图片由 Ryan McGuire 在 Pixabay 上发布](https://img.linux.net.cn/data/attachment/album/202205/21/093854fdcjm47bqyjm6vqz.jpg)
最近发布的 [Ubuntu 22.04 LTS 充满了新的视觉变化和功能][1]。
但与任何其他版本一样,它也存在一些错误和问题。
@ -36,7 +38,7 @@
sudo apt install libfuse2
```
如果你不熟悉终端,那么你需要了解以下内容。它会要求你输入 sudo 密码。实际上,那是你的帐户密码。 **当你输入密码时,屏幕上不会显示任何内容**。这是设计使然。只需继续输入密码并输入。
如果你不熟悉终端,那么你需要了解以下内容。它会要求你输入 `sudo` 密码。实际上,那是你的帐户密码。 **当你输入密码时,屏幕上不会显示任何内容**。这是设计使然。只需继续输入密码并输入。
![Install libfuse2 in Ubuntu][4]
@ -44,25 +46,25 @@ sudo apt install libfuse2
这个不用说了。你需要对下载的应用的 AppImage 文件具有“执行”权限。
转到你已下载所需应用的 AppImage 文件的文件夹。**右键单击**并**选择属性**
转到你已下载所需应用的 AppImage 文件的文件夹。右键单击并选择<ruby>属性<rt>Properties</rt></ruby>
现在转到**权限选项卡**并选中“**允许将文件作为程序执行**”选项。
现在转到<ruby>权限<rt>Permissions</rt></ruby>选项卡并选中“<ruby>允许将文件作为程序执行<rt>Allow executing file as program</rt></ruby>”选项。
![give execute permission to AppImage file][5]
设置完成后就好了。现在只需双击该文件,它就会按预期运行应用。
获取 libfuse 的这个小步骤在我的[安装 Ubuntu 22.04 后推荐要做的事情列表][6]上了。
获取 libfuse 的这个小步骤已经在我的 [安装 Ubuntu 22.04 后推荐要做的事情列表][6] 上了。
#### 进一步的故障排除提示
### 进一步的故障排除提示
你的 AppImage 文件仍未运行?你下载的 AppImage 可能会出现一些其他问题,使其无法运行。
检查它的一种方法是下载一个已知的应用,如 [Balena Etcher][7] 并查看其 AppImage 文件是否有效。如果这个没问题,那么当你下载的另一个应用的 AppImage 文件无法工作你可以通过从终端运行 AppImage 文件并分析它显示的错误来深入挖掘。
检查它的一种方法是下载一个已知的应用,如 [Balena Etcher][7] 并查看其 AppImage 文件是否有效。如果这个没问题,那么当你下载的另一个应用的 AppImage 文件无法工作你可以通过从终端运行 AppImage 文件并分析它显示的错误来深入挖掘。
#### 对你有用吗?
### 对你有用吗?
继续尝试。如果有效,请给我写个谢谢。如果仍然没有,请在评论部分中提及详细信息,我会尽力帮助你。
继续尝试。如果有效,请给我写个“感谢”。如果仍然没有解决,请在评论部分中提及详细信息,我会尽力帮助你。
--------------------------------------------------------------------------------
@ -71,7 +73,7 @@ via: https://itsfoss.com/cant-run-appimage-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,21 +3,22 @@
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14616-1.html"
HydraPaper一个支持多显示器的 Linux 壁纸管理器
======
简介HydraPaper 是一个令人印象深刻的壁纸管理器,适用于 Linux 用户,也支持多显示器设置。让我们仔细看一下。
默认情况下,你可以根据你的 Linux 发行版上的桌面环境来设置壁纸
> HydraPaper 是一个令人印象深刻的壁纸管理器,适用于 Linux 用户,也支持多显示器设置。让我们仔细看一下
而且当试图在可用的选择中添加一个自定义的壁纸集文件夹时往往会受到限制。此外当涉及到多显示器设置时你无法在发行版中选择单独的壁纸。因此你需要去寻找一个图形用户界面GUI程序让你做到这一点。
一般而言,你要为你的 Linux 发行版上的每个桌面环境分别设置壁纸。
而且当试图将一个自定义的壁纸集文件夹添加到可选的壁纸范围时往往会受到限制。此外遇到多显示器环境时你无法在你的发行版中为其单独选择壁纸。因此你需要去寻找一个图形用户界面GUI程序来完成这些操作。
幸运的是,我偶然发现了一个让 Linux 用户印象深刻的选择,即 **HydraPaper**
### HydraPaper可以 CLI 访问的开源墙纸管理器
### HydraPaper带有 CLI 接口的开源墙纸管理器
![hydrapaper wallpaper manager][1]
@ -29,24 +30,23 @@ HydraPaper 是一个使用 Python 3 和 GTK 构建的相当有用的壁纸管理
![hydrapaper favorites][2]
它看起来是一个直接的解决方案,有一些简单的功能。让我提一下下面的主要亮点。
它看起来是一个直接的解决方案,有一些简单的功能。让我介绍一下如下的主要亮点。
### HydraPaper 的特点
![hydrapaper folders][3]
HydraPaper 让你添加你的自定义壁纸集,组织/选择你想要的文件夹,并方便地挑选壁纸。
HydraPaper 可以让你添加自定义壁纸集,组织/选择你想要的文件夹,并方便地挑选壁纸。
一些基本的特性包括:
* 管理文件夹集合(根据需要一键切换它们)。
* 挑选喜欢的壁纸,并将它们添加到你的最爱集合。
* 按照你的喜好定位墙纸(缩放,适合黑色背景/模糊,居中等)。
* 能够从你的收藏中快速设置一个随机壁纸,如果这是你决定的方式
* 按照你的喜好定位墙纸(缩放、适合黑色背景/模糊、居中等)。
* 能够从你的收藏中快速设置一个随机壁纸,如果你想这么做的话
* 用深色模式自定义壁纸管理器的体验,选择单独保存壁纸,清除缓存,等等。
* 支持 CLI。
* 单壁纸模式适用于多显示器。
* 单跨壁纸模式适用于多显示器。
![single span mode][4]
@ -58,7 +58,7 @@ HydraPaper 让你添加你的自定义壁纸集,组织/选择你想要的文
### 在 Linux 中安装 HydraPaper
你可以在 Flathub 上找到 HydraPaper 的 [Flatpak 包][6],它适合每一个 Linux 发行版。如果你是第一次设置对 Flatpak 的支持,你可以参考我们的 [Flatpak 指南][7]。
你可以在 Flathub 上找到 HydraPaper 的 [Flatpak 包][6],它适合各种 Linux 发行版。如果你是第一次设置对 Flatpak 的支持,你可以参考我们的 [Flatpak 指南][7]。
你也可以在 Arch Linux 发行版的 AUR、Fedora 的仓库,以及 Debianunstable中找到它。
@ -75,7 +75,7 @@ via: https://itsfoss.com/hydrapaper/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -3,29 +3,32 @@
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14624-1.html"
如何在 Fedora 36 Workstation 中启用最小化和最大化按钮
如何在 Fedora 36 工作站中启用最小化和最大化按钮
======
今天,我们将看到 Fedora 桌面的安装后步骤之一。这个简短的指南解释了如何在 Fedora GNOME Workstation 和 Silverblue 版本的应用窗口中启用最小化和最大化按钮。
![](https://img.linux.net.cn/data/attachment/album/202205/22/151018fjxtiidtrztri0rr.jpg)
> 今天,我们将看到 Fedora 桌面的安装后步骤之一。这个简短的指南解释了如何在 Fedora GNOME 工作站和 Silverblue 版本的应用窗口中启用最小化和最大化按钮。
### 介绍
你可能已经知道Fedora Silverblue 和 Fedora GNOME Workstation 版本的应用窗口中没有最小化和最大化按钮。
你可能已经知道Fedora Silverblue 和 Fedora GNOME 工作站版本的应用窗口中没有最小化和最大化按钮。
如果要最小化应用窗口,需要右键单击其标题栏并从上下文菜单中选择最小化选项。
不幸的是,你甚至无法在 Firefox 中使用鼠标获得该选项。要最小化 Firefox 窗口,你要点击**左 ALT+空格**键并选择最小化选项。
不幸的是,你甚至无法在 Firefox 中使用鼠标获得该选项。要最小化 Firefox 窗口,你要点击 `左 ALT+空格` 键并选择最小化选项。
我不知道隐藏最常用的按钮有什么好处。 Ubuntu GNOME 桌面有最小/最大按钮,但 Fedora 没有。
我不知道隐藏最常用的按钮有什么好处。Ubuntu GNOME 桌面有最小/最大按钮,但 Fedora 没有。
如果你想恢复 Fedora GNOME 和 Silverblue 版本中的最小化和最大化按钮,你可以借助 Fedora 中的 **Gnome Tweaks** 程序和 **Dash to Panel** 扩展来启用它们。
如果你想恢复 Fedora GNOME 和 Silverblue 版本中的最小化和最大化按钮,你可以借助 Fedora 中的 **Gnome Tweaks** 程序和 “Dash to Panel” 扩展来启用它们。
### 在 Fedora 中安装 Gnome Tweaks
**Gnome Tweaks**,以前称为 **Tweak Tool**,是用于高级 GNOME 3 设置的图形界面。它主要是为 GNOME Shell 设计的,但也可以在其他桌面中使用。如果你在不同的桌面上使用 Tweaks你可能无法拥有所有功能。它在 Fedora 的默认仓库中可用。因此,你可以使用 dnf 包管理器在 Fedora 上安装 Gnome Tweaks如下所示
**Gnome Tweaks**,以前称为 **Tweak Tool**,是用于高级 GNOME 3 设置的图形界面。它主要是为 GNOME Shell 设计的,但也可以在其他桌面中使用。如果你在不同的桌面上使用 Tweaks你可能无法拥有所有功能。它在 Fedora 的默认仓库中可用。因此,你可以使用 `dnf` 包管理器在 Fedora 上安装 Gnome Tweaks如下所示
```
$ sudo dnf install gnome-tweaks
@ -39,9 +42,9 @@ $ toolbox enter
然后按照前面的命令安装 Tweaks。
### 在浏览器中添加 Gnome Shell Integration 插件
### 在浏览器中添加 Gnome Shell 集成插件
确保你在浏览器中添加了 **“Gnome Shell Integration”** 插件。此扩展提供与 GNOME shell 和相应扩展仓库的集成。
确保你在浏览器中添加了 “Gnome Shell 集成” 插件。此扩展提供与 GNOME shell 和相应扩展仓库的集成。
如果你尚未添加它,请转到插件页并搜索并安装它。
@ -51,19 +54,19 @@ $ toolbox enter
### 在 Fedora 中启用 Dash 到面板扩展
**Dash to panel** 扩展是 Gnome Shell 的图标任务栏。此扩展将 dash 移动到 gnome 主面板中,以便将应用启动器和系统托盘组合到一个面板中,类似于 KDE Plasma 和 Windows 7 以上操作系统中的面板。
“Dash to panel” 扩展是 Gnome Shell 的图标任务栏。此扩展将 dash 移动到 GNOME 主面板中,以便将应用启动器和系统托盘组合到一个面板中,类似于 KDE Plasma 和 Windows 7 以上操作系统中的面板。
Dash to panel 扩展为你提供了一个永久可见的面板,其中包含最喜欢的快捷方式。因此,不再需要单独的 dock 来轻松访问正在运行和收藏的应用。
Dash to panel 扩展为你提供了一个永久可见的面板,其中包含最喜欢的快捷方式。因此,不再需要单独的停靠区来轻松访问正在运行和收藏的应用。
要启用 Dash to panel 扩展,请进入 **GNOME extensions** 站点并搜索 **“Dash to panel”** 扩展。
要启用 “Dash to panel” 扩展,请进入 GNOME 扩展站点并搜索 “Dash to panel” 扩展。
![Search for Dash to panel extension in Gnome extensions site][2]
单击搜索结果中的 Dash to panel 链接。你将被重定向到 Dash to panel 扩展的官方页面。点击 **ON** 按钮。
单击搜索结果中的 “Dash to panel” 链接。你将被重定向到 “Dash to panel” 扩展的官方页面。点击 “ON” 按钮。
![Enable Dash to panel extension][3]
在下一个窗口中,单击安装按钮以启用 Dash to panel 扩展。
在下一个窗口中,单击安装按钮以启用 Dash to panel 扩展。
![Install Dash to panel extension][4]
@ -71,21 +74,21 @@ Dash to panel 扩展为你提供了一个永久可见的面板,其中包含最
### 在 Fedora 中启用最小化和最大化按钮
打开 **Gnome Tweaks** 应用。进入 **Windows Tittlebars** 并打开最小/最大按钮。
打开 Gnome Tweaks 应用。进入 “<ruby>窗口标题栏<rt>Windows Titlebars</rt></ruby> 并打开最小/最大按钮。
![Enable minimize and maximize buttons in application windows in Fedora][5]
当你打开最小/最大按钮,最小化和最大化按钮将出现在所有应用的窗口中。
当你打开开关后,最小化和最大化按钮将出现在所有应用的窗口中。
![Minimize, maximize buttons appears in applications windows in Fedora][6]
默认情况下,最小/最大按钮在右侧可见。你可以将其位置更改为左侧或右侧。
Dash to panel 扩展有很多微调和自定义选项。右键单击 Dash 面板并选择设置选项,然后根据你的喜好开始对其进行自定义。
Dash to panel 扩展有很多微调和自定义选项。右键单击 Dash 面板并选择设置选项,然后根据你的喜好开始对其进行自定义。
**资源:**
### 资源
* [Dash to panel 网站][7]
> **[Dash to panel 网站][7]**
--------------------------------------------------------------------------------
@ -94,7 +97,7 @@ via: https://ostechnix.com/how-to-enable-minimize-and-maximize-buttons-in-fedora
作者:[sk][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,69 @@
[#]: subject: "Fudgie? The Awesome Budgie Desktop is Coming to Fedora Linux Soon"
[#]: via: "https://news.itsfoss.com/fudgie-fedora-budgie-announcement/"
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14610-1.html"
Fudgie令人惊叹的 Budgie 桌面即将登陆 Fedora Linux
======
> Fedora 用户也将能够享受 Budgie 桌面环境的现代体验。
![Fedora Budgie][1]
近来,红帽的社区项目 Fedora 已经获得了相当不错的用户群。除了默认桌面 GNOME 外Fedora 也以 <ruby>[Fedora 定制版][2]<rt>Fedora Spins</rt></ruby> 的形式提供了多种其他桌面环境。
这意味着你可以在 Fedora 上享受 KDE、MATE、Xfce 和其他一些桌面环境的开箱即用的体验,而无需额外的努力。喜欢 KDE 而不是 GNOME 吗?下载 Fedora 的 KDE 定制版,安装它,就像安装常规的 Fedora 一样。
Fedora 定制版中缺少的一个桌面环境是 Budgie 桌面。
### Budgie 走向独立
在 2014 年左右Budgie 桌面随同 Solus Linux 项目一起推出。最近Solus 和 Budgie 项目出现了一些 [倒退式的发展][3]。Budgie 项目现在已经 [从 Solus Linux 中独立出来了][4]。
自从首次发布以来Budgie 就获得了一定的追随者。它的现代布局方式受到了许多 Linux 用户的喜爱。这也是许多其他主要 Linux 发行版(如 Ubuntu、Manjaro、openSUSE开始提供 Budgie 版本的原因。
![Budgie 10.6][5]
到目前为止Fedora 的产品中还没有 Budgie但这可能会在 Fedora 的下一个版本中发生变化。
### Budgie 提交加入 Fedora 的申请
Budgie 项目的首席开发人员 Joshua Strobl 在 [Reddit 帖子][6] 中宣布了这一消息。
> 我现在已提交 Budgie 桌面及其它的附属软件Budgie 控制中心、Budgie 屏幕保护程序、Budgie 桌面视图)加入到 Fedora 中的申请。从 Fedora rawhide37开始并向后移植到 36。它会得到“官方的”维护/支持,因为我自己在工作笔记本电脑上使用 Fedora Silverblue + rawhide并且我以后会切换桌面到 Fedora Silverblue。
这意味着,如果该软件包得到了 Fedora 团队的批准,你应该就能在 Fedora 37 中(甚至有希望在 Fedora 36 中)安装 Budgie 和它的附属软件。
但这还不是故事的结束。Joshua 提到,他也在考虑引入并支持包含 Budgie 桌面的 Fedora 官方定制版。这意味着人们将能够下载一个预装了 Budgie而不是 GNOME桌面的 Fedora ISO。
目前还不清楚他的意思,有可能是一个 Budge 的 Fedora 官方定制版,也有可能是一个新的非官方的 Fedora 衍生版,名为 “Fudgie”完全由他来维护。
### Fedora + Budgie 是一个好消息
无论如何Fedora 的 Budgie 桌面都是个好消息。它为 Fedora 用户提供了更多选择,而 Budgie 是一个漂亮的桌面。同时喜欢 Fedora 和 Budgie 的人应该能够享受两全其美的体验。
我希望你同意我的看法。请在评论区也分享一下你的看法吧!
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/fudgie-fedora-budgie-announcement/
作者:[Abhishek][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/root/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/fedora-budgie.png
[2]: https://spins.fedoraproject.org
[3]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/
[4]: https://news.itsfoss.com/budgie-10-6-release/
[5]: https://news.itsfoss.com/wp-content/uploads/2022/04/budgie-10.61-1024x576.jpg
[6]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/

View File

@ -0,0 +1,110 @@
[#]: subject: "Adobe Illustrator Alternative Inkscape Releases Version 1.2"
[#]: via: "https://news.itsfoss.com/inkscape-1-2-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14615-1.html"
Adobe Illustrator 的替代品 Inkscape 发布了 1.2 版本
======
> Inkscape 1.2 是一个激动人心的更新,包含许多有用的改进和新增功能。试一试吧!
![Inkscape][1]
Inkscape 是一个流行的开源矢量图形处理程序,可用于 Linux、Windows 和 macOS。
它的最新版本侧重于改进现有工具,以及提供更多自定义选项。
此外,它还有一些新增功能。让我们来看看吧!
### Inkscape 1.2:有什么新功能?
![Inkscape 1.2 is here!][2]
Inkscape 1.2 是一个激动人心的更新,它包含了许多有用的增强功能。其中一些关键变化包括:
* 改进的渐变编辑器
* 新的捕捉模式
* 支持多页文档
* 改进的导出对话框
* 可定制的工具栏
在这里,我将重点介绍重要的功能改进:
#### 多页文档支持
![][4]
你现在可以在同一个文档中创建多个标准/自定义大小的页面,并把它们保存为一个多页的 PDF 文档。
不仅是导出,你还可以导入多页 PDF 来简化操作。
### 自定义调色板
你现在可以轻松地更改尺寸、重新配置颜色,以此来尝试所有可用的调色板,然后选择你真正喜欢的颜色。
特别是当你需要在用户界面中使用多个调色板时,它会让操作更流畅。
### 新的“平铺”实时路径效果
如果你正在处理很多个对象,并想尝试不同路径效果,那么你应该会喜欢新的平铺实时路径效果。
你可以轻松调整镜像模式、调整间隙、添加行和列,从而获得大量发挥创意的机会。
### 图层和对象对话框
![][5]
大多数改进使得体验比以前更直接。使用新的合并图层和对象对话框,你可以根据要查找的图层,快速组织/查找对象。
你甚至可以自定义图层和对象颜色来区分它们。
### 导出对话框
![][6]
现在,导出对话框为你提供了选择简单/批量导出的选项,以及选择文件格式和 DPI 设置的能力。
### 其他改进
除了上面的主要亮点外,还有其他的一些重大变化,包括:
* 两种新的画布捕捉模式有助于对齐对象
* 你可以在“<ruby>填充和描边<rt>Fill and Stroke</rt></ruby>”对话框中选择渐变
* 编辑<ruby>标记<rt>marker</rt></ruby>的能力
* 改进了与扩展的兼容性
* 更新了 SVG 字体编辑器
* 性能改进
* 可配置的工具栏
你可以参考 [Inkscape 1.2 发行说明][7] 来查看所有的技术变化。
### 下载 Inkscape 1.2
你可以从它的官方网站下载 AppImage 格式的 Inkscape 1.2 软件包,或查看其他适用于 Windows/macOS 平台的可用软件包。
> **[Inkscape 1.2][8]**
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/inkscape-1-2-release/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape-1-2.jpg
[2]: https://youtu.be/1U4hVbvRr_g
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape-1-2-multi-document.jpg
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape-1-2layers-objects-1024x593.jpg
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape1-2-export-1024x688.jpg
[7]: https://media.inkscape.org/media/doc/release_notes/1.2/Inkscape_1.2.html
[8]: https://inkscape.org/release/inkscape-1.2/

View File

@ -0,0 +1,115 @@
[#]: subject: "Kali Linux 2022.2 Release Adds an Amusing New Feature for the Hackers to Scare People"
[#]: via: "https://news.itsfoss.com/kali-linux-2022-2-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14606-1.html"
Kali Linux 2022.2 发布:增加了一个吓唬人的有趣新功能
======
> Kali Linux 2022.2 是今年的第二次更新,增加了一些有趣的内容。
![kali linux][1]
Kali Linux 不是你寻常使用的 Linux 发行版。它是专门为渗透测试和道德黑客学习及实验而量身打造的。
在新的 Kali Linux 版本中,增加了一些有趣的工具和功能。让我们来看看 Kali Linux 2022.2 的亮点。
### Kali Linux 2022.2 有什么新功能?
Kali Linux 2022.2 是一个有趣的版本,它引入了更新的桌面环境,升级了 Linux 内核,增加了新的工具,以及更多的改进。
不仅仅限于通常的完善,你还可以看到一个新的屏幕保护程序,其中有许多令人惊讶的元素。
#### 带有好莱坞怀旧色彩的新屏保
Kali Linux 已经出现在许多黑客相关的电视节目/电影(如《<ruby>黑客军团<rt>Mr. Robot</rt></ruby>》)中,看起来酷极了。
更进一步Kali Linux 增加了一个新的屏幕保护程序(你可以单独安装),其中有来自好莱坞的令人惊讶的元素和一些吓唬人的黑客场景。
他们在屏保中调侃了《黑客帝国》的尼奥,还添加了一个漂亮的 Kali Linux 标志。
![][2]
整个屏幕保护程序包括几个非常棒的元素。要安装并立即启动它,你可以输入以下命令:
```
sudo apt -y install kali-screensaver
sudo apt -y install hollywood-activate
hollywood-activate
```
![VIDEO](https://player.vimeo.com/video/710680907)
#### GNOME 42
![][3]
Kali Linux 终于包含了新的 [GNOME 42][4] 桌面环境。所以,在 Kali Linux 自然带有 GNOME 42 的所有优点,包括新的屏幕截图用户界面。
另外,现在你将会在 GNOME 桌面环境中获得一致的深浅主题体验。
![][5]
#### KDE Plasma 5.24
对于 KDE 粉丝Kali Linux 2022.2 也带来了新的 [KDE Plasma 5.24][6] LTS 桌面环境。
![][7]
#### 新的 Kali Linux 工具
新的工具总是每个新版本的重点。一些新增加的工具包括:
* BruteShark - 网络取证分析工具NFAT
* Evil-WinRM - Ultimate WinRM shell
* Hakrawler - 网络爬虫,设计用于轻松、快速发现端点和资产
* Httpx - 快速和多用途的 HTTP 工具箱
* Sparrow-wifi - 用于 Linux 的图形化 Wi-Fi 分析器
#### 其他改进
该版本还有许多其他实质性的改进。主要的亮点包括。
* 对终端进行了调整,以加强语法高亮、自动补完和输出
* 自动复制丢失的配置
* 支持 VirtualBox 共享文件夹
* 增加了新的应用程序图标
* 为多显示器设置调整了默认墙纸
* 针对 ARM 设备的更新
* Linux 内核 5.16
要探索更多关于该版本的信息,你可以查看 [官方发布公告][8]。
### 下载 Kali Linux 2022.2
你应该能够在 [官方下载页面][9] 中找到该镜像。根据你的要求选择合适的版本,然后安装它。
> **[Kali Linux 2022.2][10]**
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/kali-linux-2022-2-release/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[wxy](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-2022-2-release-new.jpg
[2]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-screensaver.jpg
[3]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-gnome-42.jpg
[4]: https://news.itsfoss.com/gnome-42-features/
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-gnome-42-screenshot.jpg
[6]: https://news.itsfoss.com/kde-plasma-5-24-lts-release/
[7]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-kde-5-24-1024x640.jpg
[8]: https://www.kali.org/blog/kali-linux-2022-2-release/
[9]: https://www.kali.org/get-kali/
[10]: https://www.kali.org/get-kali/

View File

@ -0,0 +1,126 @@
[#]: subject: "How To Enable Activate Linux Watermark Notification In Linux Desktop"
[#]: via: "https://ostechnix.com/activate-linux/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14617-1.html"
如何在 Linux 桌面中启用 “激活 Linux” 水印通知
======
![](https://img.linux.net.cn/data/attachment/album/202205/20/112226f7zmsvqqvt9tln9n.jpg)
> “激活 Windows” 水印已移植到 Linux。
为了阻止 Windows 操作系统的盗版行为,微软开发团队想出了一个办法:在 Windows 的角落放置一个激活水印,直到用户合法购买许可证并激活它。
如果你的电脑正在运行盗版的 Windows 副本,你应该已经注意到右下角的 “激活 Windows” 水印通知,如下图所示。
![“激活 Windows” 通知][1]
幸运的是Linux 用户永远不会收到这样的通知。因为 GNU/Linux 是一个完全免费的开源操作系统,在 GNU 通用公共许可证GPL下发布。
任何人都可以运行、研究、修改和重新分发 Linux 源代码,甚至可以出售修改后的代码的副本,只要使用相同的许可即可。
Linux 是开源的,所以你真的可以用 Linux 做任何你在专有操作系统上不能做的事情。
你可以在 Linux 中做很多事情。你可以在 Linux 下构建和运行*几乎*任何东西,无论是有趣的项目还是企业级应用程序。甚至,你还可以添加 “激活 Linux” 水印。
### “激活 Linux” 是什么?
几天前,我注意到了一个叫做 “激活 Linux” 的有趣项目。它和你在未经许可的 Windows 操作系统中看到的 “激活 Windows” 通知非常相似。
“激活 Linux” 的开发者使用 C 语言中的 Xlib 和 cairo重新创建了 Linux 版的 “激活 Windows” 通知水印。
它会在你的 Linux 桌面上显示一个水印,并通知你进入设置以激活你的 Linux 发行版!这很酷,不是吗?
### 启用 “激活 Linux” 水印
activate-linux 项目在短时间内变得非常流行。几天之内,它已经为许多流行的 Linux 发行版而打了包,例如 Arch Linux、openSUSE 和 Ubuntu。
#### Arch Linux
[AUR][2] 已经收录 activate-linux。因此你可以使用 [Paru][3] 或 [Yay][4] 在 Arch Linux 及其衍生版 EndeavourOS 和 Manjaro Linux 中安装 activate-linux 应用程序。
```
$ paru -S activate-linux
```
或者
```
$ yay -S activate-linux
```
#### openSUSE
[OBS][5] 收录了 Activate-linux。
如果你正在使用 openSUSE Tumbleweed 版本,请逐条运行下面的命令来安装 activate-linux
```
$ sudo zypper addrepo https://download.opensuse.org/repositories/home:WoMspace/openSUSE_Tumbleweed/home:WoMspace.repo
$ sudo zypper refresh
$ sudo zypper install activate-linux
```
对于 openSUSE Factory ARM 版,运行如下命令:
```
$ sudo zypper addrepo https://download.opensuse.org/repositories/home:WoMspace/openSUSE_Factory_ARM/home:WoMspace.repo
$ sudo zypper refresh
$ sudo zypper install activate-linux
```
#### Ubuntu
activate-linux 有一个适用于 Ubuntu 及其衍生版(如 Pop!_OS的 PPA。
```
$ sudo add-apt-repository ppa:edd/misc
$ sudo apt update
$ sudo apt install activate-linux
```
安装完成后,只需在终端执行下面的命令,就可以让它运行起来:
```
$ activate-linux
```
现在,你将在桌面的角落看到 “激活 Linux” 水印通知,就像在未授权的 Windows 副本中一样。
![桌面上的 “激活 Linux” 水印][6]
别紧张!它是无害的。若想取消显示,你可以返回终端并按 `CTRL+C` 终止 `activate-linux` 命令。
我在 Ubuntu 22.04 GNOME 版本上测试了一下。它在 Wayland 中开箱即用。
“激活 Linux” 是我这一段时间以来遇到的一个非常有趣又无用的项目。我想这会让每个刚从 Windows 切换过来的 Linux 用户,拥有更加舒适的体验吧!
### 相关资源
* [“激活 Linux” 的 GitHub 存储库][7]
--------------------------------------------------------------------------------
via: https://ostechnix.com/activate-linux/
作者:[sk][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/wp-content/uploads/2022/05/Activate-Windows-Notification.png
[2]: https://aur.archlinux.org/packages/activate-linux-git
[3]: https://ostechnix.com/how-to-install-paru-aur-helper-in-arch-linux/
[4]: https://ostechnix.com/yay-found-yet-another-reliable-aur-helper/
[5]: https://software.opensuse.org//download.html?project=home%3AWoMspace&package=activate-linux
[6]: https://ostechnix.com/wp-content/uploads/2022/05/Activate-Linux.png
[7]: https://github.com/MrGlockenspiel/activate-linux

View File

@ -1,68 +0,0 @@
[#]: subject: "Fudgie? The Awesome Budgie Desktop is Coming to Fedora Linux Soon"
[#]: via: "https://news.itsfoss.com/fudgie-fedora-budgie-announcement/"
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Fudgie? The Awesome Budgie Desktop is Coming to Fedora Linux Soon
======
Fedora users will also be able enjoy the modern experience of the Budgie desktop environment.
![Fedora Budgie][1]
In recent times, Red Hats community project, Fedora, has gained quite a decent userbase. While GNOME is the default choice of desktop here, Fedora also offers a variety of other desktop environments in the form of [Fedora Spins][2].
This means that you can enjoy an out of box experience of KDE, MATE, Xfce and a few other desktop environments with Fedora without additional effort. Do you prefer KDE instead of GNOME? Download the KDE spin of Fedora and install it like your regular Fedora installation.
The one desktop offering missing from Fedora Spins is Budgie desktop.
### Budgie going independent
The Budgie desktop was introduced with the Solus Linux project circa 2014. There has been some [regressional development with the Solus and Budgie project lately][3]. The [Budgie project is now independent of the Solus Linux][4].
Ever since its first release, Budgie garnered a niche following. Its modern layout approach is liked by many Linux users. This is the reason why many other major Linux distributions like Ubuntu, Manjaro, openSUSE started offering Budgie variants.
![Budgie 10.6][5]
Fedora hasnt had Budgie in its offering so far but that could be changing in the next release of Fedora.
### Budgie submitted for inclusion in Fedora
Joshua Strobl, the lead developer of the Budgie project, announced the news in a [Reddit post][6].
> I have now submitted Budgie Desktop and its microcosm of software (Budgie Control Center, Budgie Screensaver, Budgie Desktop View) for inclusion in Fedora, starting with rawhide (37) and backporting to 36. This will be maintained / supported “officially”, as I am using Fedora Silverblue + rawhide on my work laptop and will be switching my desktop over to Fedora Silverblue as well.
This means that if the package is approved by the Fedoras team, you should be able to install Budgie and some Budgie elements in Fedora 37 and hopefully in Fedora 36.
But thats not the end of the story. Joshua mentions that he is also considering to introduce and support an official Fedora Spin of Budgie desktop. Meaning people will be able to download an ISO of Fedora preloaded with Budgie desktop instead of GNOME.
Its not clear if he speaks of official Fedora Spin or a new unofficial Fedora variant named Fudgie, which is completely maintained by him.
### Fedora + Budgie is a good news
In any case, the Budgie desktop coming to Fedora is good news. It gives more options to the Fedora user and Budgie is a pretty sleet desktop. People who like both Fedora and Budgie should be able to enjoy the best of the both worlds.
I hope you agree with me. I let you share your view in the comment section.
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/fudgie-fedora-budgie-announcement/
作者:[Abhishek][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/root/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/fedora-budgie.png
[2]: https://spins.fedoraproject.org
[3]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/
[4]: https://news.itsfoss.com/budgie-10-6-release/
[5]: https://news.itsfoss.com/wp-content/uploads/2022/04/budgie-10.61-1024x576.jpg
[6]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/

View File

@ -1,112 +0,0 @@
[#]: subject: "Adobe Illustrator Alternative Inkscape Releases Version 1.2"
[#]: via: "https://news.itsfoss.com/inkscape-1-2-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Adobe Illustrator Alternative Inkscape Releases Version 1.2
======
Inkscape 1.2 is an exciting update with many useful improvements and feature additions. Take it for a spin!
![inkscape][1]
Inkscape is a popular open-source vector graphics program available for Linux, Windows, and macOS.
The latest release focuses on refinements to existing tools and more customization options.
There are also a couple of new additions to the application. Lets take a look.
### Inkscape 1.2: Whats New?
[<img src="https://i.ytimg.com/vi/1U4hVbvRr_g/hqdefault.jpg" alt="Inkscape 1.2 is here!">][2]
![][3]
Inkscape 1.2 is an exciting update with many useful enhancements. Some of the key changes include:
* Improved gradient editor
* New snapping modes
* Support for Multi-page documents
* Improved export dialog
* Customizable toolbar
Here, I shall highlight the important feature improvements:
#### Multi-Page Document Support
![][4]
You can now create standard/custom-size pages in the same document, and finalize them by saving them as a multi-page PDF.
Not the ability to export, but you can also import a multi-page PDF to make things easy.
### Customize Color Palette
Easily change the size, reconfigure the colors to explore the available color palettes, and select the one you really like.
It should make things quicker when you require working with several color palettes in the user interface.
### New Tiling Live Path Effect
If you are working with a large number of objects and want to explore path effects, the new tiling live path effect should be interesting.
You can easily tweak the mirroring mode, adjust the gap, add rows and columns, and get numerous opportunities to get creative.
### Layers and Object Dialog
![][5]
Most of the improvements make the experience more straightforward than it already was. With the new merged layers and object dialog, you can quickly organize/find objects per the layer youre looking for.
You can even customize the layer and object colors to differentiate them.
### Export Dialog
![][6]
The export dialog now provides you options to choose a simple/batch export along with the ability to pick a file format and DPI settings.
### Other Improvements
In addition to the key highlights, some of the significant changes include:
* Two new modes of on-canvas snapping help align objects.
* You can choose the gradients right within the Fill and Stroke dialog box.
* The ability to edit a marker.
* Improved compatibility with extensions.
* Updated SVG font editor.
* Performance improvements.
* Configurable toolbar.
You can refer to the [Inkscape 1.2 release notes][7] to explore all the technical changes.
### Download Inkscape 1.2
You can download Inkscape 1.2 as an AppImage from its official website or check other available packages for Windows/macOS platforms.
[Inkscape 1.2][8]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/inkscape-1-2-release/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape-1-2.jpg
[2]: https://youtu.be/1U4hVbvRr_g
[3]: https://youtu.be/1U4hVbvRr_g
[4]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape-1-2-multi-document.jpg
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape-1-2layers-objects-1024x593.jpg
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/inkscape1-2-export-1024x688.jpg
[7]: https://media.inkscape.org/media/doc/release_notes/1.2/Inkscape_1.2.html
[8]: https://inkscape.org/release/inkscape-1.2/

View File

@ -1,114 +0,0 @@
[#]: subject: "Kali Linux 2022.2 Release Adds an Amusing New Feature for the Hackers to Scare People"
[#]: via: "https://news.itsfoss.com/kali-linux-2022-2-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Kali Linux 2022.2 Release Adds an Amusing New Feature for the Hackers to Scare People
======
Kali Linux 2022.2 is the second update for this year with some fascinating additions.
![kali linux][1]
Kali Linux is not your usual Linux distribution. It is specially tailored for penetration testing and ethical hackers to learn/experiment.
We get interesting tools and feature additions with a new Kali Linux release. Let us take a look at the highlights for Kali Linux 2022.2.
### Kali Linux 2022.2: Whats New?
Kali Linux 2022.2 is an intriguing release introducing updated desktop environments, upgrading the Linux Kernel, adding new tools, and more improvements.
Not just limited to the usual refinements, you also get to see a new screensaver with many surprising elements.
#### The New Screensaver with Hollywood Nostalgia
Kali Linux has been featured in numerous TV Shows/Movies (like Mr. Robot) where they focus on hacking, considering it looks cool.
To take it up a notch, Kali Linux has added a new screensaver (that you can separately install), with surprising elements from Hollywood and some hacking scenes to scare away people.
They tease Matrixs Neo, and also add a beautiful Kali Linux logo in the screensaver.
![][2]
The entire screensaver includes several elements, which is awesome. To install and launch it immediately, you can type in the following commands:
```
sudo apt -y install kali-screensaver
sudo apt -y install hollywood-activate
hollywood-activate
```
In case, you just want the video for other platforms, you can download the video above (re-hosted from Kali Linuxs blog).
#### GNOME 42
![][3]
Kali Linux finally includes the new [GNOME 42][4] desktop environment. So, you should expect all the goodness of GNOME 42 with Kali Linux, including the new screenshot user interface.
Also, you will be getting a consistent dark/light theme experience now with the GNOME desktop environment.
![][5]
#### KDE Plasma 5.24
For KDE fans, Kali Linux 2022.2 brings in the new [KDE Plasma 5.24][6] LTS desktop environment.
![][7]
#### New Kali Linux Tools
The new tools are always the focus of every new release. Some of the new additions include:
* BruteShark  Network Forensic Analysis Tool (NFAT)
* Evil-WinRM  Ultimate WinRM shell
* Hakrawler  Web crawler designed for easy, quick discovery of endpoints and assets
* Httpx  Fast and multi-purpose HTTP toolkit
* Sparrow-wifi  Graphical Wi-Fi Analyzer for Linux
#### Other Improvements
There are many other substantial improvements with the release. The key highlights include:
* Tweaks for terminal to enhance syntax highlighting, autocompletion, and the output.
* Auomated copy of missing configurations
* VirtualBox shared folder support.
* Addition of new app icons.
* Default wallpaper tweaked for multi-monitor setups.
* Updates for ARM devices.
* Linux Kernel 5.16
To explore more about the release, you can check out the [official release announcement][8].
### Download Kali Linux 2022.2
You should be able to find the the image in the [official download page][9]. Choose the appropriate version as per your requirements and get it installed.
[Kali Linux 2022.2][10]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/kali-linux-2022-2-release/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-2022-2-release-new.jpg
[2]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-screensaver.jpg
[3]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-gnome-42.jpg
[4]: https://news.itsfoss.com/gnome-42-features/
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-gnome-42-screenshot.jpg
[6]: https://news.itsfoss.com/kde-plasma-5-24-lts-release/
[7]: https://news.itsfoss.com/wp-content/uploads/2022/05/kali-linux-kde-5-24-1024x640.jpg
[8]: https://www.kali.org/blog/kali-linux-2022-2-release/
[9]: https://www.kali.org/get-kali/
[10]: https://www.kali.org/get-kali/

View File

@ -0,0 +1,41 @@
[#]: subject: "Google To Start Distributing A Collection Of Open Source Software libraries"
[#]: via: "https://www.opensourceforu.com/2022/05/google-to-start-distributing-a-collection-of-open-source-software-libraries/"
[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
[#]: collector: "lkxed"
[#]: translator: "beamrolling"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Google To Start Distributing A Collection Of Open Source Software libraries
======
![][1]
On Tuesday, Google unveiled a new program aimed at safeguarding the open-source software supply chain by curating and delivering a security-vetted selection of open source packages to Google Cloud users. The business announced the new service, dubbed Assured Open Source Software, in a blog [post][2]. Andy Chang, Google Clouds group product manager for security and privacy, highlighted some of the problems of safeguarding open source software and emphasised Googles commitment to open source in his blog post.
“There has been an increasing awareness in the developer community, enterprises, and governments of software supply chain risks,” Chang wrote, citing last years major log4j vulnerability as an example. “Google continues to be one of the largest maintainers, contributors, and users of open source and is deeply involved in helping make the open source software ecosystem more secure.”
According to Google, the Assured Open Source Software service will give Cloud clients access to Googles substantial software auditing knowledge. According to Google, all open source packages made available through the service are also used internally by the corporation and are inspected and analysed for vulnerabilities on a regular basis.
A list of the 550 important open source libraries that Google is currently reviewing is available on [GitHub][3]. While these libraries may all be downloaded independently of Google, the Assured OSS program will see audited versions provided through Google Cloud, preventing developers from corrupting widely used open source libraries. This service is now in early access phase and will be ready for wider consumer testing in Q3 2022.
The Google statement is part of a broader industry effort to strengthen the security of the open source software supply chain, which has the support of the Biden administration. In January, representatives from the Department of Homeland Security and the Cybersecurity and Infrastructure Security Agency met with executives from some of the countrys major IT companies to examine open-source software security in the wake of the log4j bug. Since then, the corporations involved have pledged more than $30 million in financing to improve open source software security during a recent summit.
In addition to cash, Google is devoting engineering time to ensuring the supply chains security. The corporation has announced the development of a “Open Source Maintenance Crew” that will collaborate with library maintainers to improve security.
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/google-to-start-distributing-a-collection-of-open-source-software-libraries/
作者:[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/google3-1-e1652863988525.jpg
[2]: https://cloud.google.com/blog/products/identity-security/introducing-assured-open-source-software-service
[3]: https://github.com/google/oss-fuzz/tree/master/projects

View File

@ -0,0 +1,144 @@
[#]: subject: "ONLYOFFICE 7.1 Release Adds ARM Compatibility, a New PDF Viewer, and More Features"
[#]: via: "https://news.itsfoss.com/onlyoffice-7-1-release/"
[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
[#]: collector: "lkxed"
[#]: translator: "PeterPan0106"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
ONLYOFFICE 7.1 Release Adds ARM Compatibility, a New PDF Viewer, and More Features
======
ONLYOFFICE Docs 7.1 brings in much-awaited feature additions to its document, spreadsheet, and presentation programs. Supporting ARM devices is an icing on the cake!
![onlyoffice 7.1][1]
ONLYOFFICE, one of the [best open-source Microsoft Office alternatives][2], has just released its new upgrade, i.e., version 7.1.
If you didnt know, you can use ONLYOFFICE with online integration on your self-hosted server (like Nextcloud) or the desktop.
This release brings exciting new changes, notably initial support for ARM-based devices like the Raspberry Pi.
Lets take a look at whats new!
### ONLYOFFICE 7.1: Whats New?
[<img src="https://i.ytimg.com/vi/5-ervHAemZc/hqdefault.jpg" alt="ONLYOFFICE Docs 7.1: PDF viewer, animations, print preview in spreadsheets">][3]
![][4]
Alongside the headline feature of ARM support, ONLYOFFICE 7.1 has new feature additions on offer. These include:
* A brand-new PDF, XPS, and DjVu file viewer
* More convenient and customizable shape options
* Spreadsheets Print Preview
* Animations in Presentations
* SmartArt Object Support
#### ARM Compatibility
As ARM-based devices like the Raspberry Pi become more popular each year, many expected the support for ARM architecture by ONLYOFFICE for a while.
With the 7.1 release, ONLYOFFICE Docs 7.1 now runs on all ARM64 devices. Thanks to the increased efficiency and security of ARM devices, I suspect this will have a massive impact on the future of ONLYOFFICE.
#### Brand-new PDF, XPS, and DjVu file viewer
![onlyoffice][5]
This is a key feature that many other office programs have had for years. Starting with ONLYOFFICE 7.1, users can now use the document editor to view PDF, XPS, and DjVu files much more conveniently.
With the capability to open files on the client-side, the new view mode offers users a page thumbnails view and a navigation bar in a much more compact and simplified view.
Additionally, users can now also convert these PDF files to DOCX files so that you can edit them. As a result, people shouldnt need to go open multiple different apps to be able to work with the same file, which should help alleviate some major bottlenecks in workflows.
#### More convenient and customizable shape options
![onlyoffice][6]
Often under-used (I think), shapes are a great feature of modern office applications. Although ONLYOFFICE has had them for quite some time now, they have always been rather clunky to work with.
However, with ONLYOFFICE 7.1, this changes thanks to a redesigned shape selection menu. This new menu closely resembles its Microsoft Office equivalent, with each icon being visible from within the menu.
Additionally, it now shows the recently used shapes to make repetitive shape insertion easier.
The final improvement to shapes is the ability to edit them using your mouse. This should be quite familiar for those of you familiar with graphic design software like Inkscape. By simply dragging the points around, you can create a unique shape in almost no time!
#### Spreadsheets Print Preview
![][7]
Im sure everyone can relate to the frustration when a print fails due to a simple mistake. While other programs solved this problem a while ago, it has remained noticeably absent in the ONLYOFFICE spreadsheet editor.
Fortunately, this release looks to rectify this, thanks to the introduction of “Print Preview.”
To be honest, theres not a lot to say about this, just that it should save a lot of paper and printer frustrations.
#### New Animation Tab, Move Slides, and Duplicate Slide
![][8]
For those of you who make countless presentations with animations, a separate animation tab has been added with this release, making things easier.
ONLYOFFICE 7.1 presentation editor now supports a variety of animations along with the ability to move slides to the beginning/end of a presentation and duplicate a slide.
#### SmartArt Object Support
SmartArt is an easy way to make custom graphics in documents, presentations, and spreadsheets. However, it has always been a Microsoft Office-focused feature. Although various other applications have had varying levels of support for the format, they have never really been comparable to Microsoft Office.
Fortunately, ONLYOFFICE 7.1 now fully supports this format without any “hacks”, like what used to be required. Unlike the old process of converting the objects to a group of figures, Smart Art is now handled seamlessly and without problems.
### Other Changes
Other significant refinements in ONLYOFFICE 7.1 include:
* New interface languages Galician and Azerbaijani
* Ability to view a password while entering it in password-protected files
* Zoom options in OFORM files
* Ability to filter comments by groups of users
* Pyramid chart support
* Pyramid bar chart support
* Vertical and horizontal cylinder chart support
* Vertical and horizontal cone chart support
* Move and duplicate slide options in the context menu
* Formula tooltips
* New currency support
For a complete list of changes, I highly suggest you look at the [release notes][9].
### Download ONLYOFFICE 7.1
Overall, ONLYOFFICE 7.1 looks to be a great release with ARM compatibility and new features.
You should find the latest version available for all editions (Enterprise, Developer, Community).
Plenty of different packages are available, including Docker images for ARM editions, a Snap package, and 1-click app options for cloud providers. You can head to its download page and look for the appropriate installer.
The download page also mentions the official instructions to get it installed.
[Get ONLYOFFICE 7.1][10]
*Have you tried the new update yet?*
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/onlyoffice-7-1-release/
作者:[Jacob Crume][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://news.itsfoss.com/author/jacob/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/onlyoffice-7-1.jpg
[2]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/
[3]: https://youtu.be/5-ervHAemZc
[4]: https://youtu.be/5-ervHAemZc
[5]: https://news.itsfoss.com/wp-content/uploads/2022/05/ONLYOFFICE-viewer.png
[6]: https://news.itsfoss.com/wp-content/uploads/2022/05/ONLYOFFICE-shapes.png
[7]: https://news.itsfoss.com/wp-content/uploads/2022/05/ONLYOFFICE-Print-Preview.png
[8]: https://news.itsfoss.com/wp-content/uploads/2022/05/ONLYOFFICE-Animations.png
[9]: https://www.onlyoffice.com/blog/2022/05/discover-onlyoffice-docs-v7-1/
[10]: https://www.onlyoffice.com/download-docs.aspx

View File

@ -2,7 +2,7 @@
[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html"
[#]: author: "Two-Bit History https://twobithistory.org"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: translator: "yesimmia"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

View File

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

@ -0,0 +1,177 @@
[#]: subject: "Near zero marginal cost societies and the impact on why we work"
[#]: via: "https://opensource.com/open-organization/22/5/near-zero-marginal-cost-societies-and-impact-why-we-work"
[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Near zero marginal cost societies and the impact on why we work
======
As the IoT becomes our working and living environment, energy costs will come closer to zero and community collaboration will be critical.
![A network of people][1]
Image by: Opensource.com
I have read Jeremy Rifkin's book [The Zero Marginal Cost Society: The Internet of Things, the Collaborative Commons, and the Eclipse of Capitalism][2], which has a strong connection to open organization principles, particularly community building. Rifkin also writes about the future of green energy generation and energy use in logistics. This is the second of three articles in this series. In my previous article, I examined the Collaborative Commons. In this article, I look at its impact on energy production and supply.
Within the next 25 years, Rifkin believes most of our energy for home heating, running appliances, powering businesses, driving vehicles, and operating the whole economy will be nearly free with on-site power solar, wind and geothermal energy generation. This is starting already, through both individual and micropower plants. The payback is around two to eight years.
What would be the best organizational structure to manage nearly free green energy? Furthermore, through an intelligent communication and energy system, an organization could generate business anywhere in the world, and share energy across a continental energy internet. On top of that, it could produce and sell goods at a fraction charged by global manufacturing giants.
### The Internet of Things is on the way
According to Rifkin, the Internet of Things (IoT) will connect every machine, business, residence, and vehicle in an intelligent network that consists of not just a communications internet like now, but in the future an energy internet, and a logistics internet. They will all be embedded in a single operating system. Energy use will be completely monitored. Rifkin believes that within 10 years, many smart energy meters will be in use (by 2025). All this investment will reduce at least 10% of the waste in the current industrial system.
All this will be possible with the reduction of costs of sensors and actuators embedded in devices. Radio-frequency identification (RFID) chip prices have fallen by 40% in around 2012-2013. Micro-electromechanical system (MEMS), including gyroscopes, accelerometers, and pressure sensors, have also dropped by 80-90% in price over the past five years (up to 2015 when this book was published).
This will increase device connections, to as many as 1,000 connections on one person's devices, appliances, and facilities. This connection is what young people love, total inclusion in a global virtual public square to share everything. They thrive on transparency, collaboration, and inclusivity with care taken to an appropriate level of privacy. So, you can see, the time is right for the growth of a Collaborative Commons in society.
### Exponential curve
Question: Would you accept US $1,000,000 today or US $1.00 that doubled every day for 30 days? (In 30 days it will be US $536,870,912. That is 500 times more). In 31 days, over one billion. Exponential growth is deceptively fast. That is how fast costs are coming down according to Rifkin. This will turn the entire fossil fuel industry investments into stranded assets. We should be planning for the Collaborative Commons using all open organization principles now, as the situation will be ideal for them very soon.
### Next, a free energy internet
At this point in time there is free information for learning if you look for it. The next step is free energy (solar, wind, geothermal, biomass, hydro). After initial investments (research, development, deployment), Rifkin forecasts that unit costs will rapidly come down. The information internet and near zero-cost renewables will merge into the energy internet, powering homes, offices, and factories. Ideally, there will be energy that's loaded into buildings and partially stored in the form of hydrogen, distributed over a green-electricity internet, and connected to plug-in, zero-emission transportation. The development of renewable energy establishes a five pillar mechanism that will allow billions of people to share energy at near zero marginal cost in the IoT world
### Solar energy
If you start collecting energy from the sun, facilities only need to obtain 00.1% of the sun's energy that reaches the Earth. That would provide six times the energy we now use globally.
[SunPower Corporation][3] is one company doing that. It supports making homes energy producers. The price of solar photovoltaic (PV) cells tends to drop by 20% for every doubling of industry capacity. Solar panels are increasing, and their ability to capture more energy per panel is increasing. Expect to see the development of thinner solar panels, and paper thin solar sheets. Eventually there will be solar energy paint and solar energy windows in the future.
When too much energy is generated, it must be sold elsewhere or stored in batteries or used to produce hydrogen. This technology is coming to the market and will dominate it very soon. With these technologies alone, electricity is on the way to have zero marginal cost.
### Wind power generation
Wind power has been growing exponentially since the 1990s, and is now nearing fossil fuel and nuclear power generation levels (as of 2015). With the lowering costs of windmill production, installation, and maintenance, wind power is doubling every 2-½ years. With the increase of solar and wind energy sources, governments do not need to subsidize them with tariffs any longer.
[Energy Watch Group][4] is tracking this. According to Rifkin geothermal energy, biomass, and wave and tidal power will likely reach their own exponential takeoff stage within the next decade. He believes that all this will happen in the first half of the twenty-first century. If this capacity doubles eight more times, by 2028, 80% of all energy generation will be from these renewables.
### The collaborative age will soon be here
With all the above developments, society's working and living environment are changing. According to the [collaborative age][5]: "This means ensuring that people can collaborate on tasks without friction. That humans and machines work seamlessly together. And automation — machine to machine collaboration — will be crucial. Those businesses that get these elements right will be able to boost employee satisfaction and attract the best talent. They will reduce costs by automating mundane tasks and by requiring a smaller office footprint. The social impact-focused organizations that [Laura Hilliger][6] and [Heather Leson][7] write about how to take advantage of this new age.
### Making the transition
It sounds good, but how do businesses transition from the information age to the collaboration age? One area will be in decentralized production through 3D printing technology ([additive manufacturing][8], not cutting away and creating waste).
Instead of shipping goods, in the future, software will be shipped for many items to be manufactured locally, avoiding all shipping costs and making manufacturing become on-site near where the market need is. Locally, newly developed molten plastics, molten metal, or other feedstock inside a printer will be used for fabrication. This will give one 3D printer the ability to produce tens of thousands of products (like jewelry, airplane parts, and human prostheses).
### Centralized manufacturing vs local production which Rifkin projects will come
Rifkin believes lower marketing costs are possible by using the IoT economy and using global internet marketing sites at almost zero marginal cost.
1. There is little human involvement in the local 3D process (giving the name "infofacture" rather than manufacture. They ship the information required for local manufacturing, like downloading music today. It is just code that you receive.
2. The code for 3D printing is open source, so people can learn and improve designs, becoming further prosumers in a wide range of items (no intellectual-property protection barriers). This will lead to exponential growth over the next several decades, offering more complicated products at lower prices and near zero marginal cost.
3. There is great waste with subtraction processes (current manufacturing processes) producing great waste with each process. (1/10 the materials required. This material could be developed from subatomic particles that are available anywhere in the local environment, like recycled glass, fabrics, ceramics, and stainless steel. Composite-fiber concrete could be extruded form-free and be strong enough for building construction walls [probably available in two decades].)
4. 3D printing processes have fewer moving parts and less spare parts. Therefore, expensive retooling and changeover delays will be less extensive.
5. Materials will be more durable, recyclable, and less polluting.
6. Local distributed production, through IoT, will spread globally at an exponential rate with little shipping cost and less use of energy.
Rifkin cites Etsy as an example of this model. You can find things you are interested in, and have them produced locally using their network. They sell the code, and you can have it supplied in your area.
Rifkin feels that in the future, small and medium sized 3D businesses, infofacturing more sophisticated products, will likely cluster in local technology parks to establish an optimum lateral scale (another form of community development). Here are current examples:
1. [RepRap][9]: This is a manufacturing machine that can produce itself and all its parts.
2. [Thingiverse][10] The largest 3D printing community. They share under the General Public Licenses (GPL) and Creative Commons Licenses.
3. Fab Lab: Open source peer-to-peer learning in manufacturing. It is being provided to local, distant communities in developing countries.
4. 3D Printed automobiles ([Urbee vehicle][11]) is already being tested.
5. [KOR EcoLogic][12] has an urban electric vehicle.
### The makers' movement principles
Here are the principles that these ecosystems follow:
1. They use open source shared software.
2. They promote a collaborative learning culture.
3. They believe that it will build a self-sufficient community.
4. They are committed to sustainable production practices.
### The future of work and collaborative commons
When technology replaces workers, capital investments replace labor investments. In 2007, companies used 6 times more computers and software than 20 years before, doubling the amount of capital used per hour of employee work. The robot workforce is on the rise. China, India, Mexico, and other emerging nations are learning that the cheapest workers in the world are not as cheap, efficient, or productive as the information technology, robotics, and artificial intelligence that replaces them.
Going back to Rifkin, the first industrial revolution ended slave and serf labor. The second industrial revolution will dramatically shrink agricultural and craft labor. Rifkin believes the third industrial revolution will be a decline in mass wage labor in the manufacturing, service industries, and salaried professional labor in large parts of the knowledge sector.
Rifkin believes that an abundance, zero marginal cost economy, will change our notion of economic processes. He thinks the old paradigm of owners and workers, sellers and consumers will break down. Consumers will start producing for themselves (and a few others), eliminating their distinction. Prosumers will increasingly be able to produce, consume, and share their own goods and services with one another on the Collaborative Commons at diminishing marginal costs approaching zero, bringing to the fore new ways of organizing economic life beyond the traditional capitalist market mode.
Rifkin forecasts that in the future, greater importance will be placed on the Collaborative Commons and be as important as hard work was in the market economy (one's ability to cooperate and collaborate as opposed to just working hard). The amassing of social capital will become as valued as the accumulation of market capital. Attachment to community and the search for transcendence and meaning comes to define the measure of one's material wealth. All the [open organization principles][13] we write about will be exponentially more important in the future.
The IoT will free human beings from the capitalist market economy to pursue nonmaterial shared interests on the collaborative commons. Many — but not all — of our basic material needs will be met for nearly free in a near zero marginal cost society. It will be abundance over scarcity.
### Prosumer and the entry of the smart economy
Rifkin writes that as capitalist economies step aside in some global commodities, in the collaborative commons, sellers and buyers will give way to prosumers, property rights will make room for open source sharing, ownership will be less important than access, markets will be superseded by networks, and the marginal cost of supplying information, generating energy, manufacturing products, and teaching students will become nearly zero.
### Internet of energy is on the way
Financing of the IoT will not come from wealthy capitalists and corporate shareholders, but from hundreds of millions of consumers and taxpayers. No one owns the internet. It is only in operation because a set of agreed-upon protocols were established that allows computer networks to communicate with each other. It is a virtual public square for all who pay for a connection to use it. Next comes distributed renewable energies that will be distributed in the same way. Supported by feed-in tariffs and other fund-raising methods, governments will pay for the initial research, but after that fixed investment, the public will be able to connect and use it freely. Once underway, governmental centralized operations will move to distributed ownership. The [Electric Power Research Institute][14] (EPRI), is studying how to build a national energy internet over the next 20 years.
This is not just supplying electricity. Every device in every building will be equipped with sensors and software that connect to the IoT, feeding real-time information on electricity use to both the on-site prosumer and the rest of the network. The entire network will know how much electricity is being used by every appliance at any moment — thermostats, washing machines, dishwashers, televisions, hair dryers, toasters, ovens, and refrigerators.
This is not happening in the future, but now. It is not just being considered but being done now. [Intwine Energy][15] can supply the above process now. The issue is getting it into the greater global population. A group of young [social entrepreneurs][16] are now using social media to mobilize their peers to create, operate and use the energy internet.
### A new world of abundance beyond our needs
Rifkin thinks society has to start envisioning an entire different living environment. Imagine a world in which you can just give away things you once had to pay for, or had to sell at a profit. No one charges us for each internet connected phone call. He believes these give-away goods need not be covered by governments, like telecommunication, roads, bridges, public schools or hospitals. They need not be considered totally private property to be sold and bought, either. These goods have to be supplied in communities with rules, responsibilities and joint benefits (information, energy, local production, and online education). Not governed by the markets or governments, but by networked commons because of the [tragedy of the commons][17]. It governs and enforces distributed, peer-to-peer, laterally scaled economic activities.
Rifkin feels the Collaborative Commons as a governing body is extremely important. This is where local (project) leadership comes in. The goals, processes, tasks and responsibilities must be successfully executed, after they have been decided and agreed on. Furthermore, "social capital" is a major factor. It must be widely introduced and deepened in quality. Community exchange, interaction and contribution is far more important than selling to distant capital markets. If that is the case, our [open organization leadership][18] will be extremely important.
### The public square versus private ownership
"The public square at — least before the Internet, is where we communicate, socialize, revel in each other's company, establish communal bonds, and create social capital and trust. These are all indispensable elements for a nurturing community." Historically, Japanese villages were built like that to survive natural, economic and political disasters like earthquakes and typhoons. They put common interests over self-interests This is what the open organization principle of community is all about.
The right to be included, to have access to one another, which is the right to participate together, is a fundamental right of all. Private property, the right to enclose, own, and exclude is merely a qualified deviation from the norm. For some reason, having massive private property rights have gained in importance in more recent modern times. This will all be reversed in the years ahead according to Rifkin.
Rifkin writes that the world will move to these commons:
1. Public square commons
2. Land commons
3. Virtual commons
4. Knowledge commons (languages, cultures, human knowledge and wisdom)
5. Energy Commons
6. Electromagnetic spectrum commons
7. Ocean commons
8. Fresh water commons
9. Atmosphere commons
10. Biosphere commons.
The past 200 years of capitalism, the enclosed, privatized, and commodification of the market must be put under review. How would they be most effective in a transparent, non-hierarchical and collaborative culture? It comes down to two views, the capitalist (I own it. It is mine, and you can't use it) and the collaborationist (This is for everyone to use, and there are rules and guidelines to use it, so everyone can get their fair share). Today's cooperatives are good at this, like the [International Co-operative Alliance (ICA)][19]. Cooperatives have to generate motivation for the greater community good, and that motivation must be greater than any profit motive. That is their challenge but this not new, as one in seven people on the earth are in some kind of cooperative now.
As I've presented in this article, the IoT will become our working and living environment. Also, energy costs are projected to go to near zero. With those changes, community collaboration and cooperation will become ever more important over hard work. In the last part of this series I will look at Collaborative Commons in logistics and other economic activity.
--------------------------------------------------------------------------------
via: https://opensource.com/open-organization/22/5/near-zero-marginal-cost-societies-and-impact-why-we-work
作者:[Ron McFarland][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/ron-mcfarland
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/BUSINESS_networks.png
[2]: https://www.goodreads.com/book/show/18594514-the-zero-marginal-cost-society
[3]: https://us.sunpower.com
[4]: https://www.energywatchgroup.org
[5]: https://www.forbes.com/sites/ricoheurope/2020/02/06/moving-from-the-information-age-to-the-collaboration-age
[6]: http://www.zythepsary.com/author/admin
[7]: https://ch.linkedin.com/in/heatherleson
[8]: https://en.wikipedia.org/wiki/3D_printing
[9]: https://reprap.org/wiki/RepRap
[10]: https://www.thingiverse.com
[11]: https://www.popularmechanics.com/cars/a9645/urbee-2-the-3d-prinhttps://www.popularmechanics.com/cars/a9645/urbee-2-the-3d-printed-car-that-will-drive-across-the-country-16119485
[12]: https://phys.org/news/2013-02-kor-ecologic-urbee-car-d.html
[13]: https://theopenorganization.org/definition/open-organization-definition/
[14]: https://www.epri.com
[15]: https://www.intwineconnect.com
[16]: https://www.cleanweb.co
[17]: https://blogs.pugetsound.edu/econ/2018/03/09/comedy-of-the-commons
[18]: https://github.com/open-organization/open-org-leaders-manual/raw/master/second-edition/open_org_leaders_manual_2_3.pdf
[19]: https://www.ica.coop/en

View File

@ -0,0 +1,217 @@
[#]: subject: "3 ways to copy files in Go"
[#]: via: "https://opensource.com/article/18/6/copying-files-go"
[#]: author: "Mihalis Tsoukalos https://opensource.com/users/mtsouk"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
3 ways to copy files in Go
======
In the third article in this series about the Go programming language, learn the three most popular ways to copy a file.
![Periwinkle the Cat: A crowdsourced name][1]
Image by: Opensource.com
This article will show you how to copy a file in the [Go programming language][3]. Although there are more than three ways to copy a file in Go, this article will present the three most common ways: using the `io.Copy()` function call from the Go library; reading the input file all at once and writing it to another file; and copying the file in small chunks using a buffer.
### Method 1: Using io.Copy()
The first version of the utility will use the `io.Copy()` function of the standard Go library. The logic of the utility can be found in the implementation of the `copy()` function, which is as follows:
```
func copy(src, dst string) (int64, error) {
        sourceFileStat, err := os.Stat(src)
        if err != nil {
                return 0, err
        }
        if !sourceFileStat.Mode().IsRegular() {
                return 0, fmt.Errorf("%s is not a regular file", src)
        }
        source, err := os.Open(src)
        if err != nil {
                return 0, err
        }
        defer source.Close()
        destination, err := os.Create(dst)
        if err != nil {
                return 0, err
        }
        defer destination.Close()
        nBytes, err := io.Copy(destination, source)
        return nBytes, err
}
```
Apart from testing whether the file that will be copied exists (`os.Stat(src)` ) and is a regular file (`sourceFileStat.Mode().IsRegular()` ) so you can open it for reading, all the work is done by the `io.Copy(destination, source)` statement. The `io.Copy()` function returns the number of bytes copied and the first error message that happened during the copying process. In Go, if there is no error message, the value of the error variable will be `nil`.
You can learn more about the `io.Copy()` function at the [io package][4] documentation page.
Executing `cp1.go` will generate the next kind of output:
```
$ go run cp1.go
Please provide two command line arguments!
$ go run cp1.go fileCP.txt /tmp/fileCPCOPY
Copied 3826 bytes!
$ diff fileCP.txt /tmp/fileCPCOPY
```
This technique is as simple as possible but gives no flexibility to the developer, which is not always a bad thing. However, there are times that the developer needs or wants to decide how they want to read the file.
### Method 2: Using ioutil.WriteFile() and ioutil.ReadFile()
A second way to copy a file uses the `ioutil.ReadFile()` and `ioutil.WriteFile()` functions. The first function reads the contents of an entire file into a byte slice, and the second function writes the contents of a byte slice into a file.
The logic of the utility can be found in the following Go code:
```
input, err := ioutil.ReadFile(sourceFile)
        if err != nil {
                fmt.Println(err)
                return
        }
        err = ioutil.WriteFile(destinationFile, input, 0644)
        if err != nil {
                fmt.Println("Error creating", destinationFile)
                fmt.Println(err)
                return
        }
```
Apart from the two `if` blocks, which are part of the Go way of working, you can see that the functionality of the program is found in the `ioutil.ReadFile()` and `ioutil.WriteFile()` statements.
Executing `cp2.go` will generate the next kind of output:
```
$ go run cp2.go
Please provide two command line arguments!
$ go run cp2.go fileCP.txt /tmp/copyFileCP
$ diff fileCP.txt /tmp/copyFileCP
```
Please note that, although this technique will copy a file, it might not be efficient when you want to copy huge files because the byte slice returned by `ioutil.ReadFile()` will also be huge.
### Method 3: Using os.Read() and os.Write()
A third method of copying files in Go uses a `cp3.go`  utility that will be developed in this section. It accepts three parameters: the filename of the input file, the filename of the output file, and the size of the buffer.
The most important part of `cp3.go` resides in the following `for` loop, which can be found in the `copy() function:`
```
buf := make([]byte, BUFFERSIZE)
        for {
                n, err := source.Read(buf)
                if err != nil && err != io.EOF {
                        return err
                }
                if n == 0 {
                        break
                }
                if _, err := destination.Write(buf[:n]); err != nil {
                        return err
                }
        }
```
This technique uses `os.Read()` for reading small portions of the input file into a buffer named `buf` and `os.Write()` for writing the contents of that buffer to a file. The copying process stops when there is an error in reading or when you reach the end of the file (`io.EOF` ).
Executing `cp3.go` will generate the next kind of output:
```
$ go run cp3.go
usage: cp3 source destination BUFFERSIZE
$ go run cp3.go fileCP.txt /tmp/buf10 10
Copying fileCP.txt to /tmp/buf10
$ go run cp3.go fileCP.txt /tmp/buf20 20
Copying fileCP.txt to /tmp/buf20
```
As you will see, the size of the buffer greatly affects the performance of `cp3.go`.
### Doing some benchmarking
The last part of this article will try to compare the three programs as well as the performance of `cp3.go`  for various buffer sizes using the `time(1)` command line utility.
The following output shows the performance of `cp1.go`, `cp2.go`, and `cp3.go` when copying a 500MB file:
```
$ ls -l INPUT
-rw-r--r--  1 mtsouk  staff  512000000 Jun  5 09:39 INPUT
$ time go run cp1.go INPUT /tmp/cp1
Copied 512000000 bytes!
real    0m0.980s
user    0m0.219s
sys     0m0.719s
$ time go run cp2.go INPUT /tmp/cp2
real    0m1.139s
user    0m0.196s
sys     0m0.654s
$ time go run cp3.go INPUT /tmp/cp3 1000000
Copying INPUT to /tmp/cp3
real    0m1.025s
user    0m0.195s
sys     0m0.486s
```
The output shows that the performance of all three utilities is pretty similar, which means that the functions of the standard Go library are quite clever and optimized.
Now, let's test how the buffer size affects the performance of `cp3.go`. Executing `cp3.go` with a buffer size of 10, 20, and 1,000 bytes to copy a 500MB file on a pretty fast machine will generate the following results:
```
$ ls -l INPUT
-rw-r--r--  1 mtsouk  staff  512000000 Jun  5 09:39 INPUT
$ time go run cp3.go INPUT /tmp/buf10 10
Copying INPUT to /tmp/buf10
real    6m39.721s
user    1m18.457s
sys         5m19.186s
$ time go run cp3.go INPUT /tmp/buf20 20
Copying INPUT to /tmp/buf20
real    3m20.819s
user    0m39.444s
sys         2m40.380s
$ time go run cp3.go INPUT /tmp/buf1000 1000
Copying INPUT to /tmp/buf1000
real    0m4.916s
user    0m1.001s
sys     0m3.986s
```
The generated output shows that the bigger the buffer, the faster the performance of the `cp3.go` utility, which is more or less expected. Moreover, using buffer sizes smaller than 20 bytes for copying big files is a very slow process and should be avoided.
You can find the Go code of `cp1.go`, `cp2.go`, and `cp3.go` at [GitHub][5].
If you have any questions or feedback, please leave a comment below or reach out to me on [Twitter][6].
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/6/copying-files-go
作者:[Mihalis Tsoukalos][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/mtsouk
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/LIFE_cat.png
[3]: https://golang.org/
[4]: https://golang.org/pkg/io/
[5]: https://github.com/mactsouk/opensource.com
[6]: https://twitter.com/mactsouk

View File

@ -0,0 +1,207 @@
[#]: subject: "An introduction to Go arrays and slices"
[#]: via: "https://opensource.com/article/18/7/introduction-go-arrays-and-slices"
[#]: author: "Mihalis Tsoukalos https://opensource.com/users/mtsouk"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
An introduction to Go arrays and slices
======
Learn the pros and cons of storing data in Go using arrays and slices and why one is usually better than the other.
![Testing certificate chains with a 34-line Go program][1]
Image by: carrotmadman6. Modified by Opensource.com. CC BY-SA 2.0
In this fourth article in the series, I will explain [Go][5] arrays and slices, how to use them, and why you'll usually want to choose one over the other.
### Arrays
Arrays are one of the most popular data structures among programming languages for two main reasons: They are simple and easy to understand, and they can store many different kinds of data.
You can declare a Go array named `anArray` that stores four integers with the following:
```
anArray := [4]int{-1, 2, 0, -4}
```
The array's size should be stated before its type, which should be defined before its elements. The `len()` function can help you find the length of any array. The size of the array above is 4.
If you are familiar with other programming languages, you might try to access all the elements of an array using a `for` loop. However, as you will see below, Go's `range` keyword allows you to access all the elements of an array or a slice in a more elegant way.
Last, here is how you can define an array with two dimensions:
```
twoD := [3][3]int{
    {1, 2, 3},
    {6, 7, 8},
    {10, 11, 12}}
```
The `arrays.go` source file explains the use of Go arrays. The most important code in `arrays.go` is:
```
for i := 0; i < len(twoD); i++ {
        k := twoD[i]
        for j := 0; j < len(k); j++ {
                fmt.Print(k[j], " ")
        }
        fmt.Println()
}
for _, a := range twoD {
        for _, j := range a {
                fmt.Print(j, " ")
        }
        fmt.Println()
}
```
This shows how you can iterate over the elements of an array using a `for` loop and the `range` keyword. The rest of the code of `arrays.go` shows how to pass an array into a function as a parameter.
Following is the output of `arrays.go` :
```
$ go run arrays.go
Before change(): [-1 2 0 -4]
After change(): [-1 2 0 -4]
1 2 3
6 7 8
10 11 12
1 2 3
6 7 8
10 11 12
```
This output demonstrates that the changes you make to an array inside a function are lost after the function exits.
### Disadvantages of arrays
Go arrays have many disadvantages that will make you reconsider using them in your Go projects. First, you can't change the size of an array after you define it, which means Go arrays are not dynamic. Putting it simply, if you need to add an element to an array that doesn't have any space left, you will need to create a bigger array and copy all the elements of the old array to the new one. Second, when you pass an array to a function as a parameter, you actually pass a copy of the array, which means any changes you make to an array inside a function will be lost after the function exits. Last, passing a large array to a function can be pretty slow, mostly because Go has to create a copy of the array.
The solution to all these problems is to use Go slices.
### Slices
A Go slice is similar to a Go array without the shortcomings. First, you can add an element to an existing slice using the `append()` function. Moreover, Go slices are implemented internally using arrays, which means Go uses an underlying array for each slice.
Slices have a *capacity* property and a *length* property, which are not always the same. The length of a slice is the same as the length of an array with the same number of elements, and it can be found using the `len()` function. The capacity of a slice is the room that has currently been allocated for the slice, and it can be found with the `cap()` function.
As slices are dynamic in size, if a slice runs out of room (which means the current length of the array is the same as its capacity while you are trying to add another element to the array), Go automatically doubles its current capacity to make room for more elements and adds the requested element to the array.
Additionally, slices are passed by reference to functions, which means what is actually passed to a function is the memory address of the slice variable, and any modifications you make to a slice inside a function won't get lost after the function exits. As a result, passing a big slice to a function is significantly faster than passing an array with the same number of elements to the same function. This is because Go will not have to make a copy of the slice—it will just pass the memory address of the slice variable.
Go slices are illustrated in `slice.go`, which contains the following code:
```
package main
import (
        "fmt"
)
func negative(x []int) {
        for i, k := range x {
                x[i] = -k
        }
}
func printSlice(x []int) {
        for _, number := range x {
                fmt.Printf("%d ", number)
        }
        fmt.Println()
}
func main() {
        s := []int{0, 14, 5, 0, 7, 19}
        printSlice(s)
        negative(s)
        printSlice(s)
        fmt.Printf("Before. Cap: %d, length: %d\n", cap(s), len(s))
        s = append(s, -100)
        fmt.Printf("After. Cap: %d, length: %d\n", cap(s), len(s))
        printSlice(s)
        anotherSlice := make([]int, 4)
        fmt.Printf("A new slice with 4 elements: ")
        printSlice(anotherSlice)
}
```
The biggest difference between a slice definition and an array definition is that you do not need to specify the size of the slice, which is determined by the number of elements you want to put in it. Additionally, the `append()` function allows you to add an element to an existing slice—notice that even if the capacity of a slice allows you to add an element to that slice, its length will not be modified unless you call `append()`. The `printSlice()` function is a helper function used for printing the elements of its slice parameter, whereas the `negative()` function processes all the elements of its slice parameter.
The output of `slice.go` is:
```
$ go run slice.go
0 14 5 0 7 19
0 -14 -5 0 -7 -19
Before. Cap: 6, length: 6
After. Cap: 12, length: 7
0 -14 -5 0 -7 -19 -100
A new slice with 4 elements: 0 0 0 0
```
Please note that when you create a new slice and allocate memory space for a given number of elements, Go will automatically initialize all the elements to the zero value of its type, which in this case is 0.
### Referencing arrays with slices
Go allows you to reference an existing array with a slice using the `[:]` notation. In that case, any changes you make into a slice's function will be propagated to the array—this is illustrated in `refArray.go`. Please remember that the `[:]` notation does not create a copy of the array, just a reference to it.
The most interesting part of `refArray.go` is:
```
func main() {
        anArray := [5]int{-1, 2, -3, 4, -5}
        refAnArray := anArray[:]
        fmt.Println("Array:", anArray)
        printSlice(refAnArray)
        negative(refAnArray)
        fmt.Println("Array:", anArray)
}
```
The output of `refArray.go` is:
```
$ go run refArray.go
Array: [-1 2 -3 4 -5]
-1 2 -3 4 -5
Array: [1 -2 3 -4 5]
```
So, the elements of the `anArray` array changed because of the slice reference to it.
### Summary
Although Go supports both arrays and slices, it should be clear by now that you will most likely use slices because they are more versatile and powerful than Go arrays. There are only a few occasions where you will need to use an array instead of a slice. The most obvious one is when you are absolutely sure that you will need to store a fixed number of elements.
You can find the Go code of `arrays.go`, `slice.go`, and `refArray.go` at [GitHub][6].
If you have any questions or feedback, please leave a comment below or reach out to me on [Twitter][7].
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/7/introduction-go-arrays-and-slices
作者:[Mihalis Tsoukalos][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/mtsouk
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/traffic-light-go.png
[2]: https://opensource.com/article/18/5/creating-random-secure-passwords-go
[3]: https://opensource.com/article/18/5/building-concurrent-tcp-server-go
[4]: https://opensource.com/article/18/6/copying-files-go
[5]: https://golang.org/
[6]: https://github.com/mactsouk/opensource.com
[7]: https://twitter.com/mactsouk

View File

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

View File

@ -1,108 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (15 favorite programming tutorials and insights)
[#]: via: (https://opensource.com/article/21/1/best-programming)
[#]: author: (Bryant Son https://opensource.com/users/brson)
15 favorite programming tutorials and insights
======
Whether you're new to programming or want to improve your existing
skills, there is an article in this list to help you. Take a look at
some of the best programming articles of 2020.
![Learning and studying technology is the key to success][1]
Happy new year! 2020 was one heck of an unusual year with the COVID-19 pandemic pushing us to stay at home and dramatically transforming our lifestyles. However, a time like this is also the best time to start picking up a new programming language or to level up your existing programming skillset. We begin with some light reading: **What is your first programming language?** and **Why developers like to code at night**. Next, we have articles about some specific programming languages like **C**, **D**, and **Awk**. Last, we provide some advanced programming language contents like **Real-Time Operating System (RTOS)**, **WebAssembly**, and **sharing data between C and Python**.
## [What was your first programming language?][2]
Chances are, not everyone remembers the very first thing they ate after they were born, but many programmers most likely recall their very first programming language. In this article, Opensource.com editor Lauren Pritchett took a survey asking the community this question. Go down your own memory lane by reading the responses to this question by other developers.
## [Why developers like to code at night][3]
Ever wonder why so many programmers stay late to crank out the lines of code that may turn into the next Google, Facebook, or Netflix? Quite surprisingly, many psychological studies exist that explain the productivity behind this common routine. Learn about it by reading this article by Matt Shealy.
## [Why I use open source technology for web development][4]
The Internet has been the driving force behind the popularity of open source programming, tools, and frameworks. But how can we explain this trend, and what are key characteristics of the web that inspire developers to continuously endorse open source technologies? See why Jim Hall believes that open source is the right way to build web applications.
## [5 steps to learn any programming language][5]
Learning a programming language may feel like a daunting task, but the process can be much easier with the right approach. Just as memorizing vocabulary and using correct grammar matter for learning a new spoken language, understanding syntax, functions, and data types matters for new programming languages. Learn about five steps you can apply when you decide to learn a new programming language.
## [An introduction to writing your own HTML web pages][6]
**Hypertext Markup Language (HTML)** is not a programming language, but it is the backbone behind the Internet as billions of people visit webpages built with HTML every day. HTML, interpreted by web browsers, is a markup language that anyone can easily learn with a few simple practices. Read how you can start writing your first web page by reading this article!
## [Learn the basics of programming with C][7]
Who says **C** programming is dead? **C** is still the father of many existing programming languages, libraries, and tools today, and industries have recently noticed the **C** programming language's rejuvenation. Its job demand has also exploded with AR/VR and the growth of the gaming industry. However, learning **C** programming is quite challenging. Get a jump start on your journey learning **C** programming by reading this article by Seth Kenlon.
## [What I learned while teaching C programming on YouTube][8]
There are many resources to learn programming languages, but the best result comes if one plans well, executes well, and makes the learning applicable. Most importantly, you need to have a passion for learning. See what Jim Hall learned by teaching the C programming language through his YouTube channel.
## [The feature that makes D my favorite programming language][8]
What comes after C? Yes, it is the letter D, and there is a programming language called **D** as well. Although it is not the most well-known programming language, **D** has features like _Universal Function Call Syntax (UFCS)_ that make it quite an interesting language to learn. Lawrence Aberba explains the feature and how you can use it, too.
## [The surprising thing you can do in the D programming language][9]
In another article, Lawrence talks about _nesting_ support in **D**, a feature that makes it stand out among other programming languages. Read what it is and explore how **D** delivers nesting functionality.
## [A practical guide to learning awk][10]
**Awk** is a programming language that is probably strange to many people, but learning **awk** can give you power that really shines in day-to-day Linux operations. By reading this article, you can learn how **awk** parses input and how functions are structured.
## [How to write a VS Code extension][11]
**Visual Studio Code (VS Code)** is an extremely popular cross-platform code editor created by Microsoft, and it is an open source project based on an MIT license. One of the great things about the editor is its extensibility through **VS Code extensions**. You don't have to be a rocket scientist to build your first extension! After reading this article, you will be on the path to becoming a VS Code extension master.
## [Customizing my open source PHP framework for web development][12]
**PHP** is often a neglected programming language hated by some programmer groups for a few reasons, such as it is very easy to produce bad code. However, Facebook, Wikipedia, Tumblr, and many websites were originally built with **PHP**, and it is still one of the most popular web programming languages out there. See how Wee Ben Sen used **PHP** framework **CodeIgniter** to create high-performance websites for numerous occasions and learn its key benefits.
## [Code your hardware using this open source RTOS][13]
**RTOS** stands for **Real-Time Operating System**. It is an open source operating system optimized for embedded hardware like CPUs and computer chips. By taking advantage of **RTOS**, a project can benefit from concurrency, modularity, and real-time scheduling. This article explains **RTOS** and the numerous benefits associated with this open source operating system.
## [Why everyone is talking about WebAssembly][14]
**WebAssembly** is a new type of code that runs in modern web browsers. It is a low-level assembly-like language with a compact binary format. **WebAssembly** runs with near-native performance and provides languages such as C/C++, C#, and Rust with a compilation target so that they can run on the web. **WebAssembly** has gained huge traction in the past few years due to the ever-growing popularity of JavaScript. Follow the history behind **WebAssembly** and learn what makes it so popular today.
## [Share data between C and Python with this messaging library][15]
Sharing data between two distinct programming languages may sound like a super challenging task. However, leveraging an open source tool like **ZeroMQ**, you can easily create a messaging interface that transmits the data across different layers. Learn how you can make one by reading this article.
As you can see, whether you are new to programming languages or want to grow your career further, there are learning opportunities for everyone. Let me know what you think by leaving a comment here.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/best-programming
作者:[Bryant Son][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/brson
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/studying-books-java-couch-education.png?itok=C9gasCXr (Learning and studying technology is the key to success)
[2]: https://opensource.com/article/20/8/first-programming-language
[3]: https://opensource.com/article/20/2/why-developers-code-night
[4]: https://opensource.com/article/20/4/open-source-web-development
[5]: https://opensource.com/article/20/10/learn-any-programming-language
[6]: https://opensource.com/article/20/4/build-websites
[7]: https://opensource.com/article/20/8/c-programming-cheat-sheet
[8]: https://opensource.com/article/20/7/d-programming
[9]: https://opensource.com/article/20/8/nesting-d
[10]: https://opensource.com/article/20/9/awk-ebook
[11]: https://opensource.com/article/20/6/vs-code-extension
[12]: https://opensource.com/article/20/5/codeigniter
[13]: https://opensource.com/article/20/6/open-source-rtos
[14]: https://opensource.com/article/20/1/webassembly
[15]: https://opensource.com/article/20/3/zeromq-c-python

View File

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

View File

@ -1,132 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (4 DevOps books to read this year)
[#]: via: (https://opensource.com/article/21/1/devops-books)
[#]: author: (Taz Brown https://opensource.com/users/heronthecli)
4 DevOps books to read this year
======
Curl up with a good book about DevOps this winter.
![Reading a book, selfcare][1]
We have just entered 2021, and DevOps will become much more relevant. It is smack dab in the spotlight given that the world is experiencing a pandemic and businesses are fighting to stay digitally relevant and competitive.
DevOps has actually has evolved quite nicely, like a fine wine. Here is why. There will be an increased focus on the human side of DevOps. It will be more about people and processes. I argue that DevOps will be reinvigorated. There will be less focus on the tools, automation, and orchestration and more about communication, collaboration, and a collective effort to remove bottlenecks and deliver the right results as efficiently as possible.
There will even be a push to BizDevOps where development, ops, and business will come together to improve quality so defects and deficiencies are mitigated, business agility, focus on businesses becoming more agile, leaner. DevOps is expanding into areas like AI, machine learning, embedded systems, and big data.
So DevOps is not going anywhere anytime soon. It will reinvent itself though.
Given the insurgence of COVID19, businesses will be highly dependent on their DevOps teams, expecting them to take their digital services into hyperdrive over the next year and likely beyond 2021. 
![DevOps books][2]
(Tonya Brown, [CC BY-SA 4.0][3])
The books are listed in the order I think you should read them. I share a little bit about each book, but I don't intend to give the book away or do the reading for you. I hope you enjoy the experience of reading these books and decide for yourself whether they were valuable to you. And after you do, please come back and let me know what you think in the comments.
### 1\. The DevOps Handbook
![DevOps Handbook cover][4]
_[The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations][5]_ is considered the DevOps bible. It is written by Gene Kim, Jez Humble, Patrick Debois, and John Willis, and these great authors talk about the importance of integrating DevOps into organizations. The book describes how all types of organizations can employ DevOps and why it can help them gain a competitive advantage from an IT perspective.
The book talks about the core benefits of DevOps. It offers practical applications about how to adopt DevOps, including case studies about companies that have done it, then really dives into some of its principles and breaks down the practical understanding. Finally, you can take the principles, case studies, and examples, look at your current environment, and figure out the best ways to implement DevOps in your organization.
By reading this book, you will learn:
* DevOps culture landscape
* Value stream mapping in DevOps
* Continuous integration and continuous delivery (CI/CD) pipelines
* Principles of flow and rapid feedback
* DevOps KPIs and metrics
### 2\. The Phoenix Project
![The Phoenix Project cover][6]
_[The Phoenix Project][7]_, by Gene Kim, Kevin Behr, and George Spafford, is a novel about a fictional company and its fictional employees that explains what DevOps really is. It is written in the same style as _[The Goal: A Process of Ongoing Improvement][8]_ by Eliyahu M. Goldratt.
_The Phoenix Project_ follows Bill, who was recently promoted into the role of VP at Parts Unlimited. He is assigned to turn around the company, which is in major trouble. Nothing is working, including the payment system. Bill is expected to come in and fix all of the company's problems.
Bill starts identifying the issues and implementing solutions. As time goes on, those solutions turn out to be DevOps.
In summary, the book:
* Teaches a lesson in a novel form
* Allows you to see problems without blame
* Helps explain the core principles of DevOps
### 3\. Continuous Delivery
![Continuous Delivery cover][9]
The third book to read, _[Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation][10]_, is by Jez Humble and David Farley. It goes through the entire CI/CD pipeline and issues where you are trying to connect A to B, B to C, C to D. It provides practical tips and strategies on overcoming obstacles and fixing issues.
The book discusses infrastructure management, virtualization, test, and deployment. It also gets into how to integrate and move things along effectively without problems when optimizing your environment.
Jez and David definitely get granular in the details. They get down to the nuts and bolts of getting software to users using agile methodologies and best practices. They also speak to establishing better collaboration among developers, testers, and operations.
### 4\. Effective DevOps
![Effective DevOps cover][11]
The fourth book to read is _[Effective DevOps: Building A Culture of Collaboration, Affinity, and Tooling at Scale][12]_ by Jennifer Davis &amp; Ryn Daniels.
DevOps is a state of mind. This book gets into DevOps culture: from empathy, to breaking down silos, to how people choose to act with and among each other, and how people work together to implement change and create great results. The book talks about strategies to accomplish these and especially about getting buy-in from leadership.
Here is what you will learn by reading this book:
* Essential and advanced practices to create CI/CD pipelines
* How to reduce risks, mitigate deployment errors, and increase delivery speed
* Templates and scripts to automate your build and deployment procedures
### Final thoughts
Read these four books. You won't regret it! And when you're finished, move on to these honorable mentions.
* _[The Unicorn Project][13]_ by Gene Kim
* _[The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services][14]_ by Thomas Limoncelli, Strata Chalup, and Christina Hogan
* _[Site Reliability Engineering][15]_ by Betsy Beyer, Niall Richards, David Rensin, Ken Kawahara, and Stephen Thorne
* _[Python for DevOps: Learn Ruthlessly Effective Automation][16]_ by Noah Gift, Kennedy Behrman, Alfredo Deza, and Grig Gheorghiu
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/1/devops-books
作者:[Taz Brown][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/heronthecli
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/reading_book_selfcare_wfh_learning_education_520.png?itok=H6satV2u (Reading a book, selfcare)
[2]: https://opensource.com/sites/default/files/uploads/devopsbooks.jpg (DevOps books)
[3]: https://creativecommons.org/licenses/by-sa/4.0/
[4]: https://opensource.com/sites/default/files/uploads/devopshandbook.jpg (DevOps Handbook cover)
[5]: https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002
[6]: https://opensource.com/sites/default/files/uploads/phoenixproject.jpg (The Phoenix Project cover)
[7]: https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/1942788290
[8]: https://en.wikipedia.org/wiki/The_Goal_(novel)
[9]: https://opensource.com/sites/default/files/uploads/continuousdelivery.jpg (Continuous Delivery cover)
[10]: https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912
[11]: https://opensource.com/sites/default/files/uploads/effectivedevops.jpg (Effective DevOps cover)
[12]: https://www.amazon.com/Effective-DevOps-Building-Collaboration-Affinity/dp/1491926309
[13]: https://www.amazon.com/Unicorn-Project-Developers-Disruption-Thriving/dp/1942788762
[14]: https://www.amazon.com/Practice-Cloud-System-Administration-Practices/dp/032194318X
[15]: https://www.amazon.com/Site-Reliability-Engineering-Production-Systems/dp/149192912X
[16]: https://www.amazon.com/Python-DevOps-Ruthlessly-Effective-Automation/dp/149205769X

View File

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

View File

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

View File

@ -1,182 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (31 open source text editors you need to try)
[#]: via: (https://opensource.com/article/21/2/open-source-text-editors)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
31 open source text editors you need to try
======
Looking for a new text editor? Here are 31 options to consider.
![open source button on keyboard][1]
Computers are text-based, so the more things you do with them, the more you find yourself needing a text-editing application. And the more time you spend in a text editor, the more likely you are to demand more from whatever you use.
If you're looking for a good text editor, you'll find that Linux has plenty to offer. Whether you want to work in the terminal, on your desktop, or in the cloud, you can literally try a different editor every day for a month (or one a month for almost three years) in your relentless search for the perfect typing experience.
### Vim-like editors
![][2]
* [Vi][3] ships with every Linux, BSD, Solaris, and macOS installation. It's the quintessential Unix text editor, with its unique combination of editing modes and super-efficient single-key shortcuts. The original Vi editor was an application written by Bill Joy, creator of the C shell. Modern incarnations of Vi, most notably Vim, have added many features, including multiple levels of undo, better navigation while in insert mode, line folding, syntax highlighting, plugin support, and much more. It takes practice (it even has its own tutor application, vimtutor.)
* [Kakoune][4] is a Vim-inspired application with a familiar, minimalistic interface, short keyboard shortcuts, and separate editing and insert modes. It looks and feels a lot like Vi at first, but with its own unique style, both in design and function. As a special bonus, it features an implementation of the Clippy interface.
### emacs editors
![][5]
* The original free emacs, and one of the first official applications of the GNU project that started the Free Software movement, [GNU Emacs][6] is a wildly popular text editor. It's great for sysadmins, developers, and everyday users alike, with loads of features and seemingly endless extensions. Once you start using Emacs, you might find it difficult to think of a reason to close it because it's just that versatile!
* If you like Emacs but find GNU Emacs too bloated, then you might like [Jove][7]. Jove is a terminal-based emacs editor. It's easy to use, but if you're new to emacsen (the plural of emacs), Jove is also easy to learn, thanks to the teachjove command.
* Another lightweight emacs editor, [Jed][8] is a simple incarnation of a macro-based workflow. One thing that sets it apart from other editors is its use of [S-Lang][9], a C-like scripting language providing extensibility options to developers more comfortable with C than with Lisp.
### Interactive editors
![][10]
* [GNU nano][11] takes a bold stance on terminal-based text editing: it provides a menu. Yes, this humble editor takes a cue from GUI editors by telling the user exactly which key they need to press to perform a specific function. This is a refreshing take on user experience, so it's no wonder that it's nano, not Vi, that's set as the default editor for "user-friendly" distributions.
* [JOE][12] is based on an old text-editing application called WordStar. If you're not familiar with Wordstar, JOE can also mimic Emacs or GNU nano. By default, it's a good compromise between something relatively mysterious like Emacs or Vi and the always-on verbosity of GNU Nano (for example, it tells you how to activate an onscreen help display, but it's not on by default).
* The excellent [e3][13] application is a tiny text editor with five built-in keyboard shortcut schemes to emulate Emacs, Vi, nano, NEdit, and WordStar. In other words, no matter what terminal-based editor you are used to, you're likely to feel right at home with e3.
### ed and more
* The [ed][14] line editor is part of the [POSIX][15] and Open Group's standard definition of a Unix-based operating system. You can count on it being installed on nearly every Linux or Unix system you'll ever encounter. It's tiny, terse, and tip-top.
* Building upon ed, the [Sed][16] stream editor is popular both for its functionality and its syntax. Most Linux users learn at least one sed command when searching for the easiest and fastest way to update a line in a config file, but it's worth taking a closer look. Sed is a powerful command with lots of useful subcommands. Get to know it better, and you may find yourself open text editor applications a lot less frequently.
* You don't always need a text editor to edit text. The [heredoc][17] (or Here Doc) system, available in any POSIX terminal, allows you to type text directly into your open terminal and then pipes what you type into a text file. It's not the most robust editing experience, but it is versatile and always available.
### Minimalist editors
![][18]
If your idea of a good text editor is a word processor except without all the processing, you're probably looking for one of these classics. These editors let you write and edit text with minimal interference and minimal assistance. What features they do offer are often centered around markup, Markdown, or code. Some have names that follow a certain pattern:
* [Gedit][19] from the GNOME team
* [medit][20] for a classic GNOME feel
* [Xedit][21] uses only the most basic X11 libraries
* [jEdit][22] for Java aficionados
A similar experience is available for KDE users:
* [Kate][23] is an unassuming editor with all the features you need.
* [KWrite][24] hides a ton of useful features in a deceptively simple, easy-to-use interface.
And there are a few for other platforms:
* [Notepad++][25] is a popular Windows application, while Notepadqq takes a similar approach for Linux.
* [Pe][26] is for Haiku OS (the reincarnation of that quirky child of the '90s, BeOS).
* [FeatherPad][27] is a basic editor for Linux but with some support for macOS and Haiku. If you're a Qt hacker looking to port code, take a look!
### IDEs
![][28]
There's quite a crossover between text editors and integrated development environments (IDEs). The latter really is just the former with lots of code-specific features added on. If you use an IDE regularly, you might find an XML or Markdown editor lurking in your extension manager:
* [NetBeans][29] is a handy text editor for Java users.
* [Eclipse][30] offers a robust editing suite with lots of extensions to give you the tools you need.
### Cloud-based editors
![][31]
Working in the cloud? You can write there too, you know.
* [Etherpad][32] is a text editor app that runs on the web. There are free and independent instances for you to use, or you can set up your own.
* [Nextcloud][33] has a thriving app scene and includes both a built-in text editor and a third-party Markdown editor with live preview.
### Newer editors
![][34]
Everybody has an idea about what makes a text editor perfect. For that reason, new editors are released each year. Some reimplement classic old ideas in a new and exciting way, some have unique takes on the user experience, and some focus on specific needs.
* [Atom][35] is an all-purpose modern text editor from GitHub featuring lots of extensions and Git integration.
* [Brackets][36] is an editor from Adobe for web developers.
* [Focuswriter][37] seeks to help you focus on writing with helpful features like a distraction-free fullscreen mode, optional typewriter sound effects, and beautiful configuration options.
* [Howl][38] is a progressive, dynamic editor based on Lua and Moonscript.
* [Norka][39] and [KJots][40] mimic a notebook with each document representing a "page" in your "binder." You can take individual pages out of your notebook through export functions.
### DIY editor
![][41]
As the saying does _NOT_ go: Why use somebody else's application when you can write your own? Linux has over 30 text editors available, so probably the last thing it really needs is another one. Then again, part of the fun of open source is the ability to experiment.
If you're looking for an excuse to learn how to program, making your own text editor is a great way to get started. You can achieve the basics in about 100 lines of code, and the more you use it, the more you'll be inspired to learn more so you can make improvements. Ready to get started? Go and [create your own text editor][42].
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/2/open-source-text-editors
作者:[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/button_push_open_keyboard_file_organize.png?itok=KlAsk1gx (open source button on keyboard)
[2]: https://opensource.com/sites/default/files/kakoune-screenshot.png
[3]: https://opensource.com/article/20/12/vi-text-editor
[4]: https://opensource.com/article/20/12/kakoune
[5]: https://opensource.com/sites/default/files/jed.png
[6]: https://opensource.com/article/20/12/emacs
[7]: https://opensource.com/article/20/12/jove-emacs
[8]: https://opensource.com/article/20/12/jed
[9]: https://www.jedsoft.org/slang
[10]: https://opensource.com/sites/default/files/uploads/nano-31_days-nano-opensource.png
[11]: https://opensource.com/article/20/12/gnu-nano
[12]: https://opensource.com/article/20/12/31-days-text-editors-joe
[13]: https://opensource.com/article/20/12/e3-linux
[14]: https://opensource.com/article/20/12/gnu-ed
[15]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
[16]: https://opensource.com/article/20/12/sed
[17]: https://opensource.com/article/20/12/heredoc
[18]: https://opensource.com/sites/default/files/uploads/gedit-31_days_gedit-opensource.jpg
[19]: https://opensource.com/article/20/12/gedit
[20]: https://opensource.com/article/20/12/medit
[21]: https://opensource.com/article/20/12/xedit
[22]: https://opensource.com/article/20/12/jedit
[23]: https://opensource.com/article/20/12/kate-text-editor
[24]: https://opensource.com/article/20/12/kwrite-kde-plasma
[25]: https://opensource.com/article/20/12/notepad-text-editor
[26]: https://opensource.com/article/20/12/31-days-text-editors-pe
[27]: https://opensource.com/article/20/12/featherpad
[28]: https://opensource.com/sites/default/files/uploads/eclipse-31_days-eclipse-opensource.png
[29]: https://opensource.com/article/20/12/netbeans
[30]: https://opensource.com/article/20/12/eclipse
[31]: https://opensource.com/sites/default/files/uploads/etherpad_0.jpg
[32]: https://opensource.com/article/20/12/etherpad
[33]: https://opensource.com/article/20/12/31-days-text-editors-nextcloud-markdown-editor
[34]: https://opensource.com/sites/default/files/uploads/atom-31_days-atom-opensource.png
[35]: https://opensource.com/article/20/12/atom
[36]: https://opensource.com/article/20/12/brackets
[37]: https://opensource.com/article/20/12/focuswriter
[38]: https://opensource.com/article/20/12/howl
[39]: https://opensource.com/article/20/12/norka
[40]: https://opensource.com/article/20/12/kjots
[41]: https://opensource.com/sites/default/files/uploads/this-time-its-personal-31_days_yourself-opensource.png
[42]: https://opensource.com/article/20/12/31-days-text-editors-one-you-write-yourself

View File

@ -1,282 +0,0 @@
[#]: subject: (Build a printer UI for Raspberry Pi with XML and Java)
[#]: via: (https://opensource.com/article/21/3/raspberry-pi-totalcross)
[#]: author: (Edson Holanda Teixeira Junior https://opensource.com/users/edsonhtj)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
Build a printer UI for Raspberry Pi with XML and Java
======
TotalCross makes it quick to build user interfaces for embedded
applications.
![Tips and gears turning][1]
Creating a GUI from scratch is a very time consuming process, dealing with all the positions and alignments in hard code can be really tough for some programmers. In this article, I demonstrate how to speed up this process using XML.
This project uses [TotalCross][2] as the target framework. TotalCross is an open source, cross-platform software development kit (SDK) developed to create GUIs for embedded devices faster. TotalCross provides Java's development benefits without needing to run Java on a device because it uses its own bytecode and virtual machine (TC bytecode and TCVM) for performance enhancement.
I also use Knowcode-XML, an open source XML parser for the TotalCross framework, which converts XML files into TotalCross components.
### Project requirements
To reproduce this project, you need:
* [KnowCode-XML][3]
* [VSCode][4] [or VSCodium][5]
* [An Android development environment][6]
* [TotalCross plugin for VSCode][7]
* Java 11 or greater for your development platform ([Linux][8], [Mac][9], or [Windows][10])
* [Git][11]
### Building the embedded application
This application consists of an embedded GUI with basic print functionalities, such as scan, print, and copy.
![printer init screen][12]
(Edson Holanda Teixeira Jr, [CC BY-SA 4.0][13])
Several steps are required to create this GUI, including generating the GUI with Android-XML and then using the Knowcode-XML parser to run it on the TotalCross Framework.
#### 1\. Generate the Android XML
For creating the XML file, first create a simple Android screen, and then customize it. If you don't know how to write Android-XM, or you just want a headstart, you can download this applications XML from this [GitHub project][14]. This project also contains the images you need to render the GUI.
#### 2\. Adjust the XML
After generating the XML files, you need to make some fine adjustments to make sure everything is aligned, with the right proportions, and has the correct path to the images.
Add the XML layouts to the **Layouts** folder and all the assets to the **Drawable** folder. Then you can start to customize the XML.
For example, if you want to change an XML object's background, change the `android:background` attribute:
```
`android:background="@drawable/scan"`
```
You can change the object's position with `tools:layout_editor_absoluteX` and `tools:layout_editor_absoluteY`:
```
tools:layout_editor_absoluteX="830dp"
tools:layout_editor_absoluteY="511dp"
```
Change the object's size with `android:layout_width` and `android:layout_height`:
```
android:layout_width="70dp"
android:layout_height="70dp"
```
If you want to put text on an object, you can use `android:textSize`, `android:text`, `android:textStyle`, and `android:textColor`:
```
android:textStyle="bold"
android:textColor="#000000"
android:textSize="20dp"
android:text="2:45PM"
```
Here is an example of a complete XML object:
```
    &lt;ImageButton
           android:id="@+id/ImageButton"
           android:layout_width="70dp"
           android:layout_height="70dp"
           tools:layout_editor_absoluteX="830dp"
           tools:layout_editor_absoluteY="511dp"
           android:background="@drawable/home_config" /&gt;
```
#### 3\. Run the GUI on TotalCross
After you make all the XML adjustments, it's time to run it on TotalCross. Create a new project on the TotalCross extension and add the **XML** and **Drawable** folders to the **Main** folder. If you're not sure how to create a TotalCross project, see our [get started guide][15].
After configuring the environment, use `totalcross.knowcode.parse.XmlContainerFactory` and `import totalcross.knowcode.parse.XmlContainerLayout` to use the XML GUI on the TotalCross framework. You can find more information about using KnowCode-XML on its [GitHub page][3].
#### 4\. Add transitions
This project's smooth transition effect is created by the `SlidingNavigator` class, which uses TotalCross' `ControlAnimation` class to slide from one screen to the other.
Call `SlidingNavigator` on the `XMLpresenter` class:
```
`new SlidingNavigator(this).present(HomePresenter.class);`
```
Implement the `present` function on the `SlidingNavigator` class:
```
public void present(Class&lt;? extends XMLPresenter&gt; presenterClass)
         throws [InstantiationException][16], [IllegalAccessException][17] {
      final XMLPresenter presenter = cache.containsKey(presenterClass) ? cache.get(presenterClass)
            : presenterClass.newInstance();
      if (!cache.containsKey(presenterClass)) {
         cache.put(presenterClass, presenter);
      }
      if (presenters.isEmpty()) {
         window.add(presenter.content, LEFT, TOP, FILL, FILL);
      } else {
         XMLPresenter previous = presenters.lastElement();
         window.add(presenter.content, AFTER, TOP, SCREENSIZE, SCREENSIZE, previous.content);
```
`PathAnimation` in animation control creates the sliding animation from one screen to another:
```
         PathAnimation.create(previous.content, -Settings.screenWidth, 0, new ControlAnimation.AnimationFinished() {
            @Override
            public void onAnimationFinished(ControlAnimation anim) {
               window.remove(previous.content);
            }
         }, 1000).with(PathAnimation.create(presenter.content, 0, 0, new ControlAnimation.AnimationFinished() {
            @Override
            public void onAnimation Finished(Control Animation anim) {
               presenter.content.setRect(LEFT, TOP, FILL, FILL);
            }
         }, 1000)).start();
      }
      presenter.setNavigator(this);
      presenters.push(presenter);
      presenter.bind2();
      if (presenter.isFirstPresent) {
         presenter.onPresent();
         presenter.isFirstPresent = false;
      }
```
#### 5\. Load spinners
Another nice feature in the printer application is the loading screen animation that shows progress. It includes text and a spinning animation.
![Loading Spinner][18]
(Edson Holanda Teixeira Jr, [CC BY-SA 4.0][13])
Implement this feature by adding a timer and a timer listener to update the progress label, then call the function `spinner.start()`. All of the animations are auto-generated by TotalCross and KnowCode:
```
public void startSpinner() {
        time = content.addTimer(500);
        content.addTimerListener((e) -&gt; {
            try {
                progress(); // Updates the Label
            } catch (InstantiationException | IllegalAccessException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        });
        Spinner spinner = (Spinner) ((XmlContainerLayout) content).getControlByID("@+id/spinner");
        spinner.start();
    }
```
The spinner is instantiated as a reference to the `XmlContainerLayout` spinner described in the XML file:
```
&lt;ProgressBar
android:id="@+id/spinner"
android:layout_width="362dp"
android:layout_height="358dp"
tools:layout_editor_absoluteX="296dp"
tools:layout_editor_absoluteY="198dp"
   android:indeterminateTint="#2B05C7"
style="?android:attr/progressBarStyle" /&gt;
```
#### 6\. Build the application
It's time to build the application. You can see and change the target systems in `pom.xml`. Make sure the **Linux Arm** target is available.
If you are using VSCode, press **F1** on the keyboard, select **TotalCross: Package** and wait for the package to finish. Then you can see the installation files in the **Target** folder.
#### 7\. Deploy and run the application on Raspberry Pi
To deploy the application on a [Raspberry Pi 4][19] with the SSH protocol, press **F1** on the keyboard. Select **TotalCross: Deploy&amp;Run** and provide information about your SSH connection: User, IP, Password, and Application Path.
![TotalCross: Deploy&Run][20]
(Edson Holanda Teixeira Jr, [CC BY-SA 4.0][13])
![SSH user][21]
(Edson Holanda Teixeira Jr, [CC BY-SA 4.0][13])
![IP address][22]
(Edson Holanda Teixeira Jr, [CC BY-SA 4.0][13])
![Password][23]
(Edson Holanda Teixeira Jr, [CC BY-SA 4.0][13])
![Path][24]
(Edson Holanda Teixeira Jr, [CC BY-SA 4.0][13])
Here's what the application looks like running on the machine.
### What's next?
KnowCode makes it easier to create and manage your application screens using Java. Knowcode-XML translates your XML into a TotalCross GUI that in turn generates the binary to run on your Raspberry Pi.
Combining KnowCode technology with TotalCross enables you to create embedded applications faster. Find out what else you can do by accessing our [embedded samples][25] on GitHub and editing your own application.
If you have questions, need help, or just want to interact with other embedded GUI developers, feel free to join our [Telegram][26] group to discuss embedded applications on any framework.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/3/raspberry-pi-totalcross
作者:[Edson Holanda Teixeira Junior][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/edsonhtj
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/gears_devops_learn_troubleshooting_lightbulb_tips_520.png?itok=HcN38NOk (Tips and gears turning)
[2]: https://opensource.com/article/20/7/totalcross-cross-platform-development
[3]: https://github.com/TotalCross/knowcode-xml
[4]: https://code.visualstudio.com/
[5]: https://opensource.com/article/20/6/open-source-alternatives-vs-code
[6]: https://developer.android.com/studio
[7]: https://marketplace.visualstudio.com/items?itemName=totalcross.vscode-totalcross
[8]: https://opensource.com/article/19/11/install-java-linux
[9]: https://opensource.com/article/20/7/install-java-mac
[10]: http://adoptopenjdk.net
[11]: https://opensource.com/life/16/7/stumbling-git
[12]: https://opensource.com/sites/default/files/uploads/01_printergui.png (printer init screen)
[13]: https://creativecommons.org/licenses/by-sa/4.0/
[14]: https://github.com/TotalCross/embedded-samples/tree/main/printer-application/src/main/resources/layout
[15]: https://totalcross.com/get-started/?utm_source=opensource&utm_medium=article&utm_campaign=printer
[16]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+instantiationexception
[17]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+illegalaccessexception
[18]: https://opensource.com/sites/default/files/uploads/03progressspinner.png (Loading Spinner)
[19]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/
[20]: https://opensource.com/sites/default/files/uploads/04_totalcross-deployrun.png (TotalCross: Deploy&Run)
[21]: https://opensource.com/sites/default/files/uploads/05_ssh.png (SSH user)
[22]: https://opensource.com/sites/default/files/uploads/06_ip.png (IP address)
[23]: https://opensource.com/sites/default/files/uploads/07_password.png (Password)
[24]: https://opensource.com/sites/default/files/uploads/08_path.png (Path)
[25]: https://github.com/TotalCross/embedded-samples
[26]: https://t.me/totalcrosscommunity

View File

@ -2,7 +2,7 @@
[#]: via: (https://opensource.com/article/21/4/compare-programming-languages)
[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (VeryZZJ)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -2,7 +2,7 @@
[#]: via: "https://itsfoss.com/install-vs-code-extensions/"
[#]: author: "Pratham Patel https://itsfoss.com/author/pratham/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: translator: "CoWave-Fall"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

View File

@ -1,198 +0,0 @@
[#]: subject: "Ubuntu 22.04 LTS “Jammy Jellyfish” New Features and Release Details"
[#]: via: "https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu 22.04 LTS “Jammy Jellyfish” New Features and Release Details
======
This article contains details about new features of Ubuntu 22.04 LTS “Jammy Jellyfish”. We give you all the relevant information to keep you up to date.
The Ubuntu LTS releases are rare, and they are significant because they set the course for the next five years for everyone from you/to me to the enterprises who run thousands of machines/virtual systems with Ubuntu.
From the feature standpoint, you get GNOME 42, Linux Kernel 5.15, new Accent colour, updated applications and many intrinsic features that make it another historic LTS release of Ubuntu. We intend to give you a summary of those features while keeping this post updated until the final release so that you get a single source of all the information about Ubuntu 22.04 LTS.
Lets take a look at the official schedule.
### Ubuntu 22.04 LTS Release Schedule
Ubuntu 22.04 LTS Jammy Jellyfish releases on April 21, 2022. Before that, the Ubuntu team should meet the following milestones.
* February 24, 2022: Feature Freeze
* March 17, 2022: UI Freeze
* March 31, 2022: Beta Release
* April 21, 2022: Final Release
This release is supported until April 2027.
![Ubuntu 22.04 LTS (daily build) Desktop-2][1]
### Ubuntu 22.04 New Features
#### Kernel
Linux Kernel 5.15 LTS will be the initial Kernel for this long term Ubuntu release. Released around Halloween 2021 last year, Linux Kernel 5.15 brings several essential improvements. Usual new driver and hardware updates across processor, GPU, network, and file system families. This Kernel also brings the fast NTFS3 driver from Paragon Software, mainlined in this version. Other notable benefits of this Kernel are Apple M1 SOC support, in-Kernel SMB driver, Realtech Wi-Fi driver support for RTL8188EU chipset, etc. You can read the details about what this Kernel has to offer in our [Linux Kernel 5.15 coverage][2].
#### GNOME Desktop Version
There is still discussion on the base version of GNOME in this LTS release. However, it is confirmed that [GNOME 42][3] will be the default gnome-shell version.
But there is a catch.
You must have heard that GNOME 42 is bringing an updated version of GTK4 applications with libadwaita library-port for those apps. The Ubuntu desktop team plans for GNOME 42, but the default installed applications remain based on GTK3. A sensible decision from the desktop team, in my opinion. Because moving to GNOME 42 + GTK4 + libadwaita ports all these require a lot of regression tests. Not to mention the risk of breaking things here and there. This is too much of an overhead for the LTS release, a default choice for most of the user base and arguably the most downloaded/upgraded version.
#### Look and Feel
On the look-n-feel side, there is a change in the Yaru GTK theme base colour, which is the default theme for Ubuntu. The usual Purple accent colour is changing to Orange. Now, be cautious that it may feel like staggering orange shades. Look at this screenshot.
![Is this too Orange-y?][4]
#### New Accent Color
Jammy Jellyfish brings the accent colour for the first time on the Ubuntu desktop. It applies to both light and dark themes. This feature is accessible via the Appearance section.
![Ubuntu 22.04 LTS Accent Color][5]
#### New logo and Plymouth
Canonical the company behind Ubuntu announced to change its official logo after a decade from this release onwards. The new logo is more simple with a large vertical rectangle variant. It is displayed in the boot animation alongside all application places.
![New Ubuntu logo and plymouth][6]
#### New default wallpaper
Following the tradition, this version features a nice and classy default wallpaper that depicts the official Jellyfish mascot.
![Ubuntu 22.04 LTS Jammy Jellyfish default wallpaper][7]
#### Packages and Application Updates
Besides the above changes, core packages default applications bring their latest stable version. Heres a quick list.
* Python 3.10
* Php8.1
* Ruby 3.0
* Thunderbird 91.5
* Firefox 96.0
* LibreOffice 7.2.5
* PulseAudio 15.0
* NetworkManager 1.32
And the new Yaru icon theme in LibreOffice looks stunning, though.
![Yaru Icon Theme for LibreOffice looks stunning with Orange color][8]
#### Updating from Ubuntu 20.04 LTS?
In general, if you plan to switch to this LTS version from Ubuntu 21.10, you should notice a few items of change. But if you are planning to upgrade from prior Ubuntu 20.04 LTS then a lot for you to experience. For example, you get a horizontal workspace horizontal app launcher, those introduced since [GNOME 40][9].
Also, other notable differences or rather new features are the power profiles menu in the top bar, multitasking option in settings and performance improvements of GNOME Shell and Mutter.
Looking at the upgrade challenges, we published a dedicated LTS to LTS spotter guide for you. Read it here.
[Difference Between Ubuntu 22.04 and Ubuntu 20.04 LTS][10]
#### Ubuntu Official Flavors
Alongside the base version, the official Ubuntu flavours are getting their latest versions of their respective desktop environments in this LTS version. Apart from KDE Plasma, most desktops remained with their last stable release for more than a year. So, you may not experience much of a difference.
Heres a quick summary and more information about the flavours.
* [Kubuntu 22.04 with KDE Plasma 5.24][11]
* [Xubuntu 22.04 with Xfce 4.16][12]
* [Lubuntu 22.04 with LXQt 1.0][13]
* [Ubuntu Budgie 22.04 with Budgie version 10.5.3][14]
* [Ubuntu Mate 22.04 with MATE 1.26][15]
* [Ubuntu Studio 22.04][16]
* [Ubuntu Kylin 22.04][17]
### Download
If you are planning to upgrade, refer to our upgrade steps [here][18].
#### Latest ISO
Ubuntu 22.04 LTS released on April 21, 2022. The latest ISO is available in the below link.
[Download Ubuntu 22.04 LTS ISO][19]
#### Download the Flavors (Latest)
If you want to try out the official Ubuntu flavours, you can get them via the below links.
* [https://cdimage.ubuntu.com/kubuntu/releases/jammy/][20]
* [https://cdimage.ubuntu.com/xubuntu/releases/jammy/][21]
* [https://cdimage.ubuntu.com/lubuntu/releases/jammy/][22]
* [https://cdimage.ubuntu.com/ubuntu-mate/releases/jammy/][23]
* [https://cdimage.ubuntu.com/ubuntu-budgie/releases/jammy/][24]
* [https://cdimage.ubuntu.com/ubuntukylin/releases/jammy/][25]
* [https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/][26]
#### Daily Build and Canary [Obsolete]
This version of Ubuntu is under development at the moment. If you want to give it a quick spin in your favourite VM, then grab the daily build copy .ISO from the below link.
Remember, this copy may be unstable and contain bugs. So, you have been warned.
[Download Ubuntu 22.04 daily build][27]
If you want a super-unstable copy of Canary Build, you can get it from the below link. I would not recommend using this Canary .ISO at all unless you have plenty of time to play. Oh, so that you know, this Canary copy .ISO have the new Flutter-based installer. Although I tried to use this new installer, it crashes every time.
[Daily Canary Build iso][28]
### Closing Notes
The LTS releases are conservative in new tech adaptation and other long term impacts. Many organizations and businesses opt for LTS for more than five years of support window and stability. Stability is more important than new technology when running thousands of machines critical to your company. So, that said, many new features or packages could not make it to the final release, but eventually, this release set the course for the next LTS. One step at a time.
So, what feature or package is interesting for you in Ubuntu 22.04? Let me know in the comment section below.
*References:*
* https://discourse.ubuntu.com/t/jammy-jellyfish-release-schedule/23906
* https://discourse.ubuntu.com/t/jammy-jellyfish-release-notes/24668
* https://discourse.ubuntu.com/t/ubuntu-desktop-gnome-plans-for-the-incoming-lts/26156
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2022/01/Ubuntu-22.04-LTS-daily-build-Desktop-2.jpg
[2]: https://www.debugpoint.com/2021/11/linux-kernel-5-15/
[3]: https://www.debugpoint.com/2021/12/gnome-42/
[4]: https://www.debugpoint.com/wp-content/uploads/2022/01/Is-this-too-Orange-y.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/01/Ubuntu-22.04-LTS-Accent-Color.jpg
[6]: https://www.debugpoint.com/wp-content/uploads/2022/01/New-Ubuntu-logo-and-playmouth.jpg
[7]: https://www.debugpoint.com/wp-content/uploads/2022/01/Ubuntu-22.04-LTS-Jammy-Jellyfish-default-wallpaper.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/01/Yaru-Icon-Theme-for-LibreOffice-looks-stunning-with-Orange-color-1024x226.jpg
[9]: https://www.debugpoint.com/2021/03/gnome-40-release/
[10]: https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/
[11]: https://www.debugpoint.com/2022/04/kubuntu-22-04-lts/
[12]: https://www.debugpoint.com/2022/04/xubuntu-22-04-lts/
[13]: https://www.debugpoint.com/2022/04/lubuntu-22-04-lts/
[14]: https://www.debugpoint.com/2022/04/ubuntu-budgie-22-04-lts/
[15]: https://www.debugpoint.com/2022/04/ubuntu-mate-22-04-lts/
[16]: https://www.debugpoint.com/2022/04/ubuntu-studio-22-04-lts/
[17]: https://www.debugpoint.com/2022/04/ubuntu-kylin-22-04-lts/
[18]: https://www.debugpoint.com/2022/04/upgrade-ubuntu-22-04-from-20-04/
[19]: https://releases.ubuntu.com/jammy/
[20]: https://cdimage.ubuntu.com/kubuntu/releases/jammy/release/
[21]: https://cdimage.ubuntu.com/xubuntu/releases/jammy/release
[22]: https://cdimage.ubuntu.com/lubuntu/releases/jammy/release/
[23]: https://cdimage.ubuntu.com/ubuntu-mate/releases/jammy/release/
[24]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/jammy/release/
[25]: https://cdimage.ubuntu.com/ubuntukylin/releases/jammy/release/
[26]: https://cdimage.ubuntu.com/ubuntustudio/releases/jammy/release/
[27]: https://cdimage.ubuntu.com/daily-live/current/
[28]: https://cdimage.ubuntu.com/daily-canary/current/

View File

@ -1,7 +1,7 @@
[#]: subject: "Essential DNF Commands for Linux Users [With Examples]"
[#]: via: "https://www.debugpoint.com/2022/01/dnf-commands-examples/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,9 +9,9 @@
Essential DNF Commands for Linux Users [With Examples]
======
WE GIVE YOU A QUICK REFERENCE OF ESSENTIAL DNF COMMANDS WITH EXAMPLES IN
THIS GUIDE.
### What is DNF ?
We give you a quick reference of essential dnf commands with examples in this guide.
### What is DNF?
DNF (Dandified Yum) is a package manager used in RPM based Linux systems (RHEL, [Fedora][1], etc.). It is a successor of Yum package manager (Yellowdog Update Modified). The DNF package manager is efficient on performance, memory consumption and dependency resolution issues.
@ -63,259 +63,205 @@ Now, lets look at the above DNF commands with examples.
This might be the rare scenario when DNF is not installed in an applicable Linux system. But if DNF is not installed in your RPM based distribution, you can use Yum to install DNF.
```
yum install dnf
```
#### 1\. Check the version of DNF installed in your systems
#### 1. Check the version of DNF installed in your systems
The following command shows the version included in your Linux system.
```
dnf --version
```
#### 2\. Getting the help about DNF
#### 2. Getting the help about DNF
You can easily get all the necessary DNF options and command line switches using the help option.
```
dnf help
```
For a specific help, say, about installation for example, you can pass the parameter as below to show that piece of help.
```
dnf help search
```
#### 3\. List of Installed and Available Packages
#### 3. List of Installed and Available Packages
The dnf list command gives you the list of installed and available packages. A little caution. This command may take some to execute, depending on your system state, and internet connection. Because it fetches the metadata from server.
```
dnf list
```
If you want a more specific list, you can use the available or installed switch to filter out the list. See below.
```
dnf list available
```
For installed list, use the below command.
```
dnf list installed
```
![dnf installed packages][19]
#### 4\. Repository list using DNF
#### 4. Repository list using DNF
There are times you want to see the list of enabled repositories in your Linux systems. With the dnf repolist command, you can achieve that.
```
dnf repolist
```
So, this command gives you all the enabled repo. If you want the disabled ones as well, try below command.
```
dnf repolist all
```
![Repo list using DNF][20]
#### 5\. Display specific information about a package
#### 5. Display specific information about a package
There are times when you need to find out details about a package. So, you can easily find that out using the below command.
```
dnf info package_name
```
![Information about a specific package using DNF][21]
#### 6\. Search for any package and details about it
#### 6. Search for any package and details about it
Use the following search command to find any package and their source. Replace package_name with your own. As you can see in this below example, it highlights the package and their source. It gives you the result in two sections when name is exactly matched and also in summary/description.
```
dnf search package_name
```
![Search for any package using DNF][22]
#### 7\. Find which package contains a package, value
#### 7. Find which package contains a package, value
Sometimes, you require finding out which packages or sources contains a particular executable or package name. Then the dnf provides command helps. For example, you want to find out which sources contain ifconfig, then you can find it out like below example. This is one of the best feature of dnf while researching dependency problems.
```
dnf provides package_name
```
![dnf provides command example][23]
#### 8\. Installing packages using DNF
#### 8. Installing packages using DNF
Probably the most used command is dnf install which helps to install an application or package. The command is simple.
```
dnf install package_name
```
If you want to install from a specific repo, you can use the enablerepo switch while issuing this command.
```
dnf --enablerepo=epel install phpmyadmin
```
#### 9\. Installing a package that you downloaded manually
#### 9. Installing a package that you downloaded manually
There are times, when you manually downloaded a .rpm package locally. And you want to install. You can install the same using localinstall command with .rpm file full qualified path.
```
dnf localinstall your_package_name.rpm
```
[][24]
SEE ALSO:   How to Switch Desktop Environment in Fedora
The above command should resolve all the dependencies while installing a target .rpm package. If not, one can issue the following command.
```
dnf --nogpgcheck localinstall your_package_name.rpm
```
Another way to install a local .rpm package is using the dnf install command.
```
dnf install *.rpm
```
#### 10\. Reinstalling a package
#### 10. Reinstalling a package
Reinstalling a package is simple using the reinstallation switch of DNF.
```
dnf reinstall package_name
```
#### 11\. Update Check and Updating your system
#### 11. Update Check and Updating your system
In an RPM based system (such as Fedora, Red Hat Linux, etc.), update is primarily handled by DNF package manager. The following four commands take care of various update scenarios, as explained below.
The check-update option checks for all the update available for your system. This option also takes a package name in its parameter. However, if no package name is specified, then it checks for updates for all installed packages in your system.
```
dnf check-update
```
To list out all the updates in your Linux system, use the list option.
```
dnf list updates
```
And to install updates for your entire Linux system, issue the update option.
```
dnf update
```
You can also update a specific application or package by mentioning the package name as parameter to the update option.
```
dnf update package_name
```
#### 12\. Downgrading a package
#### 12. Downgrading a package
If you need to downgrade a package to its prior version, then you can use the downgrade option of DNF. Be very careful while issuing this command. This command erases the current version of a package and install the highest of all the prior lower version available.
```
dnf downgrade package_name
```
![Downgrading a package using DNF][25]
#### 13\. Downgrade or upgrade all packages
#### 13. Downgrade or upgrade all packages
The distro-sync command downgrade or upgrade all packages to the latest versions for your system enabled repos.
```
dnf distro-sync
```
#### 14\. Uninstall a package
#### 14. Uninstall a package
You can uninstall or remove any application or package using remove option of DNF.
```
dnf remove application_name
```
#### 15\. Group operations using DNF
#### 15. Group operations using DNF
One of the great feature of RPM based system is grouping of packages. A group is a collection of packages logically grouped together. It helps to install them all at one go by issuing a single command with group name.
The grouplist command gives you the name of available groups.
```
dnf grouplist
```
![DNF grouplist command][26]
@ -323,27 +269,21 @@ The grouplist command gives you the name of available groups.
And to install a group with all packages of it, use groupinstall option with the group name.
```
dnf groupinstall group_name
```
Remove a group and all the packages using the groupremove option.
```
dnf groupremove group_name
```
#### 16\. Clean up your system using DNF
#### 16. Clean up your system using DNF
To remove all the temporary files for enabled repos in your system, use the clean option with all switch.
```
dnf clean all
```
If you want to remove a specific temporary file, use the various options as outlined below.
@ -351,61 +291,47 @@ If you want to remove a specific temporary file, use the various options as outl
Removes cache files for repo metadata.
```
dnf clean dbcache
```
Remove the local cookie files that contains download time signature of the packages for each repo.
```
dnf clean expire-cache
```
Removes all the repo metadata.
```
dnf clean metadata
```
Removes any cached packages.
```
dnf clean packages
```
Over time, a system consumes many applications and packages installed by the user. The following autoremove option removes all the leaf packages that are installed as dependencies for any user installed applications but no longer needed. So, they can be safely removed to recover disk space.
```
dnf autoremove
```
![Clean up your system using DNF][27]
#### 17\. Find out DNF command execution history
#### 17. Find out DNF command execution history
If you want a list of all commands that has run using DNF since the beginning of a Linux system, then use the history option. This lists all the commands that issued until now.
```
dnf history
```
To view more details about a specific history, use the info option with the ID number, as shown in the above list. This is one of the amazing feature of DNF, where you can exactly find out what happened on that particular DNF command. It contains the start and end time, who ran it, what are the packages installed, updated, etc.
```
dnf history info id_number
```
![DNF history command examples][28]
@ -418,12 +344,6 @@ Let me know whether this helps, or, any command you would like to add in this li
_[Official DNF Command reference][29]_
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][30], [Twitter][31], [YouTube][32], and [Facebook][33] and never miss an update!
##### Also Read
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/01/dnf-commands-examples/
@ -466,7 +386,3 @@ via: https://www.debugpoint.com/2022/01/dnf-commands-examples/
[27]: https://www.debugpoint.com/wp-content/uploads/2022/01/Clean-up-your-system-using-DNF-1024x216.jpg
[28]: https://www.debugpoint.com/wp-content/uploads/2022/01/DNF-history-command-examples-1024x711.jpg
[29]: https://dnf.readthedocs.io/en/latest/command_ref.html
[30]: https://t.me/debugpoint
[31]: https://twitter.com/DebugPoint
[32]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[33]: https://facebook.com/DebugPoint

View File

@ -1,7 +1,7 @@
[#]: subject: "10 Necessary Apps to Improve Your GNOME Desktop Experience [Part 4]"
[#]: via: "https://www.debugpoint.com/2022/02/best-gnome-apps-part-4/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,32 +9,29 @@
10 Necessary Apps to Improve Your GNOME Desktop Experience [Part 4]
======
WE GIVE YOU THE NEXT SET OF 10 GNOME APPS THAT WILL SUPERCHARGE YOUR
PRODUCTIVITY WHILE USING GNOME DESKTOP.
We give you the next set of 10 GNOME Apps that will supercharge your productivity while using GNOME Desktop.
At debugpoint.com, we highlight some unknown but useful GNOME apps over a five-part article series. The primary purpose of the series is to give these excellent little apps much-needed visibility via our readers. This helps the developer and the end-users due to increased usage of these necessary GNOME Apps and much-deserved attention.
This post is Part 4 of the series. In this article, we will highlight ten necessary GNOME Apps. If you missed the last parts, you could read the other parts of this series via the below links.
* [Part 1][1]
* [Part 2][2]
* [Part 3][3]
* [Part 1][1]
* [Part 2][2]
* [Part 3][3]
* [Part 5][4]
In this article, we covered the following list of great GNOME Apps.
* [Secrets Password Manager][4]
* [Font Downloader][5]
* [Gaphor UML Modeling Utility][6]
* [Hashbrown Check Hash of your files][7]
* [Identity Compare images and videos][8]
* [Khronos Time Logging][9]
* [Markets Watch Stock Markets][10]
* [Obfuscate Redact Images][11]
* [Plots Simple Graph Plotting][12]
* [squeekboard On-screen keyboard for wayland][13]
* Secrets Password Manager
* Font Downloader
* Gaphor UML Modeling Utility
* Hashbrown Check Hash of your files
* Identity Compare images and videos
* Khronos Time Logging
* Markets Watch Stock Markets
* Obfuscate Redact Images
* Plots Simple Graph Plotting
* squeekboard On-screen keyboard for wayland
### 10 Necessary GNOME Apps
@ -42,18 +39,18 @@ In this article, we covered the following list of great GNOME Apps.
The first app that we highlight is a password manager called Secrets. This GNOME Circle app uses KeePass 0.4 format to store the password in its database. This app comes with a simple interface that gives you complete control of your password and managing them. Secret perfectly integrates with your GNOME desktop, which you can install.
![Secrets GNOME App][14]
![Secrets][5]
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Secrets][16]
You need to [Setup Flatpak][6] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
s
* [Home Page][17]
* [Source Code][18]
[Install Secrets][7]
**More Details about Secrets**
* [Home Page][8]
* [Source Code][9]
#### Font Downloader
@ -61,36 +58,40 @@ Installing font via terminal for new users is a bit complicated process. The nex
But this app takes care of all the hassles that an average faces. You can search fonts in Google Fonts directly from its UI and install it with just a click of a button. A perfect and necessary GNOME app for your desktop.
![Font Downloader GNOME Apps][19]
![Font Downloader][10]
Heres how to install it.
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Font Downloader][20]
You need to [Setup Flatpak][11] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home Page][21]
* [Source Code][22]
[Install Font Downloader][12]
**More details about Font Downloader**
* [Home Page][13]
* [Source Code][14]
#### Gaphor UML Modeling Utility
Out of all the GNOME apps we have covered so far, this one is one of the best apps. Named Gaphor, this application helps you design complex systems via Unified Modelling Language. It currently supports UML, SysML, RAAML and C4 languages and is fully compliant with the [UML 2 data model][23].
Out of all the GNOME apps we have covered so far, this one is one of the best apps. Named Gaphor, this application helps you design complex systems via Unified Modelling Language. It currently supports UML, SysML, RAAML and C4 languages and is fully compliant with the [UML 2 data model][15].
It is a perfect GNOME app for students or system design professionals.
![Gaphor GNOME Apps][24]
![Gaphor][16]
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Gaphor][25]
You need to [Setup Flatpak][17] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home Page][26]
* [Home Page (official)][27]
* [Source Code][28]
[Install Gaphor][18]
**More details about Gaphor**
* [Home Page][19]
* [Home Page (official)][20]
* [Source Code][21]
#### Hashbrown Check Hash of your files
@ -100,36 +101,36 @@ So, a hash is a way to verify whether your downloaded file is original or not. I
This GNOME App Hashbrown, does that job for you. Its unique and straightforward UI helps you to compare several hash types of a file. This app currently supports MD5, SHA-256, SHA-512 and SHA-1 hashes. A perfect and necessary utility for your GNOME desktop.
![Hashbrown GNOME App][29]
![Hashbrown][22]
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Hashbrown][30]
You need to [Setup Flatpak][23] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Official Home Page][31] _(Fun fact: You will be amazed if you open this site. Check out by yourself!)_
* [Home Page][32]
* [Source Code][33]
[Install Hashbrown][24]
**More details about Hashbrown**
* [Official Home Page][25] (Fun fact: You will be amazed if you open this site. Check out by yourself!)
* [Home Page][26]
* [Source Code][27]
#### Identity Compare images and videos
If you need to compare multiple images or video files, you should use Identity. This GNOME app compares and gives you information about the target files. Powered by GStreamer, Identity also comes with the command line utility to compare the files.
![Identity][34]
![Identity][28]
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to install**
[Install Identity][35]
You need to [Setup Flatpak][29] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home Page][36]
* [Source Code][37]
[Install Identity][30]
**More details about Identity**
[][2]
SEE ALSO:   10 Perfect Apps to Improve Your GNOME Experience [Part 2]
* [Home Page][31]
* [Source Code][32]
#### Khronos Time Logging
@ -137,16 +138,18 @@ If you ever need an on-demand timer that keeps track of time while you complete
It is a friendly GNOME app for those who need it.
![Khronos GNOME App][38]
![Khronos - GNOME App][33]
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Khronos][39]
You need to [Setup Flatpak][34] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home Page][40]
* [Source Code][41]
[Install Khronos][35]
**More details about Khronos**
* [Home Page][36]
* [Source Code][37]
#### Markets Watch Stock Markets
@ -154,25 +157,25 @@ I am sure you keep track of your favourite stocks or overall investment portfoli
Markets is a GNOME Circle app, and it brings a list of cool features to track stocks and helps you stay in profits. Features such as
* Individual Stock tracking
* Create your portfolio
* Track Cryptocurrencies, commodities
* Details via Yahoo! finance
* Supported in Linux-based smartphones (Librem5, PinePhone)
* Adjust refresh rate and Dark Mode Support
* Individual Stock tracking
* Create your portfolio
* Track Cryptocurrencies, commodities
* Details via Yahoo! finance
* Supported in Linux-based smartphones (Librem5, PinePhone)
* Adjust refresh rate and Dark Mode Support
![Markets - A Necessary GNOME Apps][38]
**How to Install**
![Markets A Necessary GNOME App][42]
You need to [Setup Flatpak][39] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
[Install Markets][43]
* [Home page][44]
* [Source code][45]
[Install Markets][40]
**More details about Markets**
* [Home page][41]
* [Source code][42]
#### Obfuscate Redact Images
@ -180,16 +183,18 @@ We often need to gray out or remove certain sensitive sections of any image for
If you think that is too much work, try Obfuscate native app for GNOME. This GNOME Circle app helps you redact custom sections from any image and export them. This app supports all major image types. However, you can do these using LibreOffice, which requires inserting an image to the Writer document and whatnot. Try it out.
![Obfuscate GNOME App][46]
![Obfuscate - A Necessary GNOME Apps][43]
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Obfuscate][47]
You need to [Setup Flatpak][44] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][48]
* [Source code][49]
[Install Obfuscate][45]
**More details about Obfuscate**
* [Home page][46]
* [Source code][47]
#### Plots Simple Graph Plotting
@ -197,114 +202,107 @@ If you need a quick tool to visualize those complex math formulae in nice graphs
Here are some of its unique features:
* Support for trigonometric, hyperbolic, exponential and logarithmic functions, as well as arbitrary sums and products
* Ability to utilize your system hardware with the support of OpenGL
* Color Support for graphs
Easy customization of graphs with the value bar which you can increase or decrease interactively to see the graphs
* Support for trigonometric, hyperbolic, exponential and logarithmic functions, as well as arbitrary sums and products
* Ability to utilize your system hardware with the support of OpenGL
* Color Support for graphsEasy customization of graphs with the value bar which you can increase or decrease interactively to see the graphs
![Plots][48]
**How to Install**
![Plots][50]
You need to [Setup Flatpak][49] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
You need to [Setup Flatpak][15] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
[Install Plots][51]
* [Home page][52]
* [Source code][53]
[Install Plots][50]
**More Details about Plots**
* [Home page][51]
* [Source code][52]
#### squeekboard On-screen keyboard for wayland
The final app in this post is for only Linux mobile phones. I thought it was worth mentioning this app because of Wayland. The squeekboard is an on-screen keyboard designed for Librem5 Linux Smartphones for Wayland compositor. This GTK and Rust based application is currently under development, but most of the essential features are already implemented.
You can learn more about it in [GitLab][54]. I couldnt find a screenshot to share with you. However, if you are interested, try it out.
You can learn more about it in [GitLab][53]. I couldnt find a screenshot to share with you. However, if you are interested, try it out.
### Closing Notes
I hope some of these necessary GNOME apps you found helpful for your daily workflow. I am sure they did. With that said, we are wrapping up Part 4 of the series. If you would like to read the other parts, you can go over them via the links below.
[Part 1][1]
[Part 2][2]
[Part 3][3]
* [Part 1][54]
* [Part 2][55]
* [Part 3][56]
* [Part 5][57]
And do let me know your thoughts about this article or this series as a whole. Cheers.
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][55], [Twitter][56], [YouTube][57], and [Facebook][58] and never miss an update!
##### Also Read
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/02/best-gnome-apps-part-4/
作者:[Arindam][a]
选题:[lujun9972][b]
选题:[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/lujun9972
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-1/
[2]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-2/
[3]: https://www.debugpoint.com/2022/01/best-gnome-apps-part-3/
[4]: tmp.UAQ8Cc4ZnO#secrets-password-manager
[5]: tmp.UAQ8Cc4ZnO#font-downloader
[6]: tmp.UAQ8Cc4ZnO#gaphor-uml-modeling-utility
[7]: tmp.UAQ8Cc4ZnO#hashbrown-check-hash-of-your-files
[8]: tmp.UAQ8Cc4ZnO#identity-compare-images-and-videos
[9]: tmp.UAQ8Cc4ZnO#khronos-time-logging
[10]: tmp.UAQ8Cc4ZnO#markets-watch-stock-markets
[11]: tmp.UAQ8Cc4ZnO#obfuscate-redact-images
[12]: tmp.UAQ8Cc4ZnO#plots-simple-graph-plotting
[13]: tmp.UAQ8Cc4ZnO#squeekboard-on-screen-keyboard-for-wayland
[14]: https://www.debugpoint.com/wp-content/uploads/2022/02/Secrets-GNOME-App.jpg
[15]: https://flatpak.org/setup/
[16]: https://flathub.org/apps/details/org.gnome.World.Secrets
[17]: https://apps.gnome.org/app/org.gnome.World.Secrets/
[18]: https://gitlab.gnome.org/World/secrets
[19]: https://www.debugpoint.com/wp-content/uploads/2022/02/Font-Downloader-GNOME-Apps.jpg
[20]: https://dl.flathub.org/repo/appstream/org.gustavoperedo.FontDownloader.flatpakref
[21]: https://apps.gnome.org/app/org.gustavoperedo.FontDownloader/
[22]: https://github.com/GustavoPeredo/font-downloader
[23]: https://en.wikipedia.org/wiki/Unified_Modeling_Language#UML_2
[24]: https://www.debugpoint.com/wp-content/uploads/2022/02/Gaphor-GNOME-Apps.jpg
[25]: https://dl.flathub.org/repo/appstream/org.gaphor.Gaphor.flatpakref
[26]: https://apps.gnome.org/app/org.gaphor.Gaphor/
[27]: https://gaphor.org/
[28]: https://github.com/gaphor/gaphor
[29]: https://www.debugpoint.com/wp-content/uploads/2022/02/Hashbrown-GNOME-App.jpg
[30]: https://dl.flathub.org/repo/appstream/dev.geopjr.Hashbrown.flatpakref
[31]: https://hashbrown.geopjr.dev/
[32]: https://apps.gnome.org/app/dev.geopjr.Hashbrown/
[33]: https://github.com/GeopJr/Hashbrown
[34]: https://www.debugpoint.com/wp-content/uploads/2022/02/Identity.jpg
[35]: https://dl.flathub.org/repo/appstream/org.gnome.gitlab.YaLTeR.Identity.flatpakref
[36]: https://apps.gnome.org/app/org.gnome.gitlab.YaLTeR.Identity/
[37]: https://gitlab.gnome.org/YaLTeR/identity
[38]: https://www.debugpoint.com/wp-content/uploads/2022/02/Khronos-GNOME-App.jpg
[39]: https://dl.flathub.org/repo/appstream/io.github.lainsce.Khronos.flatpakref
[40]: https://apps.gnome.org/app/io.github.lainsce.Khronos/
[41]: https://github.com/lainsce/khronos
[42]: https://www.debugpoint.com/wp-content/uploads/2022/02/Markets-A-Necessary-GNOME-App.jpg
[43]: https://dl.flathub.org/repo/appstream/com.bitstower.Markets.flatpakref
[44]: https://apps.gnome.org/app/com.bitstower.Markets/
[45]: https://github.com/bitstower/markets
[46]: https://www.debugpoint.com/wp-content/uploads/2022/02/Obfuscate-GNOME-App.jpg
[47]: https://dl.flathub.org/repo/appstream/com.belmoussaoui.Obfuscate.flatpakref
[48]: https://apps.gnome.org/app/com.belmoussaoui.Obfuscate/
[49]: https://gitlab.gnome.org/World/obfuscate/
[50]: https://www.debugpoint.com/wp-content/uploads/2022/02/Plots-GNOME-App.jpg
[51]: https://dl.flathub.org/repo/appstream/com.github.alexhuntley.Plots.flatpakref
[52]: https://apps.gnome.org/app/com.github.alexhuntley.Plots/
[53]: https://github.com/alexhuntley/Plots
[54]: https://gitlab.gnome.org/World/Phosh/squeekboard
[55]: https://t.me/debugpoint
[56]: https://twitter.com/DebugPoint
[57]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[58]: https://facebook.com/DebugPoint
[4]: https://www.debugpoint.com/2022/03/best-gnome-apps-part-5/
[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/Secrets-GNOME-App.jpg
[6]: https://flatpak.org/setup/
[7]: https://flathub.org/apps/details/org.gnome.World.Secrets
[8]: https://apps.gnome.org/app/org.gnome.World.Secrets/
[9]: https://gitlab.gnome.org/World/secrets
[10]: https://www.debugpoint.com/wp-content/uploads/2022/02/Font-Downloader-GNOME-Apps.jpg
[11]: https://flatpak.org/setup/
[12]: https://dl.flathub.org/repo/appstream/org.gustavoperedo.FontDownloader.flatpakref
[13]: https://apps.gnome.org/app/org.gustavoperedo.FontDownloader/
[14]: https://github.com/GustavoPeredo/font-downloader
[15]: https://en.wikipedia.org/wiki/Unified_Modeling_Language#UML_2
[16]: https://www.debugpoint.com/wp-content/uploads/2022/02/Gaphor-GNOME-Apps.jpg
[17]: https://flatpak.org/setup/
[18]: https://dl.flathub.org/repo/appstream/org.gaphor.Gaphor.flatpakref
[19]: https://apps.gnome.org/app/org.gaphor.Gaphor/
[20]: https://gaphor.org/
[21]: https://github.com/gaphor/gaphor
[22]: https://www.debugpoint.com/wp-content/uploads/2022/02/Hashbrown-GNOME-App.jpg
[23]: https://flatpak.org/setup/
[24]: https://dl.flathub.org/repo/appstream/dev.geopjr.Hashbrown.flatpakref
[25]: https://hashbrown.geopjr.dev/
[26]: https://apps.gnome.org/app/dev.geopjr.Hashbrown/
[27]: https://github.com/GeopJr/Hashbrown
[28]: https://www.debugpoint.com/wp-content/uploads/2022/02/Identity.jpg
[29]: https://flatpak.org/setup/
[30]: https://dl.flathub.org/repo/appstream/org.gnome.gitlab.YaLTeR.Identity.flatpakref
[31]: https://apps.gnome.org/app/org.gnome.gitlab.YaLTeR.Identity/
[32]: https://gitlab.gnome.org/YaLTeR/identity
[33]: https://www.debugpoint.com/wp-content/uploads/2022/02/Khronos-GNOME-App.jpg
[34]: https://flatpak.org/setup/
[35]: https://dl.flathub.org/repo/appstream/io.github.lainsce.Khronos.flatpakref
[36]: https://apps.gnome.org/app/io.github.lainsce.Khronos/
[37]: https://github.com/lainsce/khronos
[38]: https://www.debugpoint.com/wp-content/uploads/2022/02/Markets-A-Necessary-GNOME-App.jpg
[39]: https://flatpak.org/setup/
[40]: https://dl.flathub.org/repo/appstream/com.bitstower.Markets.flatpakref
[41]: https://apps.gnome.org/app/com.bitstower.Markets/
[42]: https://github.com/bitstower/markets
[43]: https://www.debugpoint.com/wp-content/uploads/2022/02/Obfuscate-GNOME-App.jpg
[44]: https://flatpak.org/setup/
[45]: https://dl.flathub.org/repo/appstream/com.belmoussaoui.Obfuscate.flatpakref
[46]: https://apps.gnome.org/app/com.belmoussaoui.Obfuscate/
[47]: https://gitlab.gnome.org/World/obfuscate/
[48]: https://www.debugpoint.com/wp-content/uploads/2022/02/Plots-GNOME-App.jpg
[49]: https://flatpak.org/setup/
[50]: https://dl.flathub.org/repo/appstream/com.github.alexhuntley.Plots.flatpakref
[51]: https://apps.gnome.org/app/com.github.alexhuntley.Plots/
[52]: https://github.com/alexhuntley/Plots
[53]: https://www.debugpoint.com//gitlab.gnome.org/World/Phosh/squeekboard
[54]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-1/
[55]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-2/
[56]: https://www.debugpoint.com/2022/01/best-gnome-apps-part-3/
[57]: https://www.debugpoint.com/2022/03/best-gnome-apps-part-5/

View File

@ -1,7 +1,7 @@
[#]: subject: "Top 5 Live Streaming Application for Ubuntu and Other Linux [2022 Edition]"
[#]: via: "https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,8 +9,8 @@
Top 5 Live Streaming Application for Ubuntu and Other Linux [2022 Edition]
======
THIS POST LISTS THE TOP FIVE LIVE STREAMING APPLICATIONS FOR UBUNTU
LINUX WITH FEATURES, HIGHLIGHTS, DOWNLOAD DETAILS, AND COMPARISON.
This post lists the top five live streaming applications for Ubuntu Linux with features, highlights, download details, and comparison.
It is the best time to incorporate online video content for your business. Why? Because research suggests that the global online video market is growing at a rate of ~20% per year.
And thanks to some excellent software from developers, it has become easy for anyone to create video content and stream them over several popular platforms such as YouTube and Twitch. If you think about it, you see you are consuming more video content today while online than text-based content.
@ -27,7 +27,9 @@ OBS Studio is the best one on this list because several reasons. The encoding is
The user interface is reasonably straightforward and features rich. You can get help from third-party developed plugins to extend their functionalities, such as mixing live tweets from Twitter on your streaming media while live streaming. However, OBS does not support multi-bitrate streaming.
![OBS Studio][1]
![OBS Studio - Live Streaming Applications for Linux][1]
**How to Install**
OBS Studio is available in all Linux Distributions official repositories. Detailed instruction for installations is present in the below link.
@ -35,10 +37,8 @@ OBS Studio is available in all Linux Distributions official repositories. Det
More Information
* [Home Page][3]
* [Documentation][4]
* [Home Page][3]
* [Documentation][4]
#### VokoscreenNG
@ -46,7 +46,9 @@ The second application we would feature in this list is VokoscreenNG. It is a fo
It is available for Linux and Windows for free.
![vokoscreenNG][5]
![vokoscreenNG - Live Streaming Applications for Linux][5]
**How to Install**
You can download the compressed executable from the below link for Linux systems. Once downloaded, extract them. Then execute the binary to launch the application.
@ -54,9 +56,9 @@ Remember, this application requires X11, PulseAudio and GStreamer plugins instal
[Download VokoscreenNG][6]
* [Home page][7]
**More Information**
* [Home page][7]
#### Restreamer
@ -64,52 +66,46 @@ The Restreamer application enables you to live stream videos and screencasts dir
This application is feature-rich and comes with a fair list of features. Heres a quick peek at its features:
* H.264 streaming support
* Built-in HTML5 video play
* Available for Linux, macOS, Windows and as Docker images
* Supports your own website plus YouTube, Twitchm, Facebook, Vimeo, Wowza and more
* Multiple video source support [IP Camera][8], USB Cameram or any H.2645 streams
* Encoding and Audio source support
* Snapshots as form of JPEG support in regular interval
* Access stream status via JSON HTTP API for additional programming
* H.264 streaming support
* Built-in HTML5 video play
* Available for Linux, macOS, Windows and as Docker images
* Supports your own website plus YouTube, Twitchm, Facebook, Vimeo, Wowza and more
* Multiple video source support [IP Camera][8], USB Cameram or any H.2645 streams
* Encoding and Audio source support
* Snapshots as form of JPEG support in regular interval
* Access stream status via JSON HTTP API for additional programming
![Restreamer][9]
[][10]
SEE ALSO:   10 Necessary Apps to Improve Your GNOME Desktop Experience [Part 4]
**How to Install**
The installation of Restreamer is a little tricky because its distributed via Docker images. You can find the instructions to install Linux, Windows, and macOS on the below link.
[Download Restreamer][11]
* [Home Page][12]
* [Documentation][13]
* [Source Code][14]
[Download Restreamer][10]
**More Information**
* [Home Page][11]
* [Documentation][12]
* [Source Code][13]
#### ffscreencast
The ffscreencast is a command-line streaming application that uses the ffmpeg library. It leverages the power of ffmpeg and acts as a wrapper to it. Although it is available as a command line, you can take advantage of its powerful features such as multiple sources and recordings devices directly via the terminal. It supports multiple display setups as well. You can also overlay your camera feed on top of your desktop screencast.
![Open Streaming Platform][15]
![Open Streaming Platform - - Live Streaming Applications for Linux][14]
**How to Install**
To install this application, you need to clone the git repo and then copy the contents to /bin directory for the global execution of the `ffscreencast` command.
```
git clone https://github.com/cytopia/ffscreencast
cd ffscreencast
sudo cp bin/ffscreencast /usr/local/bin
git clone https://github.com/cytopia/ffscreencastcd ffscreencastsudo cp bin/ffscreencast /usr/local/bin
```
You can run this application with `ffscreencast` command from the terminal.
[Source code &amp; Home page][16]
[Source code & Home page][15]
#### Open Streaming platforms
@ -117,31 +113,31 @@ The final application in this list is Open Streaming Platform (OSP), an open-sou
This application is feature-rich and powerful when used correctly. Because of the below essential features:
* RTMP Streaming from an input source like Open Broadcast Software (OBS).
* Multiple Channels per User, allowing a single user to broadcast multiple streams at the same time without needing multiple accounts.
* Video Stream Recording and On-Demand Playback.
* Manual Video Uploading of MP4s that are sourced outside of OSP
* Video Clipping Create Shorter Videos of Notable Moments
* Real-Time Chat Moderation by Channel Owners (Banning/Unbanning)
* Admin Controlled Adaptive Streaming
* Protected Channels Allow Access only to the audience you want.
* Live Channels Keep chatting and hang out when a stream isnt on
* Webhooks Connect OSP to other services via fully customizable HTTP requests which will pass information
* Embed your stream or video directly into another web page easily
* Share channels or videos via Facebook or Twitter quickly
* Ability to Customize the UI as a Theme for your own personal look
* RTMP Streaming from an input source like Open Broadcast Software (OBS).
* Multiple Channels per User, allowing a single user to broadcast multiple streams at the same time without needing multiple accounts.
* Video Stream Recording and On-Demand Playback.
* Manual Video Uploading of MP4s that are sourced outside of OSP
* Video Clipping Create Shorter Videos of Notable Moments
* Real-Time Chat Moderation by Channel Owners (Banning/Unbanning)
* Admin Controlled Adaptive Streaming
* Protected Channels Allow Access only to the audience you want.
* Live Channels Keep chatting and hang out when a stream isnt on
* Webhooks Connect OSP to other services via fully customizable HTTP requests which will pass information
* Embed your stream or video directly into another web page easily
* Share channels or videos via Facebook or Twitter quickly
* Ability to Customize the UI as a Theme for your own personal look
**How to Install**
To install the Open Streaming Platform, follow the below page for detailed instructions.
[Download Open Streaming Platform][17]
* [Home Page][18]
* [Source Code][19]
* [Documentation][20]
[Download Open Streaming Platform][16]
**More Information**
* [Home Page][17]
* [Source Code][18]
* [Documentation][19]
### Closing Notes
@ -151,25 +147,19 @@ Let me know your favourite live streaming software in the comment box below.
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!
##### Also Read
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/
作者:[Arindam][a]
选题:[lujun9972][b]
选题:[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/lujun9972
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2022/02/OBS-Studio.jpg
[2]: https://obsproject.com/wiki/install-instructions#linux
[3]: https://obsproject.com/
@ -179,18 +169,13 @@ via: https://www.debugpoint.com/2022/02/live-streaming-applications-linux-2022/
[7]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html
[8]: https://www.debugpoint.com/2018/08/onvifviewer-internet-camera-viewer-for-linux/
[9]: https://www.debugpoint.com/wp-content/uploads/2022/02/Restreamer.jpg
[10]: https://www.debugpoint.com/2022/02/best-gnome-apps-part-4/
[11]: https://datarhei.github.io/restreamer/docs/installation-index.html
[12]: https://datarhei.github.io/restreamer/
[13]: https://datarhei.github.io/restreamer/docs/index.html
[14]: https://github.com/datarhei/restreamer
[15]: https://www.debugpoint.com/wp-content/uploads/2022/02/Open-Streaming-Platform-1024x513.jpg
[16]: https://github.com/cytopia/ffscreencast
[17]: https://wiki.openstreamingplatform.com/Install/Standard
[18]: https://openstreamingplatform.com/
[19]: https://gitlab.com/Deamos/flask-nginx-rtmp-manager
[20]: https://wiki.openstreamingplatform.com/
[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
[10]: https://datarhei.github.io/restreamer/docs/installation-index.html
[11]: https://datarhei.github.io/restreamer/
[12]: https://datarhei.github.io/restreamer/docs/index.html
[13]: https://github.com/datarhei/restreamer
[14]: https://www.debugpoint.com/wp-content/uploads/2022/02/Open-Streaming-Platform-1024x513.jpg
[15]: https://github.com/cytopia/ffscreencast
[16]: https://wiki.openstreamingplatform.com/Install/Standard
[17]: https://openstreamingplatform.com/
[18]: https://gitlab.com/Deamos/flask-nginx-rtmp-manager
[19]: https://wiki.openstreamingplatform.com/

View File

@ -9,8 +9,8 @@
Transform Your Arch Installation with Stunning XMonad WM Setup
======
THIS ARTICLE GIVES YOU A STEP-BY-STEP INSTALLATION GUIDE FOR THE XMONAD
SETUP IN ARCH LINUX WITH A CUSTOM PRE-CONFIGURED SCRIPT.
This article gives you a step-by-step installation guide for the xmonad setup in arch linux with a custom pre-configured script.
### What is XMonad
The [xmonad][1] is a dynamic tiling window manager for X Window system written in Haskell programming language. It is famous for its window automation, stability, minimal, workspace features, and more unique features. With features like multiple display support, auto window tiling management, quick keyboard navigation, extension support, this window manager is one of the popular choices for those users who wants a productive and faster working system.
@ -25,48 +25,32 @@ You can learn more about this window manager at [https://xmon][1][ad.org/][1].
This guide assumes that you have a functional Arch Linux system ready to follow the below steps. If you want to install Arch Linux, then you can follow our guides as below:
* [How to Install Arch Linux via archinstall (recommended)][3]
* [How to Install Arch Linux (basics)][4]
* [How to Install Arch Linux via archinstall (recommended)][3]
* [How to Install Arch Linux (basics)][4]
For this guide, we will use [Axarvas pre-configured xmonad script][5], which comes with xmonad, Eww (Elkowars Wacky Widgets is a standalone widget system made in Rust), rofi (window switcher), tint2 (panels and taskbar) and some cool widgets. This guide is only for physical systems and not virtual machines.
Using this personal script is best for novice Arch Linux users because it is unnecessary to go through the hassles of choosing and installing each of the above components and configure them separately.
* Ensure that you are logged on to the Arch Linux system as an admin user (preferable). And connected to the internet.
* In the terminal prompt, install the following components while in the home directory.
* Ensure that you are logged on to the Arch Linux system as an admin user (preferable). And connected to the internet.
* In the terminal prompt, install the following components while in the home directory.
```
sudo pacman -Syu base-devel git nano
```
* Wait for the download to complete. Then clone the following [Axarvas repo][5] from GitHub.
* Wait for the download to complete. Then clone the following [Axarvas repo][5] from GitHub.
```
git clone https://github.com/Axarva/dotfiles-2.0.git
```
* After the above command is complete, browse to the dotfiles-2.0 directory. Here you should see a script `install-on-arch.sh`. Give the execute permission on this script and run. All these you can do with the below set of commands.
* After the above command is complete, browse to the dotfiles-2.0 directory. Here you should see a script `install-on-arch.sh`. Give the execute permission on this script and run. All these you can do with the below set of commands.
```
cd ./dotfiles-2.0
chmod +x ./install-on-arch.sh
./install-on-arch.sh
```
The above script will take some time to complete. It will download all the required packages for xmonad setup in Arch Linux. And at the end, the script will compile the entire source code that you downloaded in the first step, including xmonad and other additional utilities.
@ -89,30 +73,20 @@ Congratulations if you reached this far. Its time for some configuration. Onc
Installing the xmonad window manager is not sufficient. You have to tell the Arch system where it should pick the executables and widgets. Also, you have to manually configure to tell X Windows server to execute the main xmonad binary. When you use a stacking window system (such as GNOME, KDE Plasma, etc.), the display manager (such as lightdm) takes care of this.
* Open the `~/.bashrc` file from the terminal prompt and append the $HOME/bin.
* Open the `~/.bashrc` file from the terminal prompt and append the $HOME/bin.
![Updating bashrc file][9]
* Open the `~/.bash_profile` file and add startx at the beginning to start the xserver when logging in. Save and exit from the file.
* Open the `~/.bash_profile` file and add startx at the beginning to start the xserver when logging in. Save and exit from the file.
![Updating bash_profile file][10]
* Open `~/.xinitrc` file and add `exec xmonad`. This file is new. Save the file once you add the command.
* Open `~/.xinitrc` file and add `exec xmonad`. This file is new. Save the file once you add the command.
![Create xinitrc file][11]
* The steps are almost complete, open the `~/dotfiles-2.0/.config/alacritty.yml` file and change the font size for the terminal to something larger than the default value of 9. This is an optional step, but its better to change this. Save and close the file.
* Exit and log in again. And if all goes well, you should see a default xmonad desktop as below. Now, if you like to configure further such as installing applications and other steps, proceed to the next step.
* The steps are almost complete, open the `~/dotfiles-2.0/.config/alacritty.yml` file and change the font size for the terminal to something larger than the default value of 9. This is an optional step, but its better to change this. Save and close the file.
* Exit and log in again. And if all goes well, you should see a default xmonad desktop as below. Now, if you like to configure further such as installing applications and other steps, proceed to the next step.
![xmonad base install in Arch Linux before configuration][12]
@ -122,8 +96,6 @@ The default install in this process gives you a basic setup without the necessar
[][13]
SEE ALSO:   How to Install yay AUR Helper in Arch Linux [Beginners Guide]
Here, I have compiled a list of some famous and essential software for this setup. This step is optional, and you can install something else as you wish. However, you can install using the command that follows this list.
* Ristretto Image viewer
@ -134,12 +106,8 @@ Here, I have compiled a list of some famous and essential software for this setu
* Thunar File manager
* KSnip Screenshot tool
```
pacman -S gtklib firefox leafpad libreoffice thunar ksnip ristretto gimp feh gvfs polkit-gnome
```
The gvfs and polkit-gnome packages are for Thunar and detect USB drives.
@ -201,12 +169,6 @@ With that said, I hope this guide helps you to set up your xmonad window manager
Cheers.
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][19], [Twitter][20], [YouTube][21], and [Facebook][22] and never miss an update!
##### Also Read
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/02/xmonad-arch-linux-setup/
@ -238,7 +200,3 @@ via: https://www.debugpoint.com/2022/02/xmonad-arch-linux-setup/
[16]: https://www.debugpoint.com/wp-content/uploads/2022/02/xmonad-performance-in-Arch-Linux-during-idle-state-1024x575.jpg
[17]: https://www.debugpoint.com/wp-content/uploads/2022/02/xmonad-performance-in-Arch-Linux-during-heavy-workflow-state-1024x575.jpg
[18]: https://www.debugpoint.com/tag/arch-linux
[19]: https://t.me/debugpoint
[20]: https://twitter.com/DebugPoint
[21]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[22]: https://facebook.com/DebugPoint

View File

@ -1,7 +1,7 @@
[#]: subject: "10 Awesome Apps to Improve Your GNOME Desktop Experience [Part 5]"
[#]: via: "https://www.debugpoint.com/2022/03/best-gnome-apps-part-5/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,35 +9,31 @@
10 Awesome Apps to Improve Your GNOME Desktop Experience [Part 5]
======
HERE, WE SHOWCASE THE NEXT SET OF 10 GNOME APPS THAT WILL SUPERCHARGE
YOUR PRODUCTIVITY WHILE USING GNOME DESKTOP.
Here, we showcase the next set of 10 GNOME Apps that will improve your productivity while using your favourite GNOME Desktop.
At debugpoint.com, we showcase some cool and helpful GNOME apps over a five-part series. The main reason is to raise awareness about the rich GNOME ecosystems with these awesome apps. And it also helps the developers as our readers give these awesome GNOME apps much-needed recognition.
This post is the final part, i.e. part 5 of the awesome GNOME app series. In this part 5, we will showcase ten applications.
If you missed the last parts, you can read the other parts of this series via the below links.
* [Part 1][1]
* [Part 2][2]
* [Part 3][3]
* [Part 4][4]
* [Part 1][1]
* [Part 2][2]
* [Part 3][3]
* [Part 4][4]
In this article, we covered the following list of awesome GNOME Apps.
* [Podcasts podcasts client][5]
* [Tootle Mastodon client][6]
* [Tangram Web App Browser][7]
* [Wike Wikipedia browser for desktop][8]
* [Devhelp API Search for developers][9]
* [Lorem Random text generator][10]
* [Rnote Whiteboard drawing app][11]
* [Frogr Flickr Client][12]
* [GTG Personal task and to-do manager][13]
* [Recipes Cooking guide][14]
* Podcasts podcasts client
* Tootle Mastodon client
* Tangram Web App Browser
* Wike Wikipedia browser for desktop
* Devhelp API Search for developers
* Lorem Random text generator
* Rnote Whiteboard drawing app
* Frogr Flickr Client
* GTG Personal task and to-do manager
* Recipes Cooking guide
### 10 Awesome GNOME Apps
@ -47,25 +43,25 @@ We all love Podcasts, and its still going strong. Podcasts are native GNOME a
Heres a quick summary of the features:
* Nice and clean user interface UI
* Play, update and complete management of your podcasts from UI
* Well, integration with GNOME Desktop such as notifications.
* Bookmark your listening to start listening over again
* Support of RSS/Atop for podcasting service via Soundcloud and iTunes
* Import option via OPML files
* Nice and clean user interface UI
* Play, update and complete management of your podcasts from UI
* Well, integration with GNOME Desktop such as notifications.
* Bookmark your listening to start listening over again
* Support of RSS/Atop for podcasting service via Soundcloud and iTunes
* Import option via OPML files
![Podcasts App][5]
**How to Install**
![Podcasts App][15]
You need to [Setup Flatpak][6] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
[Install Podcast][17]
* [Home page][18]
* [Source code][19]
[Install Podcast][7]
**More details about Podcasts**
* [Home page][8]
* [Source code][9]
#### Tootle Mastodon client
@ -73,65 +69,69 @@ The next app we would like to feature is Tootle a Mastodon client for the GN
This application well integrates with the GNOME desktop and comes with a Flatpak build for installation.
![Tootle][20]
![Tootle][10]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Tootle][21]
You need to [Setup Flatpak][11] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][22]
* [Source code][23]
[Install Tootle][12]
**More details about Tootle**
* [Home page][13]
* [Source code][14]
#### Tangram Web app browser
This application is one of my favourites. And I am sure it would be for you as well. Tangram is a browser for Web Apps. Web Apps behaves as desktop apps for your favourite websites. So, using Tangram, you can manage your multiple web applications together with its unique vertical tab browser.
Each of the tabs is persistent and independent. That means, for example, you can open multiple Google accounts together in separate tabs without worrying about login conflicts or expiry. You can also group the type of web apps using this application. Suppose you would like to group all messager applications such as WhatsApp, Facebook Meeesagner &amp; Telegram. In that case, you can do that quickly, and its easier for you to monitor and be productive.
Each of the tabs is persistent and independent. That means, for example, you can open multiple Google accounts together in separate tabs without worrying about login conflicts or expiry. You can also group the type of web apps using this application. Suppose you would like to group all messager applications such as WhatsApp, Facebook Meeesagner & Telegram. In that case, you can do that quickly, and its easier for you to monitor and be productive.
If used and appropriately configured, Tangram can reduce digital notification overhead in your mobile, save time and eventually help you focus more.
![Tangram][24]
![Tangram - an awesome GNOME app for all][15]
**How to Install**
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
[Install Tangram][25]
* [Home page][26]
* [Source code][27]
[Install Tangram][17]
**More details about Tangram**
* [Home page][18]
* [Source code][19]
#### Wike Wikipedia Browser
We all love Wikipedia. There is a GNOME native application to browse Wikipedia, right from your desktop if I tell you. The apps name is Wike, and it comes with the below set of features.
* Open multiple articles in tabs
* Multiple languages
* Search suggestions
* List of recent articles
* Simple bookmarks management
* Text search in articles
* Article table of contents
* View article in other languages
* GNOME Shell search integration
* Light, dark and sepia themes
* Open multiple articles in tabs
* Multiple languages
* Search suggestions
* List of recent articles
* Simple bookmarks management
* Text search in articles
* Article table of contents
* View article in other languages
* GNOME Shell search integration
* Light, dark and sepia themes
I am sure you can get the most out of Wikipedia for your research, knowledge gathering, or work with the above features.
![Wike an awesome GNOME app][28]
![Wike - an awesome GNOME app][20]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Wike][29]
You need to [Setup Flatpak][21] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][30]
* [Source code][30]
[Install Wike][22]
**More details about Wike**
* [Home page][23]
* [Source code][24]
#### Devhelp API Browser
@ -139,22 +139,20 @@ The next app we would like to highlight is Devhelp. As its name says, this deskt
By default, it comes with GTK-doc, i.e. GTK documentation are available as per the installations. However, you can configure it for other development languages provided; you have the API documentation HTML and *.devhelp2 index file is generated.
[][31]
SEE ALSO:   Top 10 KDE Plasma Hidden Feature That You Didn't Know About
A fantastic tool, I must say.
![Devhelp][32]
![Devhelp][25]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install devhelp][33]
You need to [Setup Flatpak][26] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][34]
* [Source code][35]
[Install devhelp][27]
**More details about Devhelp**
* [Home page][28]
* [Source code][29]
#### Lorem Random Text Generator
@ -162,32 +160,36 @@ We often need placeholder text for various needs. And for that, the famous “Lo
This GNOME app, named Lorem, does just that. Based on your input, it can generate blocks of text that you can easily copy and use for your work.
![Lorem][36]
![Lorem][30]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Lorem][37]
You need to [Setup Flatpak][31] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][38]
* [Source code][39]
[Install Lorem][32]
**More details about Lorem**
* [Home page][33]
* [Source code][34]
#### Rnote Whiteboard Tool
Rnote is an excellent application for taking handwritten notes via touch devices. This application is vector image-based and helps to draw annotate pictures and PDFs. It brings native .rnote file format with import/export options for png, jpeg, SVG and PDF.
One of the cool features of Rnote is that it supports [Xournal++ file format][40] support which makes it a must-have tool.
One of the cool features of Rnote is that it supports [Xournal++ file format][35] support which makes it a must-have tool.
![Rnote Whiteboard Application for Linux based on GTK4 and Rust][41]
![Rnote Whiteboard Application for Linux based on GTK4 and Rust][36]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Rnote][42]
You need to [Setup Flatpak][37] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Source code][43]
[Install Rnote][38]
**More details about Rnote**
* [Source code][39]
#### Frogr Flickr Client
@ -195,33 +197,37 @@ If you still love and use the image hosting platform Flickr, then Frogr is the t
It is a perfect application for those whose workflow deals with heavy photo management and doesnt want to deal with web browsers.
![Frogr][44]
![Frogr][40]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Frogr][45]
You need to [Setup Flatpak][41] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][46]
* [Source code][47]
[Install Frogr][42]
**More details about Frogr**
* [Home page][43]
* [Source code][44]
#### GTG Getting Things GNOME: To do manager
Are you procrastinating too much or having trouble finishing small to larger tasks in your day to day life. Then this next application is perfect for you. GTG, aka Getting Things Gnome, is one of the best personal tasks and to-do managers and organizers for GNOME Desktop. It is inspired by the [Getting Things Done methodology][48] and brings more features to manage your time while accomplishing tasks perfectly.
Are you procrastinating too much or having trouble finishing small to larger tasks in your day to day life. Then this next application is perfect for you. GTG, aka Getting Things Gnome, is one of the best personal tasks and to-do managers and organizers for GNOME Desktop. It is inspired by the[Getting Things Done methodology][45] and brings more features to manage your time while accomplishing tasks perfectly.
GTG user interface is neat with flexibility that helps you create and manage tasks with tagging, dependencies, colour codes, search, and many search features. If you have not tried this app yet, you should check it out.
![GTG][49]
![GTG][46]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install GTG][50]
You need to [Setup Flatpak][47] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][51]
* [Documentation][52]
[Install GTG][48]
**More details about GTG**
* [Home page][49]
* [Documentation][50]
#### Recipes Cooking helper
@ -231,16 +237,18 @@ Right from its user interface, you can discover what to cook today, tomorrow or
Interested? Heres how to install it.
![Recipes][53]
![Recipes][51]
You need to [Setup Flatpak][16] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
**How to Install**
[Install Recipes][54]
You need to [Setup Flatpak][52] for your Linux distribution. And then click on the below button to launch the native software manager to install (such as Software or Discover).
* [Home page][55]
* [Source code][56]
[Install Recipes][53]
**More details about Recipes**
* [Home page][54]
* [Source code][55]
### Closing Notes
@ -248,90 +256,83 @@ This concludes part 5 and the GNOME Apps series. I hope you get to know many unk
If you missed the previous stories, you could read them here.
[Part 1][1] [Part 2][2] [Part 3][3] [Part 4][4]
[Part 1][56] [Part 2][57] [Part 3][58] [Part 4][59]
And finally, do let me know your comments, suggestions, or anything in the comment box below. And stay tuned for the next series on a different topic.
Cheers.
_Some image credit: GNOME and respective developers_
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][57], [Twitter][58], [YouTube][59], and [Facebook][60] and never miss an update!
##### Also Read
*Some image credit: GNOME and respective developers*
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/03/best-gnome-apps-part-5/
作者:[Arindam][a]
选题:[lujun9972][b]
选题:[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/lujun9972
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-1/
[2]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-2/
[3]: https://www.debugpoint.com/2022/01/best-gnome-apps-part-3/
[4]: https://www.debugpoint.com/2022/02/best-gnome-apps-part-4/
[5]: tmp.LpD9K2ZERp#podcasts
[6]: tmp.LpD9K2ZERp#tootle
[7]: tmp.LpD9K2ZERp#tangram
[8]: tmp.LpD9K2ZERp#wike
[9]: tmp.LpD9K2ZERp#devhelp
[10]: tmp.LpD9K2ZERp#lorem
[11]: tmp.LpD9K2ZERp#rnote
[12]: tmp.LpD9K2ZERp#frogr
[13]: tmp.LpD9K2ZERp#gtg
[14]: tmp.LpD9K2ZERp#recipes
[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/Podcasts-App-1024x579.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/Podcasts-App.jpg
[6]: https://flatpak.org/setup/
[7]: https://dl.flathub.org/repo/appstream/org.gnome.Podcasts.flatpakref
[8]: https://wiki.gnome.org/Apps/Podcasts
[9]: https://gitlab.gnome.org/World/podcasts
[10]: https://www.debugpoint.com/wp-content/uploads/2022/03/Tootle.jpg
[11]: https://flatpak.org/setup/
[12]: https://dl.flathub.org/repo/appstream/com.github.bleakgrey.tootle.flatpakref
[13]: https://apps.gnome.org/app/com.github.bleakgrey.tootle/
[14]: https://github.com/bleakgrey/tootle
[15]: https://www.debugpoint.com/wp-content/uploads/2022/03/Tangram-1024x573.jpg
[16]: https://flatpak.org/setup/
[17]: https://dl.flathub.org/repo/appstream/org.gnome.Podcasts.flatpakref
[18]: https://wiki.gnome.org/Apps/Podcasts
[19]: https://gitlab.gnome.org/World/podcasts
[20]: https://www.debugpoint.com/wp-content/uploads/2022/03/Tootle.jpg
[21]: https://dl.flathub.org/repo/appstream/com.github.bleakgrey.tootle.flatpakref
[22]: https://apps.gnome.org/app/com.github.bleakgrey.tootle/
[23]: https://github.com/bleakgrey/tootle
[24]: https://www.debugpoint.com/wp-content/uploads/2022/03/Tangram-1024x573.jpg
[25]: https://dl.flathub.org/repo/appstream/re.sonny.Tangram.flatpakref
[26]: https://apps.gnome.org/app/re.sonny.Tangram/
[27]: https://github.com/sonnyp/Tangram
[28]: https://www.debugpoint.com/wp-content/uploads/2022/03/Wike-an-awesome-GNOME-app.jpg
[29]: https://dl.flathub.org/repo/appstream/com.github.hugolabe.Wike.flatpakref
[30]: https://hugolabe.github.io/Wike/
[31]: https://www.debugpoint.com/2021/12/kde-plasma-hidden-feature/
[32]: https://www.debugpoint.com/wp-content/uploads/2022/03/Devhelp-1024x574.jpg
[33]: https://dl.flathub.org/repo/appstream/org.gnome.Devhelp.flatpakref
[34]: https://apps.gnome.org/app/org.gnome.Devhelp/
[35]: https://gitlab.gnome.org/GNOME/devhelp
[36]: https://www.debugpoint.com/wp-content/uploads/2022/03/Lorem.jpg
[37]: https://dl.flathub.org/repo/appstream/org.gnome.design.Lorem.flatpakref
[38]: https://apps.gnome.org/app/org.gnome.design.Lorem/
[39]: https://gitlab.gnome.org/World/design/lorem
[40]: https://www.debugpoint.com/2022/02/top-whiteboard-applications-linux/
[41]: https://www.debugpoint.com/wp-content/uploads/2022/02/Rnote-Whiteboard-Application-for-Linux-based-on-GTK4-and-Rust-1024x576.jpg
[42]: https://dl.flathub.org/repo/appstream/com.github.flxzt.rnote.flatpakref
[43]: https://github.com/flxzt/rnote
[44]: https://www.debugpoint.com/wp-content/uploads/2022/03/Frogr.jpg
[45]: https://flathub.org/repo/appstream/org.gnome.frogr.flatpakref
[46]: https://wiki.gnome.org/Apps/Frogr
[47]: https://gitlab.gnome.org/GNOME/frogr
[48]: https://en.wikipedia.org/wiki/Getting_Things_Done
[49]: https://www.debugpoint.com/wp-content/uploads/2022/03/GTG-1024x669.jpg
[50]: https://dl.flathub.org/repo/appstream/org.gnome.GTG.flatpakref
[51]: https://wiki.gnome.org/Apps/GTG
[52]: https://fortintam.com/gtg/user_manual/
[53]: https://www.debugpoint.com/wp-content/uploads/2022/03/Recepies.jpg
[54]: https://gitlab.gnome.org/GNOME/recipes/raw/master/flatpak/gnome-recipes.flatpakref
[55]: https://wiki.gnome.org/Apps/Recipes
[56]: https://gitlab.gnome.org/GNOME/recipes/
[57]: https://t.me/debugpoint
[58]: https://twitter.com/DebugPoint
[59]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[60]: https://facebook.com/DebugPoint
[17]: https://dl.flathub.org/repo/appstream/re.sonny.Tangram.flatpakref
[18]: https://apps.gnome.org/app/re.sonny.Tangram/
[19]: https://github.com/sonnyp/Tangram
[20]: https://www.debugpoint.com/wp-content/uploads/2022/03/Wike-an-awesome-GNOME-app.jpg
[21]: https://flatpak.org/setup/
[22]: https://dl.flathub.org/repo/appstream/com.github.hugolabe.Wike.flatpakref
[23]: https://hugolabe.github.io/Wike/
[24]: https://hugolabe.github.io/Wike/
[25]: https://www.debugpoint.com/wp-content/uploads/2022/03/Devhelp.jpg
[26]: https://flatpak.org/setup/
[27]: https://dl.flathub.org/repo/appstream/org.gnome.Devhelp.flatpakref
[28]: https://apps.gnome.org/app/org.gnome.Devhelp/
[29]: https://gitlab.gnome.org/GNOME/devhelp
[30]: https://www.debugpoint.com/wp-content/uploads/2022/03/Lorem.jpg
[31]: https://flatpak.org/setup/
[32]: https://dl.flathub.org/repo/appstream/org.gnome.design.Lorem.flatpakref
[33]: https://apps.gnome.org/app/org.gnome.design.Lorem/
[34]: https://gitlab.gnome.org/World/design/lorem
[35]: https://www.debugpoint.com/2022/02/top-whiteboard-applications-linux/
[36]: https://www.debugpoint.com/wp-content/uploads/2022/02/Rnote-Whiteboard-Application-for-Linux-based-on-GTK4-and-Rust.jpg
[37]: https://flatpak.org/setup/
[38]: https://dl.flathub.org/repo/appstream/com.github.flxzt.rnote.flatpakref
[39]: https://github.com/flxzt/rnote
[40]: https://www.debugpoint.com/wp-content/uploads/2022/03/Frogr.jpg
[41]: https://flatpak.org/setup/
[42]: https://flathub.org/repo/appstream/org.gnome.frogr.flatpakref
[43]: https://wiki.gnome.org/Apps/Frogr
[44]: https://gitlab.gnome.org/GNOME/frogr
[45]: https://en.wikipedia.org/wiki/Getting_Things_Done
[46]: https://www.debugpoint.com/wp-content/uploads/2022/03/GTG.jpg
[47]: https://flatpak.org/setup/
[48]: https://dl.flathub.org/repo/appstream/org.gnome.GTG.flatpakref
[49]: https://wiki.gnome.org/Apps/GTG
[50]: https://www.debugpoint.com//fortintam.com/gtg/user_manual/
[51]: https://www.debugpoint.com/wp-content/uploads/2022/03/Recepies.jpg
[52]: https://flatpak.org/setup/
[53]: https://gitlab.gnome.org/GNOME/recipes/raw/master/flatpak/gnome-recipes.flatpakref
[54]: https://wiki.gnome.org/Apps/Recipes
[55]: https://gitlab.gnome.org/GNOME/recipes/
[56]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-1/
[57]: https://www.debugpoint.com/2021/12/best-gnome-apps-part-2/
[58]: https://www.debugpoint.com/2022/01/best-gnome-apps-part-3/
[59]: https://www.debugpoint.com/2022/02/best-gnome-apps-part-4/

View File

@ -9,8 +9,8 @@
Top Nitrux Applications (Maui) Everyone Should Try
======
THIS ARTICLE SHOWCASES SOME OF THE EXCELLENT MAUI NATIVE APPLICATIONS
THAT COME AS DEFAULT IN NITRUX OS LINUX DISTRIBUTION.
This article showcases some of the excellent maui native applications that come as default in nitrux os linux distribution.
### What is Maui Apps and Nitrux OS
[Nitrux][1] is a Linux Distribution and a complete operating system based on Debian with the power NX Desktop, which uses KDE Plasma and Mauikit components. It is one of the beautiful Linux distributions today, giving you the best looks and performance.
@ -56,8 +56,6 @@ Other features that make it a most desirable text editors are
* Autosave
* Supports dark and light themes
This text editor reminds me of the great Gedit, which is [not a default editor anymore][7] in GNOME. Gedit [has all the features][8] of this text editor via plugins.
![Nota Text Editor][9]
@ -76,8 +74,6 @@ The [Clip][12] is the convergence video player for desktop and mobile phones tha
[][13]
SEE ALSO:   10 Necessary Apps to Improve Your GNOME Desktop Experience [Part 4]
##### Quick features of Clip
* Local, network and internet streaming playback (limited)
@ -86,8 +82,6 @@ SEE ALSO:   10 Necessary Apps to Improve Your GNOME Desktop Experience [Part 4]
* Subtitles support
* Based on the MPV video player
![Clip Video Player][14]
#### Station Terminal
@ -120,8 +114,6 @@ You can view the image metadata and basic image edition as well. The image editi
* Supports layers
* Cropping and rotating
However, you can not annotate with arrows or add any texts into the image.
![Pix Image Viewer][20]
@ -156,14 +148,6 @@ So, what is your favourite application on this list? Let me know in the comment
Cheers.
_Some image credits Maui, Nitrux team._
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][22], [Twitter][23], [YouTube][24], and [Facebook][25] and never miss an update!
##### Also Read
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/03/top-nitrux-maui-applications/
@ -198,7 +182,3 @@ via: https://www.debugpoint.com/2022/03/top-nitrux-maui-applications/
[19]: https://mauikit.org/apps/pix/
[20]: https://www.debugpoint.com/wp-content/uploads/2022/03/Pix-Image-Viewer.jpg
[21]: https://www.debugpoint.com/wp-content/uploads/2022/03/Downlaod-Nitrux-Maui-application-appimage-and-apk-files-1024x584.jpg
[22]: https://t.me/debugpoint
[23]: https://twitter.com/DebugPoint
[24]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[25]: https://facebook.com/DebugPoint

View File

@ -1,7 +1,7 @@
[#]: subject: "10 Features Why GNOME 42 is the Greatest Release Ever"
[#]: via: "https://www.debugpoint.com/2022/03/gnome-42-release/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,47 +9,47 @@
10 Features Why GNOME 42 is the Greatest Release Ever
======
WE THINK THESE GNOME 42 RELEASE FEATURES MAKE IT ONE OF THE GREAT
RELEASES IN GNOMES HISTORY. HERES WHY.
The GNOME Desktop is the most widely used desktop environment today. And it is probably the only desktop that new users to Linux experience for the first time. GNOME is the default desktop environment for Ubuntu and Fedora Linux. Hence its user base is in millions. 
We think these GNOME 42 release features make it one of the great releases in GNOMEs history. Heres why.
The upcoming GNOME 42 releases soon. And perhaps its one of the best releases so far in terms of new features, adoption of modern tech and moving away from the legacy codebase. 
The GNOME Desktop is the most widely used desktop environment today. And it is probably the only desktop that new users to Linux experience for the first time. GNOME is the default desktop environment for Ubuntu and Fedora Linux. Hence its user base is in millions.
The upcoming GNOME 42 releases soon. And perhaps its one of the best releases so far in terms of new features, adoption of modern tech and moving away from the legacy codebase.
The core, look and feel under the hood changes everything looks different for new and experienced users.
![GNOME 42 Desktop][1]
In this article, we would like to give you a tour of 10 features of GNOME 42, which makes it a significant release. 
In this article, we would like to give you a tour of 10 features of GNOME 42, which makes it a significant release.
### Great Features of GNOME 42 Release
#### 1\. Libadwaita and GTK4
#### 1. Libadwaita and GTK4
The libadwaita library is the modern building block for GTK4 applications. Its the GTK4 port of the libhandy library that defines the visual language of the GNOME desktop. The adoption of libadwaita is complex, and it impacts almost every modules component of the modern GNOME desktop, including the native applications. Imagine how difficult it is for a complete libadwaita and GTK4 adoption in development efforts, testing and other regressions.
The work started in GNOME 41 is now nearing completion in this GNOME 42 release. But what are the changes?
The libadwaita and GTK4 changes are visible in every user interface of the entire desktop. For example, you can see the flat buttons, well-justified labels, new colours, rounded corners, refined controls, etc. 
The libadwaita and GTK4 changes are visible in every user interface of the entire desktop. For example, you can see the flat buttons, well-justified labels, new colours, rounded corners, refined controls, etc.
Hence, from Files to Web, the Shell controls, menu items everything would look stunning with libadwaita and GTK4 in the GNOME 42 release.
#### 2\. Updated GNOME Shell Theme
#### 2. Updated GNOME Shell Theme
The GNOME default Shell theme changed in several places. In this release, those items menus, notifications, and overall look are more compact.
The menu items at the top bar, such as the Calendar or the system tray menu, are now closer to the top bar. The spacing between the text and options inside the menu is decreased. 
The menu items at the top bar, such as the Calendar or the system tray menu, are now closer to the top bar. The spacing between the text and options inside the menu is decreased.
![GNOME 42 Shell updates][2]
The on-screen display notifications are changed. Earlier, it used to be the large boxes with notification labels that are now changed to “pills” with a lesser display footprint. 
The on-screen display notifications are changed. Earlier, it used to be the large boxes with notification labels that are now changed to “pills” with a lesser display footprint.
![Revamped OSD and menu in GNOME 42][3]
And also, some inside performance boost makes GNOME 42 much faster than its predecessors.
#### 3\. Adaptive Dark Theme
#### 3. Adaptive Dark Theme
If you love dark themes and want your app to honour the systems dark look, you are in for a treat. The GNOME 42, with the help of libadwaita, brings native dark mode for all the supported applications. 
If you love dark themes and want your app to honour the systems dark look, you are in for a treat. The GNOME 42, with the help of libadwaita, brings native dark mode for all the supported applications.
If you choose a dark theme for GNOME Shell, the apps also follow that shells system style.
@ -59,33 +59,29 @@ For example, if you choose the below option in the new Text editor, it changes t
However, this feature needs to be implemented by the app developer to consume the exposed Shell settings.
#### 4\. Revamped System Settings with new Appearances
#### 4. Revamped System Settings with new Appearances
The fulcrum of the entire GNOME desktop is its settings window. From the settings window, you can tweak most of the desktop behaviour. The setting application itself is a complex app, and its ported to libadwaita. So, the looks of it changed with new styled widgets and controls. 
The fulcrum of the entire GNOME desktop is its settings window. From the settings window, you can tweak most of the desktop behaviour. The setting application itself is a complex app, and its ported to libadwaita. So, the looks of it changed with new styled widgets and controls.
One of the vital changes in the Settings window is the new Appearance page. This page gives you the option to view and toggle the desktop theme between light and dark. 
One of the vital changes in the Settings window is the new Appearance page. This page gives you the option to view and toggle the desktop theme between light and dark.
The Sharing page in the settings window gives you a redesigned remote desktop dialog showing options and preferences for remote desktop connection via RDP (not VNC).
![Appearance page in Settings][5]
#### 5\. Wallpaper that switches automatically with theme
#### 5. Wallpaper that switches automatically with theme
The above appearance page in settings also gives you a nice side-by-side look of the light and dark version. And when you change the system theme, the wallpaper also changes automatically! This is by far the most remarkable feature that GNOME 42 release brings.
[][6]
#### 6. Files icon change
SEE ALSO:   10 Things To Do After Installing Linux Mint 19 - Tara
#### 6\. Files icon change
The default folder icons in Files (Nautilus) didnt change for many years. In my opinion, everything changed over the years, but this piece remains the same. In GNOME 42, the folder icons colour in the Files file manager changes to light blue. 
The default folder icons in Files (Nautilus) didnt change for many years. In my opinion, everything changed over the years, but this piece remains the same. In GNOME 42, the folder icons colour in the Files file manager changes to light blue.
Arguably, blue might not be the best colour considering every aspect. But blue still goes well with GNOMEs default wallpaper and other component pallets. And a change to the default Files look is always welcome.
![Files with new color folders in GNOME 42][7]
![Files with new color folders in GNOME 42][6]
#### 7\. A brand new text editor
#### 7. A brand new text editor
A new Text Editor replaces the famous and fabulous Gedit in GNOME 42. The Gedit is a powerful and time-tested utility, and replacing all of its functionality takes time. The new Text Editor is built in GTK4 from scratch and brings some outstanding features, including built-in themes and light and dark mode. More features are expected to arrive in Text Editor in future.
@ -93,70 +89,60 @@ To be clear, Gedit doesnt go away. Its still there in the respective Linux
You can read our exclusive piece on Gedit and GNOME Text Editor below.
[Features about GNOME Text Editor][8]
[Features about GNOME Text Editor][7]
[Why Gedit is the great text editor][9]
[Why Gedit is the great text editor][8]
#### 8\. A native screenshot tool
#### 8. A native screenshot tool
One of the best features of the GNOME 42 release is the built-in screenshot and screen recording tool. You do not install any additional app for this. Your life will be easier with this tool, which takes care of the screenshot and screen recording with its nifty user interface when you press the `Print Screen` button.
In earlier releases, hitting the Print Screen takes the entire desktop screenshot and saves it. Now, you need to hit Enter key after pressing Print Screen from the keyboard. 
In earlier releases, hitting the Print Screen takes the entire desktop screenshot and saves it. Now, you need to hit Enter key after pressing Print Screen from the keyboard.
![GNOME 42 introduces new screenshot tool][10]
![GNOME 42 introduces new screenshot tool][9]
#### 9\. Stunning Wallpapers
#### 9. Stunning Wallpapers
A set of awesome wallpapers is about to treat you and give your favourite GNOME 42 desktop a visual uplift. And the wallpapers also have a dark version, which is set automatically when you choose dark over light.
#### 10\. Other Changes
#### 10. Other Changes
Some of the misc changes in the GNOME 42 release is the Eye of GNOME (image viewer) received a much-needed performance boost, Web browser GNOME Web now support hardware acceleration and user interface update in Maps. Also, a new Console application is a nice add on to this release which replaces GNOME Terminal.
So, thats about significant changes. But many changes make GNOME 42 release is one of the biggest releases in its history. 
So, thats about significant changes. But many changes make GNOME 42 release is one of the biggest releases in its history.
### How to get GNOME 42
GNOME 42 releases on March 23, 2022, and you get to experience it via [GNOME OS][11] right away.
GNOME 42 [was released on March 23, 2022][10], and you get to experience it via [GNOME OS][11] right away.
If you plan to get it via Linux Distribution, you have to wait for a little. [Ubuntu 22.04 LTS][12] will feature GNOME 42 (partial), due April 2022. And [Fedora 36][13], which is expected in April as well.
If you are an Arch Linux user, GNOME 42 will arrive soon in the main extra repo. Keep a watch on [this page][14] or check your Arch system via the usual `pacman -Syu` command. 
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][15], [Twitter][16], [YouTube][17], and [Facebook][18] and never miss an update!
##### Also Read
If you are an Arch Linux user, GNOME 42 will arrive soon in the main extra repo. Keep a watch on [this page][14] or check your Arch system via the usual `pacman -Syu` command.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/03/gnome-42-release/
作者:[Arindam][a]
选题:[lujun9972][b]
选题:[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/lujun9972
[1]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-42-Desktop-1024x563.jpg
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-42-Desktop.jpg
[2]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-42-Shell-updates.jpg
[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Revamped-OSD-and-menu-in-GNOME-42.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/03/This-option-makes-it-folow-dar-and-light-theme-automatically.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/Appearance-page-in-Settings-1024x708.jpg
[6]: https://www.debugpoint.com/2018/08/10-things-to-do-after-installing-linux-mint-19-tara/
[7]: https://www.debugpoint.com/wp-content/uploads/2022/03/Files-with-new-color-folders-in-GNOME-42.jpg
[8]: https://www.debugpoint.com/2021/12/gnome-text-editor/
[9]: https://www.debugpoint.com/2021/04/gedit-features/
[10]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-42-introduces-new-screenshot-tool-1024x699.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/Appearance-page-in-Settings.jpg
[6]: https://www.debugpoint.com/wp-content/uploads/2022/03/Files-with-new-color-folders-in-GNOME-42.jpg
[7]: https://www.debugpoint.com/2021/12/gnome-text-editor/
[8]: https://www.debugpoint.com/2021/04/gedit-features/
[9]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-42-introduces-new-screenshot-tool.jpg
[10]: https://release.gnome.org/42/
[11]: https://os.gnome.org/
[12]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[13]: https://www.debugpoint.com/2022/02/fedora-36/
[14]: https://archlinux.org/groups/x86_64/gnome/
[15]: https://t.me/debugpoint
[16]: https://twitter.com/DebugPoint
[17]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[18]: https://facebook.com/DebugPoint

View File

@ -1,7 +1,7 @@
[#]: subject: "10 Things to Do After Installing Ubuntu 22.04 [With Bonus Tip]"
[#]: via: "https://www.debugpoint.com/2022/04/10-things-to-do-ubuntu-22-04-after-install/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,20 +9,18 @@
10 Things to Do After Installing Ubuntu 22.04 [With Bonus Tip]
======
YOU MAY WANT TO TRY A SUMMARY OF 10 THINGS AFTER INSTALLING UBUNTU 22.04
LTS “JAMMY JELLYFISH” (GNOME EDITION).
You may want to try a summary of 10 things after installing Ubuntu 22.04 LTS “Jammy Jellyfish” (GNOME Edition).
I am sure you are excited to experience the brand new Ubuntu 22.04 LTS and its shiny new features. If you have already installed or upgraded from the prior release, you may want to customise your system before you start using it. Although the customisations are subjective and vary with use cases. However, we give you 10 pointers that you can do after installing Ubuntu 22.04 LTS. I hope it helps.
### 10 Things to Do After Installing Ubuntu 22.04
#### 1\. Update Your System
#### 1. Update Your System
Firstly, you should do some housekeeping after installing Ubuntu 22.04 LTS. Before you begin using the new system and configuring it, ensure that it is up to date with the latest packages from the Ubuntu Jammy repo. So, open a terminal window and run the below commands. Or, open Software Updater from the search.
```
sudo apt update && sudo apt upgrade
sudo apt update && sudo apt upgrade
```
![Update your Ubuntu 22.04 LTS System][1]
@ -31,19 +29,19 @@ Software application takes some time to load for the first time; hence you must
Finally, when everything completes, reboot your system to proceed.
#### 2\. Opt-In/Opt-Out from data collection and history settings
#### 2. Opt-In/Opt-Out from data collection and history settings
Secondly, its essential to review the privacy settings before using the system. Because we are all concerned about our usage data, location tracking, etc. So, to check them, open Settings from search and go to Privacy. The items you should review are Location Services and File History usage in your system. Make sure to change them as per your need.
![Review the privacy settings][2]
#### 3\. Configure KB shortcuts
#### 3. Configure KB shortcuts
To effectively use Ubuntu 22.04 system, keyboard shortcuts are essential. It helps your work faster. So, ideally, keyboard shortcuts are pre-configured, but you may want to change them based on your habits from `Settings > Keyboard > View and Customize Shortcuts`.
![Configure Keyboard shortcuts in Ubuntu 22.04][3]
#### 4\. Prepare for the backup
#### 4. Prepare for the backup
If you plan to use the system for a longer duration, it is super important to create a system checkpoint just after installation. Because in the future, if something goes wrong, you can always revert to your system as a fresh install.
@ -51,105 +49,89 @@ Ubuntu 22.04 comes with the built-in backup tool Backups. You can go ahead a
However, we recommend you use the great backup and restore tool TImeshift. It has many additional options and is well documented for heavy usage. To install Timeshift, you can use software or the terminal commands mentioned below.
As of writing this post, this Timeshift PPA is yet to be updated for Jammy Jellyfish. So, I would recommend you wait for a couple of days to install it via PPA. You can also monitor PPA updates [here][4]. You can always use the built-in backup tool as mentioned above.
After installation, launch Timeshift and follow the on-screen instructions to create a system restore point.
```
sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift
sudo add-apt-repository -y ppa:teejee2008/ppasudo apt-get updatesudo apt-get install timeshift
```
#### 5\. Explore the New Features
#### 5. Explore the New Features
Once you complete the above set of housekeepings, its time for you to explore the new features of Ubuntu 22.04. We covered the unique features of Ubuntu 22.04 and its flavours in detail in dedicated posts. You may want to check them out below.
* [Ubuntu 22.04 LTS GNOME][4]
* [Ubuntu MATE 22.04 LTS][5]
* [Kubuntu 22.04 LTS][6]
* [Xubuntu 22.04 LTS][7]
* [Ubuntu Budgie 22.04 LTS][8]
* [Lubuntu 22.04 LTS][9]
* [Ubuntu Kylin 22.04 LTS][10]
* [Ubuntu Studio 22.04 LTS][11]
* [Ubuntu 20.04 vs Ubuntu 22.04 Differences][12]
* [Ubuntu 22.04 LTS GNOME][5]
* [Ubuntu MATE 22.04 LTS][6]
* [Kubuntu 22.04 LTS][7]
* [Xubuntu 22.04 LTS][8]
* [Ubuntu Budgie 22.04 LTS][9]
* [Lubuntu 22.04 LTS][10]
* [Ubuntu Kylin 22.04 LTS][11]
* [Ubuntu Studio 22.04 LTS][12]
* [Ubuntu 20.04 vs Ubuntu 22.04 Differences][13]
#### 6\. Experience the first-ever Accent Colour in Ubuntu
#### 6. Experience the first-ever Accent Colour in Ubuntu
In addition to the above items, you may find the new accent colour interesting in this release. This is one of the new features which was due for a long time. So, in the Appearance settings, you can find the selected colour options.
You can choose your favourite colour and see the selection, the folder icon gradient changes with the colour. However, you can not select the custom colour at the moment. I am sure it will eventually come up in future releases.
![How Accent colour change impact looks in Ubuntu 22.04 LTS][13]
![How Accent colour change impact looks in Ubuntu 22.04 LTS][14]
#### 7\. Dark Mode and new controls
#### 7. Dark Mode and new controls
Besides that accent colour, this release, alongside GNOME 42, brings new style changes, thanks to GTK4 and libadwaita adoption. With this change, the built-in dark mode can apply across the desktop and application that supports it. Also, the controls such as buttons, notifications, rounded corners, scroll bars, etc. all are more stylish and compact in this release.
[][12]
SEE ALSO:   Difference Between Ubuntu 22.04 and Ubuntu 20.04 LTS
All of these together make this release a beautiful one.
#### 8\. Install GNOME Extensions
#### 8. Install GNOME Extensions
Additionally, you can take advantage of hundreds of excellent GNOME Extensions available. For example, you may want to customise the default Dock, Or, like a super cool blur effect, etc. you can quickly achieve these using the extensions.
We list here some of the exciting extensions you may want to try out after installing this release.
* [Blur My Shell][14] get an exciting blur effect on the default shell
* [Floating Dock][15] make your dock float wherever you want
* Dash to Dock: Enables you to control your Dash across the screen with various options.
* Caffeine: Enables you more productively.
* [Time ++][16]: Super handy extension to give you an alarm clock, stopwatch, time tracker, Pomodoro, and todo.txt manager all together.
* [NetSpeed][17]: Show your internet download and upload speed in the system tray.
* [Blur My Shell][15] get an exciting blur effect on the default shell
* [Floating Dock][16] make your dock float wherever you want
* Dash to Dock: Enables you to control your Dash across the screen with various options.
* Caffeine: Enables you more productively.
* [Time ++][17]: Super handy extension to give you an alarm clock, stopwatch, time tracker, Pomodoro, and todo.txt manager all together.
* [NetSpeed][18]: Show your internet download and upload speed in the system tray.
Before installing the above extensions, open a terminal prompt and install the chrome-gnome-shell using the below command to enable extensions.
```
sudo apt-get install chrome-gnome-shell
sudo apt-get install chrome-gnome-shell
```
Then go to [https://extensions.gnome.org][18] and enable the extensions for Firefox.
Then go to [https://extensions.gnome.org][19] and enable the extensions for Firefox.
If you use the Snap version of Firefox, then the extension connectivity wont work. So, uninstall the Firefox Snap version and use an alternate installation Or use a different browser (Such as Google Chrome, Chromium) that has a .deb version. Or, install the extension using the manual steps [outlined here in this article][19].
If you use the Snap version of Firefox, then the extension connectivity wont work. So, uninstall the Firefox Snap version and [use an alternate installation][20] Or use a different browser (Such as Google Chrome, Chromium) that has a .deb version. Or, install the extension using the manual steps [outlined here in this article][21].
#### 9\. Configure Email Client
#### 9. Configure Email Client
Moreover, a native desktop email client is always preferable over browser-based email access. Hence, I would recommend you configure Thunderbird with your email service provider. The setup is more straightforward and wizard-driven. It helps for offline and drafting work for heavy email users.
Alternatively, if you do not like Thunderbird, try to check out options you can read our list of [top free native Linux desktop email clients list][20] and choose your favourite.
Alternatively, if you do not like Thunderbird, try to check out options you can read our list of [top free native Linux desktop email clients list][22] and choose your favourite.
#### 10\. Install some additional packages and Software
#### 10. Install some additional packages and Software
In addition to the above items, you should install some additional packages and software because Ubuntu doesnt come with extra apps other than the native GNOME applications. We list here some of the important applications needed for basic desktop usage.
You can install them using the Software application.
* GIMP Advanced photo editor
* VLC Media play that plays anything without the need for additional codecs
* Google Chrome Browser for Google users.
* Leafpad A lightweight text editor (even lightweight from default gedit)
* Synaptic A far better package manager
* GIMP Advanced photo editor
* VLC Media play that plays anything without the need for additional codecs
* Google Chrome Browser for Google users.
* Leafpad A lightweight text editor (even lightweight from default gedit)
* Synaptic A far better package manager
Moreover, while installing Ubuntu, if you have not selected to install the restricted software to play audio and video media files, you can do it now. Because GNOME default Video player (Totem) can not play the basic mp4, etc. files without restricted software.
So, to install them, open the terminal and run the below command to install.
```
sudo apt install ubuntu-restricted-extras
sudo apt install ubuntu-restricted-extras
```
You can now play most video/audio files without any problem in Ubuntu.
@ -158,14 +140,12 @@ You can now play most video/audio files without any problem in Ubuntu.
Finally, I recommend you set up Flatpak the first time after installing Ubuntu 22.04 LTS. Because over time, I am sure you would install many Flatpak applications.
To set up Flatpak, [visit this page][21] and follow the instructions.
To set up Flatpak, [visit this page][23] and follow the instructions.
Once you complete the setup, I recommend installing the below two Flatpak apps. The Extension application helps you manage the GNOME Extensions installed in your system. Other than that, the Flatseal application helps you manage Flatpak applications permissions in a super friendly way.
* [Flatseal][22] Manage Flatpak permissions
* [Extensions][23] Manage GNOME extensions
* [Flatseal][24] Manage Flatpak permissions
* [Extensions][25] Manage GNOME extensions
### Summary
@ -173,47 +153,41 @@ Also, one of the crucial debatable things to do after installing Ubuntu 22.04 is
That said, I hope this list gives you and new users of Ubuntu some idea about making a productive Ubuntu 22.04 LTS desktop.
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][24], [Twitter][25], [YouTube][26], and [Facebook][27] and never miss an update!
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/10-things-to-do-ubuntu-22-04-after-install/
作者:[Arindam][a]
选题:[lujun9972][b]
选题:[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/lujun9972
[b]: https://github.com/lkxed
[1]: https://www.debugpoint.com/wp-content/uploads/2022/04/Update-your-Ubuntu-22.04-LTS-System.jpg
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Review-the-privacy-settings-1024x446.jpg
[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Review-the-privacy-settings.jpg
[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Configure-Keyboard-shortcuts-in-Ubuntu-22.04.jpg
[4]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[5]: https://www.debugpoint.com/2022/04/ubuntu-mate-22-04-lts/
[6]: https://www.debugpoint.com/2022/04/kubuntu-22-04-lts/
[7]: https://www.debugpoint.com/2022/04/xubuntu-22-04-lts/
[8]: https://www.debugpoint.com/2022/04/ubuntu-budgie-22-04-lts/
[9]: https://www.debugpoint.com/2022/04/lubuntu-22-04-lts/
[10]: https://www.debugpoint.com/2022/04/ubuntu-kylin-22-04-lts/
[11]: https://www.debugpoint.com/2022/04/ubuntu-studio-22-04-lts/
[12]: https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/
[13]: https://www.debugpoint.com/wp-content/uploads/2022/04/How-Accent-colour-change-impact-looks-in-Ubuntu-22.04-LTS.jpg
[14]: https://extensions.gnome.org/extension/3193/blur-my-shell/
[15]: https://extensions.gnome.org/extension/3730/floating-dock/
[16]: https://extensions.gnome.org/extension/1238/time/
[17]: https://extensions.gnome.org/extension/104/netspeed/
[18]: https://extensions.gnome.org/
[19]: https://www.debugpoint.com/2021/10/manual-installation-gnome-extension/
[20]: https://www.debugpoint.com/2019/06/best-email-client-linux-windows/
[21]: https://flatpak.org/setup/
[22]: https://flathub.org/apps/details/com.github.tchx84.Flatseal
[23]: https://flathub.org/apps/details/org.gnome.Extensions
[24]: https://t.me/debugpoint
[25]: https://twitter.com/DebugPoint
[26]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[27]: https://facebook.com/DebugPoint
[4]: https://launchpad.net/~teejee2008/+archive/ubuntu/timeshift/+packages
[5]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
[6]: https://www.debugpoint.com/2022/04/ubuntu-mate-22-04-lts/
[7]: https://www.debugpoint.com/2022/04/kubuntu-22-04-lts/
[8]: https://www.debugpoint.com/2022/04/xubuntu-22-04-lts/
[9]: https://www.debugpoint.com/2022/04/ubuntu-budgie-22-04-lts/
[10]: https://www.debugpoint.com/2022/04/lubuntu-22-04-lts/
[11]: https://www.debugpoint.com/2022/04/ubuntu-kylin-22-04-lts/
[12]: https://www.debugpoint.com/2022/04/ubuntu-studio-22-04-lts/
[13]: https://www.debugpoint.com/2022/04/difference-ubuntu-22-04-20-04/
[14]: https://www.debugpoint.com/wp-content/uploads/2022/04/How-Accent-colour-change-impact-looks-in-Ubuntu-22.04-LTS.jpg
[15]: https://extensions.gnome.org/extension/3193/blur-my-shell/
[16]: https://extensions.gnome.org/extension/3730/floating-dock/
[17]: https://extensions.gnome.org/extension/1238/time/
[18]: https://extensions.gnome.org/extension/104/netspeed/
[19]: https://extensions.gnome.org/
[20]: https://www.debugpoint.com/2021/09/remove-firefox-snap-ubuntu/
[21]: https://www.debugpoint.com/2021/10/manual-installation-gnome-extension/
[22]: https://www.debugpoint.com/2019/06/best-email-client-linux-windows/
[23]: https://flatpak.org/setup/
[24]: https://flathub.org/apps/details/com.github.tchx84.Flatseal
[25]: https://flathub.org/apps/details/org.gnome.Extensions

View File

@ -1,7 +1,7 @@
[#]: subject: "5 Best Mastodon Clients for Ubuntu and Other Linux"
[#]: via: "https://www.debugpoint.com/2022/04/mastodon-clients-linux/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,15 +9,15 @@
5 Best Mastodon Clients for Ubuntu and Other Linux
======
ARE YOU PLANNING TO LEAVE TWITTER AND JOIN MASTODON? USE THESE FREE AND
OPEN-SOURCE MASTODON CLIENTS FOR YOUR LINUX DESKTOP.
Are you planning to leave Twitter and join Mastodon? Use these free and open-source Mastodon clients for your Linux desktop.
[Mastodon][1] is a free and open-source microblogging platform similar to Twitter. It is designed as a decentralised platform that can communicate with other Fediverse protocols such as GNU Social and Pleroma. With the recent news stories about Twitter, many users are trying Mastodon and migrating to the platform.
With that in mind, we give you a list of free Mastodon clients for Linux desktops as well as Windows and macOS in this post.
### Top 5 Mastodon Clients for Ubuntu and Other Linux Distributions
#### 1\. Tootle
#### 1. Tootle
Perhaps the best on this list is the GNOME App Tootle. Tootle is a super-fast Mastodon client for Linux desktops written in GTK. It comes with a clean and native interface that you can use while using Mastodon. With this app, you can easily browse posts, view feeds, have a customised home page and follow accounts. In addition to that, dedicated tabs gives you options to quickly jump between your home page, notifications, mentions and federated feed.
@ -29,29 +29,27 @@ The easiest way to install Tootle is using Flatpak in any Linux distribution. Se
[Install Tootle][5]
* [Source Code][6]
* [Home page][7]
**More information about Tootle**
* [Source Code][6]
* [Home page][7]
#### 2\. Tokodon
#### 2. Tokodon
The Tokodon is another Mastodon client which brings a little different user interface to access this social platform. Its part of KDE Applications and built primarily using C++. It gives you an excellent clean user interface with a basic home page view. On top of that, you can browse local accounts to your mastodon server and the global ones. The bottom navigation gives easy access to all the Mastodon sections.
![Tokodon Mastodon Client for Linux][8]
The easiest way to install Tokodon is using Flatpak in any Linux distribution. Setup your system using this [guide for Flatpa][4]k (if not done yet) and hit the below link to install.
The easiest way to install Tokodon is using Flatpak in any Linux distribution. Setup your system using this [guide for Flatpa][9]k (if not done yet) and hit the below link to install.
[Install Tokodon via Flathub][9]
[Install Tokodon via Flathub][10]
**Tokodon**
**More information about** **Tokodon**
* [Source code][10]
* [Home page][11]
* [Source code][11]
* [Home page][12]
#### 3\. Sengi
#### 3. Sengi
Among this list, Sengi is most likely the versatile Mastodon client for Linux desktops. It comes with usual features such as notification, account view and follows features. On top of that, it brings Tweetdeck styled live interface with the timeline.
@ -59,21 +57,17 @@ Sengi is perfect for heavy Mastodon users who want to manage multiple accounts a
Furthermore, you should note that it is designed with web technology and packaged as desktop applications. Finally, it is available for Linux, macOS and Windows as well.
![Sengi Mastodon Client | Image Credit: Sengi][12]
![Sengi Mastodon Client | Image Credit: Sengi][13]
Finally, installing Sengi is very easy because the developer provides all types of executables, including native deb and AppImage. You can grab the .deb or .appimage file from the below link in addition to the windows and Mac executables.
[Download Sengi][13]
[Download Sengi][14]
* [Source code][14]
**More information about Sengi**
* [Source code][15]
[][15]
SEE ALSO:   10 Necessary Apps to Improve Your GNOME Desktop Experience [Part 4]
#### 4\. Whalebird
#### 4. Whalebird
Whalebird is another free and open-source Mastodon client built using Electron. Moreover, this web-based application is feature-rich and is the most stable Mastodon client. Using Whalebird, you can manage multiple accounts and monitor multiple timelines. In addition to that, you can also create a custom timeline to follow your favourite hashtags with a simple chronological workspace view.
@ -83,11 +77,11 @@ Finally, installing Whalebird is easy because it comes with an AppImage executab
[Download Whalebird][17]
* [Source code][18]
**More information about Whalebird**
* [Source code][18]
#### 5\. TheDesk
#### 5. TheDesk
The fifth Mastodon client for Linux and other OSes we would like to feature is TheDesk. It is perhaps the most feature-rich client with a vast list of features. Its workflow is similar to Hootsuite and Tweetdeck for heavy social media monitoring and usage. You can customise it to follow a particular user, hashtags with options to create multiple timeline views.
@ -95,12 +89,10 @@ But it might not be a stable client and may contain bugs. But you can still try
Installing is made easy by its developer with app image, deb, snap and exe files available on GitHub for its releases. You can grab them here.
Download TheDesk
* [Source code][19]
* [Home page][20]
**More information about TheDesk**
* [Source code][19]
* [Home page][20]
### Other Options to access Mastodon
@ -108,38 +100,33 @@ Download TheDesk
If you are reluctant to install another app, you can use the web version of your choice or favourite pod. You can register for a new account using the below link and connect via the web.
<https://joinmastodon.org/>
[https://joinmastodon.org/][21]
#### Tusky
Finally, if you are an Android mobile phone user, you can try Tusky. It is a fine and superfast Mastodon client available for Android with many features. You can [download it from Google Play Store here][21]. You can also [get the F-Droid version][22] of this app for Linux Phones.
Finally, if you are an Android mobile phone user, you can try Tusky. It is a fine and superfast Mastodon client available for Android with many features. You can [download it from Google Play Store here][22]. You can also [get the F-Droid version][23] of this app for Linux Phones.
### Closing Notes
Wrapping up the list of Mastodon clients for Linux, I hope you get to choose your favourite for your Linux distribution or mobile from the above list. Also, you can always use the Mastodon web for easy access.
**Finally, dont forget to follow us on our official Mastodon page using the link below.**
Finally, dont forget to follow us on our official Mastodon page using the link below.
*
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][23], [Twitter][24], [YouTube][25], and [Facebook][26] and never miss an update!
* [][24]
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/04/mastodon-clients-linux/
作者:[Arindam][a]
选题:[lujun9972][b]
选题:[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/lujun9972
[b]: https://github.com/lkxed
[1]: https://joinmastodon.org/
[2]: https://www.debugpoint.com/2022/03/best-gnome-apps-part-5/
[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Tootle.jpg
@ -148,21 +135,19 @@ via: https://www.debugpoint.com/2022/04/mastodon-clients-linux/
[6]: https://github.com/bleakgrey/tootle
[7]: https://apps.gnome.org/app/com.github.bleakgrey.tootle/
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Tokodon-Mastodon-Client-for-Linux.jpg
[9]: https://dl.flathub.org/repo/appstream/org.kde.tokodon.flatpakref
[10]: https://invent.kde.org/network/tokodon
[11]: https://apps.kde.org/tokodon/
[12]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sengi-Mastodon-Client.jpg
[13]: https://github.com/NicolasConstant/sengi/releases
[14]: https://nicolasconstant.github.io/sengi/
[15]: https://www.debugpoint.com/2022/02/best-gnome-apps-part-4/
[16]: https://www.debugpoint.com/wp-content/uploads/2022/04/Whalebird-Mastodon-Client-1024x642.jpg
[9]: https://flatpak.org/setup/
[10]: https://dl.flathub.org/repo/appstream/org.kde.tokodon.flatpakref
[11]: https://invent.kde.org/network/tokodon
[12]: https://apps.kde.org/tokodon/
[13]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sengi-Mastodon-Client.jpg
[14]: https://github.com/NicolasConstant/sengi/releases
[15]: https://nicolasconstant.github.io/sengi/
[16]: https://www.debugpoint.com/wp-content/uploads/2022/04/Whalebird-Mastodon-Client.jpg
[17]: https://github.com/h3poteto/whalebird-desktop/releases
[18]: https://github.com/h3poteto/whalebird-desktop
[19]: https://github.com/cutls/TheDesk
[20]: https://thedesk.top/en/
[21]: https://play.google.com/store/apps/details?id=com.keylesspalace.tusky&hl=en_IN&gl=US
[22]: https://tusky.app/
[23]: https://t.me/debugpoint
[24]: https://twitter.com/DebugPoint
[25]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[26]: https://facebook.com/DebugPoint
[21]: https://joinmastodon.org/
[22]: https://play.google.com/store/apps/details?id=com.keylesspalace.tusky&hl=en_IN&gl=US
[23]: https://tusky.app/
[24]: https://floss.social/@debugpoint

View File

@ -1,7 +1,7 @@
[#]: subject: "dahliaOS A Unique Linux Distribution Based on Google Fuchsia [First Look]"
[#]: via: "https://www.debugpoint.com/2022/05/dahlia-os-alpha/"
[#]: via: "https://www.debugpoint.com/2022/05/dahlia-os-alpha"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lujun9972"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
@ -9,8 +9,8 @@
dahliaOS A Unique Linux Distribution Based on Google Fuchsia [First Look]
======
OUR FIRST LOOK AT THE DAHLIAOS ALPHA VERSION, BASED ON GOOGLES FUCHSIA
OPERATING SYSTEM.
Our first look at the dahliaOS Alpha version, based on Googles Fuchsia operating system.
The [dahliaOS][1] is a unique distribution and a “fork” of the Google [Fuchsia][2] operating system that runs on mainline Linux Kernel and [Zircon Kernel][3]. The Zircon kernel is a newly designed kernel developed by Google for its own set of projects and devices.
The parent OS Fuchsia is designed to work on any hardware, including car dashboards to PCs. That said, the dahliaOS is a new promising operating system (or should I say a new Linux Distribution?) which brings a new era of desktop computing experience to traditional Linux distributions.
@ -31,7 +31,7 @@ In addition to those, the Pangolin Shell interacts with X.Org and Flutter. While
However, the X.Org display server communicates with userspace and the userspace talks to Linux Kernel. The overall architecture is explained below image (credit: dahliaOS team).
![dahlisOS Architecture][4]
![dahlisOS Architecture][6]
#### The Pangolin Desktop
@ -41,7 +41,7 @@ The design is pretty standard with a bottom main panel with an application menu
The application menu launches full screen, and its unique. At the top, you get a global search bar which searches your entire desktop and web. In the middle, an icon-based application grid gives you access to all the installed packages in your system. One of the unique aspects of this menu is an additional menu bar that shows the application categories in this fullscreen view.
![Full-screen application view][4]
![Full-screen application view][7]
Finally, a small section shows shortcuts to the power menu, system settings, and user profile at the bottom.
@ -49,7 +49,7 @@ Not only that, the bottom panel does not overlay with the fullscreen application
But thats not all. My favourite is the system tray pop-up menu which summarizes the system state with toggle switches to turn on or off several settings. See for yourself in the below image.
![System Tray][4]
![System Tray][8]
Its a fine work of user interface design that brings all these options together without the feeling of clumsiness.
@ -59,7 +59,7 @@ Moreover, the different search options and a nice workspace view give this deskt
Firstly, I want to discuss how well the Settings window is designed. Settings application gives you access to all tweaks for dahliaOS. This responsive application (adapts to the screen size), offers an array of options on the left panel with its details on the right.
![Settings Window][4]
![Settings Window][9]
Network, Customizations, Connected devices, and notifications are some of the critical settings that you can find. However, being an alpha copy, some are still under development.
@ -67,7 +67,7 @@ In addition, dahliaOS comes with built-in dark and light mode with an option to
Finally, a file manager, photo viewer, terminal and calculator all developed in Flutter give a different feel if you are an avid Linux user.
![dahliaOS Running Apps][4]
![dahliaOS Running Apps][10]
Installing software is a little different as dahliaOS manages all of them via Web App.
@ -79,7 +79,7 @@ I am not sure whether dahliaOS would allow the installation of native Linux pack
Overall, the performance is speedy, and the resource consumption metric is good. In a virtual machine environment, dahliaOS consumes about 330MB of memory. But CPU is surprisingly little higher in my opinion, which hovers around 10 % to 13% range. The Pangolin desktop consumes most of the resources, followed by the X.Org.
![dahliaOS ALPHA System Performance][4]
![dahliaOS ALPHA System Performance][11]
Finally, you might feel some strange desktop behaviour related to in-focus and out of focus situations in applications perhaps due to FLutter. Sometimes, the focus is not registered even if you select a window via mouse. It might well be a bug.
@ -87,69 +87,41 @@ Finally, you might feel some strange desktop behaviour related to in-focus and o
Heres a quick walkthrough of dahliaOS, which I recorded for our readers to give you some idea before you try.
![dahliaOS A Unique Linux Distribution Based on Google Fuchsia First Look][12]
### Closing Notes
To wrap up, I think it is one of the promising Linux distributions in the making, which takes a different path than traditional forks.
We will keep a close watch on this project and give you updates here.
If you want to learn more, contribute, visit the official website for more [details][6] ([source][7]). Finally, if you are planning to install or try, visit this [page][8].
* * *
We bring the latest tech, software news and stuff that matters. Stay in touch via [Telegram][9], [Twitter][10], [YouTube][11], and [Facebook][12] and never miss an update!
#### Share this:
* [Twitter][13]
* [Facebook][14]
* [Print][15]
* [LinkedIn][16]
* [Reddit][17]
* [Telegram][18]
* [WhatsApp][19]
* [Email][20]
*
If you want to learn more, contribute, visit the official website for more [details][13] ([source][14]). Finally, if you are planning to install or try, visit this [page][15].
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/dahlia-os-alpha/
via: https://www.debugpoint.com/2022/05/dahlia-os-alpha
作者:[Arindam][a]
选题:[lujun9972][b]
选题:[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/lujun9972
[b]: https://github.com/lkxed
[1]: https://dahliaos.io/
[2]: https://fuchsia.dev/
[3]: https://fuchsia.dev/fuchsia-src/concepts/kernel
[4]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/dahliaOS-Alpha-Desktop.jpg
[5]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
[6]: https://docs.dahliaos.io/
[7]: https://github.com/dahliaOS/
[8]: https://docs.dahliaos.io/install/efi
[9]: https://t.me/debugpoint
[10]: https://twitter.com/DebugPoint
[11]: https://www.youtube.com/c/debugpoint?sub_confirmation=1
[12]: https://facebook.com/DebugPoint
[13]: https://www.debugpoint.com/2022/05/dahlia-os-alpha/?share=twitter (Click to share on Twitter)
[14]: https://www.debugpoint.com/2022/05/dahlia-os-alpha/?share=facebook (Click to share on Facebook)
[15]: tmp.6E0Ad93KWV#print (Click to print)
[16]: https://www.debugpoint.com/2022/05/dahlia-os-alpha/?share=linkedin (Click to share on LinkedIn)
[17]: https://www.debugpoint.com/2022/05/dahlia-os-alpha/?share=reddit (Click to share on Reddit)
[18]: https://www.debugpoint.com/2022/05/dahlia-os-alpha/?share=telegram (Click to share on Telegram)
[19]: https://www.debugpoint.com/2022/05/dahlia-os-alpha/?share=jetpack-whatsapp (Click to share on WhatsApp)
[20]: https://www.debugpoint.com/2022/05/dahlia-os-alpha/?share=email (Click to email this to a friend)
[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/dahlisOS-Architecture.png
[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/Full-screen-application-view.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/System-Tray.jpg
[9]: https://www.debugpoint.com/wp-content/uploads/2022/05/Settings-Window.jpg
[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/dahliaOS-Running-Apps.jpg
[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/dahliaOS-ALPHA-System-Performance.jpg
[12]: https://youtu.be/Cy8iDOkMp9s
[13]: https://docs.dahliaos.io/
[14]: https://github.com/dahliaOS/
[15]: https://docs.dahliaos.io/install/efi

View File

@ -9,8 +9,7 @@
How to Upgrade to Fedora 36 from Fedora 35 Workstation (GUI and CLI Method)
======
COMPLETE STEPS TO UPGRADE TO FEDORA 36 FROM FEDORA 35 WORKSTATION
EDITION WITH GUI AND CLI METHOD.
Complete steps to upgrade to fedora 36 from fedora 35 workstation edition with gui and cli method.
Fedora 36 brings several important features such as the beautiful GNOME 42, Linux Kernel 5.17, default font changes and many stunning features. Moreover, Fedora 36 also brings Wayland display server as the default NVIDIA proprietary driver. Plus several other significant changes that Fedora 36 brings, which you can read here in our [top 10 feature coverage][1].

View File

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

View File

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

View File

@ -1,112 +0,0 @@
[#]: subject: "How To Install Multimedia Codecs In Fedora Linux"
[#]: via: "https://ostechnix.com/how-to-install-multimedia-codecs-in-fedora-linux/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How To Install Multimedia Codecs In Fedora Linux
======
One of the first thing to do after a fresh Fedora installation is to install multimedia codecs to play audio and video. In this brief tutorial, we will see how to install multimedia codecs in Fedora 36 workstation from RPM Fusion software repository.
### Introduction
Many multimedia codecs are either closed source or nonfree, so they are not included in the default repositories of Fedora Linux due to legal reasons.
Fortunately, some third party repositories provides the restricted and nonfree multimedia codecs, packages and libraries. One of the popular community-driven, third party repository is **RPM Fusion**.
If you want to play most audio or video formats in your Fedora desktop, you should install the necessary multimedia codecs from RPM Fusion as outlined below.
### Install Multimedia Codecs In Fedora Linux
Make sure you have installed RPM Fusion repository in your Fedora machine. If you haven't added it yet, refer the following link to enable RPM Fusion repository in Fedora:
* [How To Enable RPM Fusion Repository In Fedora, RHEL][1]
After enabling RPM Fusion, run the following commands one by one to install multimedia codecs in your Fedora system:
```
$ sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel
```
If the above command doesn't work, try the following command instead:
```
$ sudo dnf install gstreamer1-plugins-{bad-*,good-*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel
```
```
$ sudo dnf install lame* --exclude=lame-devel
```
```
$ sudo dnf group upgrade --with-optional Multimedia
```
These three commands installs pretty much everything to play all audio and video formats in your Fedora system.
#### Install Multimedia Players
Some popular media players such as VLC, Celluloid, SMplayer and Plex-media-palyer etc., will give all necessary codecs. You don't have install all of them. Any one or two are sufficient. The commands to install these players are given below:
```
$ sudo dnf install vlc
```
VLC comes pre-installed in many Linux distributions and it is a standard media player to play all kind of media files.
SMplayer is the front-end for Mplayer and it is considered as best alternative to VLC.
```
$ sudo dnf install smplayer
```
If you want more robust multimedia experience, install Plex media player.
```
$ sudo dnf install plex-media-player
```
This will not only provide you h264, h265, vp8 and vp9 codecs(all with hardware support), it will also enable av1 (aka av01) a more efficient codec. You can test if your browser supports this codec using the [AV1 Beta Launch Playlist][2].
Some of these players are available as **flatpak** applications as well. You can install them if you preferred flatpak over the traditional package manager. Most Linux distributions supports flatpak out of the box now.
To install VLC flatpak version, run:
```
$ flatpak install vlc
```
#### Optional - Install FFmpeg
**FFmpeg** is a powerful multimedia framework that can be used to encode, decode, transcode, mux, demux, record, stream, filter, and play any type of media files. You can get necessary codecs by installing FFmpeg suite on your system.
* [How To Install FFmpeg In Linux][3]
Hope this helps.
**Related read:**
* [Enable H264 On Chromium And Firefox In Fedora Silverblue][4]
* [How To Install Multimedia Codecs In OpenSUSE][5]
--------------------------------------------------------------------------------
via: https://ostechnix.com/how-to-install-multimedia-codecs-in-fedora-linux/
作者:[sk][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/how-to-enable-rpm-fusion-repository-in-fedora-rhel/
[2]: https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS
[3]: https://ostechnix.com/install-ffmpeg-linux/
[4]: https://ostechnix.com/enable-h264-on-chromium-and-firefox-in-fedora-silverblue/
[5]: https://ostechnix.com/how-to-install-multimedia-codecs-in-opensuse/

View File

@ -1,99 +0,0 @@
[#]: subject: "How To Reset Root Password In Fedora 36"
[#]: via: "https://ostechnix.com/reset-root-password-in-fedora/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How To Reset Root Password In Fedora 36
======
Reset Forgotten Root Password In Fedora
Have you forgotten the root password in Fedora? Or do you want to change the root user password in your Fedora system? No problem! This brief guide walks you through the steps to change or reset root password in Fedora operating systems.
**Note:** This guide has been officially tested on Fedora 36 and 35 versions. The steps provided below are same for resetting root password in Fedora Silverblue and older Fedora versions.
**Step 1** - Switch on your Fedora system and press **ESC** key until you see the GRUB boot menu. Once the GRUB menu is appeared, choose the Kernel you want to boot and hit **e** to edit the selected boot entry.
![Grub Menu In Fedora 36][1]
**Step 2** - In the next screen, you will see all boot parameters. Find the parameter named **ro**.
![Find ro Kernel Parameter In Grub Entry][2]
**Step 3** - Replace the **'ro'** parameter with **'rw init=/sysroot/bin/sh'**(without quotes, of course). Please mind the space between `"rw"` and "`init=/sysroot`...". After modifying it, the kernel parameter line should look like below.
![Modify Kernel Parameters][3]
**Step 4** - After changing the parameters as shown above, press **Ctrl+x** to enter into the emergency mode i.e. single user mode.
From the emergency mode, enter the following command to mount root (`/` ) file system in read/write mode.
```
chroot /sysroot/
```
![Mount Root Filesystem In Read, Write Mode In Fedora Linux][4]
**Step 5** - Now change the root password with `passwd` command:
```
passwd root
```
Enter the root password twice. I suggest you to use a strong password.
![Reset Or Change Root Password In Fedora][5]
**Step 6** - After resetting the root password, run the following command to enable SELinux relabeling on reboot :
```
touch /.autorelabel
```
![Enable SELinux Relabeling On Reboot In Fedora][6]
**Step 7** - Finally, exit the single user mode and reboot the Fedora system to normal mode by running the following command:
```
exit
```
```
reboot
```
Wait for SELinux relabeling process to complete. It will take a few minutes depending upon the filesystem's size and speed of your hard drive.
![SELinux Filesystem Relabeling In Progress][7]
**Step 8** - After the filesystem relabeling is completed, you can log in to your Fedora system with new root password.
![Login To Fedora As Root User][8]
As you can see, the steps to reset root password in Fedora 36 is fairly easy and exactly same as **[resetting root password in RHEL][9]** and its clones like CentOS, AlmaLinux and Rocky Linux.
--------------------------------------------------------------------------------
via: https://ostechnix.com/reset-root-password-in-fedora/
作者:[sk][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/wp-content/uploads/2022/05/Grub-Menu-In-Fedora-36.png
[2]: https://ostechnix.com/wp-content/uploads/2021/11/Find-ro-Kernel-Parameter-In-Grub-Entry.png
[3]: https://ostechnix.com/wp-content/uploads/2022/05/Modify-Kernel-Parameters.png
[4]: https://ostechnix.com/wp-content/uploads/2022/05/Mount-Root-Filesystem-In-Read-Write-Mode-In-Fedora-Linux.png
[5]: https://ostechnix.com/wp-content/uploads/2022/05/Reset-Or-Change-Root-Password-In-Fedora.png
[6]: https://ostechnix.com/wp-content/uploads/2022/05/Enable-SELinux-Relabeling-On-Reboot-In-Fedora.png
[7]: https://ostechnix.com/wp-content/uploads/2021/11/SELinux-filesystem-relabeling-in-progress.png
[8]: https://ostechnix.com/wp-content/uploads/2022/05/Login-To-Fedora-As-Root-User.png
[9]: https://ostechnix.com/how-to-reset-root-user-password-in-centos-8-rhel-8/

View File

@ -1,130 +0,0 @@
[#]: subject: "Structured Data Processing with Spark SQL"
[#]: via: "https://www.opensourceforu.com/2022/05/structured-data-processing-with-spark-sql/"
[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Structured Data Processing with Spark SQL
======
Spark SQL is the module in the Spark ecosystem that processes data in a structured format. It internally uses the Spark Core API for its process, but the usage is abstracted from the user. This article dives a little deeper and tells you whats new in Spark SQL 3.x.
![][1]
with Spark SQL, users can also write SQL-styled queries. This is essentially helpful for the wide user community that is proficient in structured query language or SQL. Users will also be able to write interactive and ad hoc queries on the structured data. Spark SQL bridges the gap between resilient distributed data sets (RDDs) and relational tables. An RDD is the fundamental data structure of Spark. It stores data as distributed objects across a cluster of nodes suitable for parallel processing. RDDs are good for low-level processing, but are difficult to debug during runtime and programmers cannot automatically infer schema. Also, there is no built-in optimisation for RDDs. Spark SQL provides the DataFrames and data sets to address these issues.
Spark SQL can use the existing Hive metastore, SerDes, and UDFs. It can connect to existing BI tools using JDBC/ODBC.
### Data sources
Big Data processing often needs the ability to process different file types and data sources (relational and non-relational). Spark SQL supports a unified DataFrame interface to process different types of sources, as given below.
*Files:*
* CSV
* Text
* JSON
* XML
*JDBC/ODBC:*
* MySQL
* Oracle
* Postgres
*Files with schema:*
* AVRO
* Parquet
*Hive tables:*
* Spark SQL also supports reading and writing data stored in Apache Hive.
With DataFrame, users can seamlessly read these diversified data sources and do transformations/joins on them.
### Whats new in Spark SQL 3.x
In the previous releases (Spark 2.x), the query plans were based on heuristics rules and cost estimation. The process from parsing to logical and physical query planning, and finally to optimisation was sequential. These releases had little visibility into the runtime characteristics of transformations and actions. Hence, the query plan was suboptimal because of the following reasons:
* Missing and outdated statistics
* Suboptimal heuristics
* Wrong estimation of costs
Spark 3.x has enhanced this process by using runtime data for iteratively improving the query planning and optimisation. The runtime statistics of a prior stage are used to optimise the query plan for subsequent stages. There is a feedback loop that helps to re-plan and re-optimise the execution plan.
![Figure 1: Query planning][2]
#### Adaptive query execution (AQE)
The query is changed to a logical plan and finally to a physical plan. The concept here is reoptimisation. It takes the data available during the prior stage and reoptimises for subsequent stages. Because of this, the overall query execution is much faster.
AQE can be enabled by setting the SQL configuration, as given below (default false in Spark 3.0):
```
spark.conf.set(“spark.sql.adaptive.enabled”,true)
```
#### Dynamically coalescing shuffle partitions
Spark determines the optimum number of partitions after a shuffle operation. With AQE, Spark uses the default number of partitions, which is 200. This can be enabled by the configuration:
```
spark.conf.set(“spark.sql.adaptive.coalescePartitions.enabled”,true)
```
#### Dynamically switching join strategies
Broadcast Hash is the best join operation. If one of the data sets is small, Spark can dynamically switch to Broadcast join instead of shuffling large amounts of data across the network.
#### Dynamically optimising skew joins
If the data dispersion is not uniform, data will be skewed and there will be a few large partitions. These partitions take up a lot of time. Spark 3.x optimises this by splitting the large partitions into multiple small partitions. This can be enabled by setting:
```
spark.conf.set(“spark.sql.adaptive.skewJoin.enabled”,true)
```
![Figure 2: Performance improvement in Spark 3.x (Source: Databricks)][3]
### Other enhancements
In addition, Spark SQL 3.x supports the following.
#### Dynamic partition pruning
3.x will only read the partitions that are relevant based on the values from one of the tables. This eliminates the need to parse the big tables.
#### Join hints
This allows users to specify the join strategy to be used if the user has knowledge of the data. This enhances the query execution process.
#### ANSI SQL compliant
In the earlier versions of Spark, which are Hive compliant, we could use certain keywords in the query which would work perfectly fine. However, this is not allowed in Spark SQL 3, which has full ANSI SQL support. For example, cast a string to integer will throw runtime exception. It also supports reserved keywords.
#### Newer Hadoop, Java and Scala versions
From Spark 3.0 onwards, Java 11 and Scala 2.12 are supported. Java 11 has better native coordination and garbage correction, which results in better performance. Scala 2.12 exploits new features of Java 8 and is better than 2.11.
Spark 3.x has provided these useful features off-the-shelf instead of developers worrying about them. This will improve the overall performance of Spark significantly.
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/structured-data-processing-with-spark-sql/
作者:[Phani Kiran][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/phani-kiran/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Spark-SQL-Data-cluster.jpg
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Query-planning.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Performance-improvement-in-Spark-3.x-Source-Databricks.jpg

View File

@ -0,0 +1,548 @@
[#]: subject: "A guide to Pipy, a programmable network proxy for cloud"
[#]: via: "https://opensource.com/article/22/5/pipy-programmable-network-proxy-cloud"
[#]: author: "Ali Naqvi https://opensource.com/users/alinaqvi"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
A guide to Pipy, a programmable network proxy for cloud
======
Pipy is an open source, extremely fast, and lightweight network traffic processor. It has a variety of use cases including edge routers, load balancing and proxying, API gateways, static HTTP servers, service mesh sidecars, and many other applications.
![Woman using laptop concentrating][1]
Image by Mapbox Uncharted ERG, [CC-BY 3.0 US][2]
Pipy is an open source, cloud-native, network stream processor. It is modular by design and can create a high-performance network proxy. It's written in C++ and is built on top of the Asio asynchronous I/O library. Pipy is ideal for a variety of use cases ranging from edge routers, load balancers, proxy solutions, API gateways, static HTTP servers, service mesh sidecars, and more.
Pipy also comes with built-in JavaScript support through PipyJS. PipyJS is highly customizable and predictable in performance, with no garbage collection overhead. Currently, PipyJS is part of the Pipy code base, but it has no dependency on it and in the future it may be moved to a standalone package.
### Pipy quick start guide
You can run the production version of Pipy using Podman or Docker with one of the tutorial scripts provided on the official Pipy Git repository. The Pipy container image can be configured with a few environment variables:
* PIPY_CONFIG_FILE=</path/to/config-file> sets the location of the Pipy configuration file.
* PIPY_SPAWN=n sets the number of Pipy instances you want to start, where n is the number of instances. This is a zero-based index, so 0 represents 1 instance. For example, use PIPY_SPAWN=3 for 4 instances.
Start the Pipy server with this example script:
```
$ docker run --rm -e PIPY_CONFIG_FILE=\
https://raw.githubusercontent.com/flomesh-io/pipy/main/tutorial/01-hello \
-e PIPY_SPAWN=1 -p 8080:8080 flomesh/pipy-pjs:latest
```
You may notice that instead of a local file, this code provides a link to a remote Pipy script through the environment variable `PIPY_CONFIG_FILE`. Pipy is smart enough to handle that.
For your reference, here are the contents of the file `tutorial/01-hello/hello.js` :
```
pipy()
.listen(8080)
.serveHTTP(
new Message('Hi, there!\n')
)
```
This simple script defines one Port pipeline, which listens on port 8080 and returns "Hi, there!" for each HTTP request received on the listening port.
As you've exposed local port 8080 with the docker run command, you can proceed with a test on the same port:
```
$ curl http://localhost:8080
```
Executing the above command displays `Hi, there!` on the console.
For learning, development, or debugging purposes it's recommended to proceed with the local installation (either build Pipy from sources or download a release for your OS) of Pipy, as it comes with an admin web console along with documentation and tutorials.
Once installed locally, running `pipy` without any arguments starts the admin console on port 6060, but it can be configured to listen on the different port with the `--admin-port` option.
![Pipy admin console listening on port 6060][3]
To build Pipy from source, or to install a precompiled binary for your operating system, refer to README.md on the [Pipy][4] Git repository.
#### Running Pipy in a terminal
To start a Pipy proxy, run Pipy with a PipyJS script file, for example, the script in `tutorial/01-hello/hello.js` if you need a simple echo server that responds with the same message body received with every incoming request:
```
$ pipy tutorial/01-hello/hello.js
```
Alternatively, while developing and debugging, one can start Pipy with a builtin web UI:
```
$ pipy tutorial/01-hello/hello.js --admin-port=6060
```
To see all command-line options, use the `--help` flag:
```
$ pipy --help
```
### Pipy is a stream processor
Pipy operates on network streams using an event-driven pipeline where it consumes the input stream, performs user-provided transformations, and outputs the stream. A pipy data stream takes raw data and abstracts it into an event. An event can belong to one of four categories:
* Data: Network streams are composed of data bytes and come in chunks. Pipy abstracts out chunks into a Data event.
* MessageStart, MessageEnd, StreamEnd: These three non-data events work as markers, giving the raw byte streams high-level semantics for business logic to rely on.
### Pipy Design
The internal workings of Pipy are similar to [Unix Pipelines][5] but unlike Unix pipelines, which deal with discreet bytes, Pipy deals with streams of events.
Pipy processes incoming streams through a chain of filters, where each filter deals with general concerns like request logging, authentication, SSL offloading, request forwarding, and so on. Each filter reads from its input and writes to its output, with the output of one filter connected to the input of the next.
#### Pipelines
A chain of filters is called a pipeline and Pipy categorizes pipelines in 3 different categories according to their input sources.
* Port pipeline: Reads in Data events from a network port, processes them, and then writes the result back to the same port. This is the most commonly used request and response model. For instance, when Pipy works like an HTTP server, the input to a Port pipeline is an HTTP request from the clients, and the output from the pipeline would be an HTTP response sent back to clients.
* Timer pipeline: Gets a pair of MessageStart and MessageEnd events as its input periodically. Useful when [Cron][6] [job-like][7] functionality is required.
* Sub-pipeline: Works in conjunction with a join filter, such as link, which takes in events from its predecessor pipeline, feeds them into a sub-pipeline for processing, reads back the output from the sub-pipeline, and then pumps it down to the next filter.
The best way to look at sub-pipelines and join filters is to think of them as callees and callers of a subroutine in procedural programming. The input to the joint filter is the subroutine's parameters, the output from the joint filter is its return value.
A root pipeline, such as Port or Timer, cannot be called from join filters.
To get a list of builtin filters and their parameters:
$  pipy --list-filters
$  pipy --help-filters
```
$  pipy --list-filters
$  pipy --help-filters
```
#### Context
Another important notion in Pipy is that of contexts. A context is a set of variables attached to a pipeline. Every pipeline gets access to the same set of variables across a Pipy instance. In other words, contexts have the same shape. When you start a Pipy instance, the first thing you do is define the shape of the context by defining variable(s) and their initial values.
Every root pipeline clones the initial context you define at the start. When a sub-pipeline starts, it either shares or clones its parent's context, depending on which joint filter you use. For instance, a link filter shares its parent's context while a demux filter clones it.
To the scripts embedded in a pipeline, these context variables are their global variables, which means that these variables are always accessible to scripts from anywhere if they live in the same script file.
This might seem odd to a seasoned programmer because global variables usually mean they are globally unique. You have only one set of these variables, whereas in Pipy we can have many sets of them (contexts) depending on how many root pipelines are open for incoming network connections and how many sub-pipelines clone their parents' contexts.
### Writing a Network Proxy
Suppose you're running separate instances of different services and you want to add a proxy to forward traffic to the relevant services based on the request URL path. This would give you the benefit of exposing a single URL and scaling your services in the back end without users having to remember a distinct service URL. In normal situations, your services would be running on different nodes and each service could have multiple instances running. In this example, assume you're running the services below, and want to distribute traffic to them based on the URI.
* service-hi at /hi/* (127.0.0.1:8080, 127.0.0.1:8082)
* service-echo at /echo (127.0.0.1:8081)
* service-tell-ip at /ip_/_* (127.0.0.1:8082)
Pipy scripts are written in JavaScript, and you can use any text editor of your choice to edit them. Alternatively, if you have installed Pipy locally, you can use Pipy admin Web UI, which comes with syntax highlighting, auto-completion, hints, as well as the ability to run scripts, all from the same console.
Start a Pipy instance, without any arguments, so the Pipy admin console launches on port 6060. Now open your favorite web browser and navigate to [[http://localhost:6060](http://localhost:6060/][8] to see the built-in Pipy Administration Web UI.
![Built-in Pipy administration web UI][9]
### Create a Pipy program
A good design practice is that code and configurations are separated. Pipy supports such modular design through its Plugins, which you can think of as JavaScript modules. That said, you store your configuration data in the config folder, and your coding logic in separate files under the plugins folder. The main proxy server script is stored in the root folder, the main proxy script (`proxy.js` ) will include and combine the functionality defined in separate modules. In the end, your final folder structure is:
```
├── config
│ ├── balancer.json
│ ├── proxy.json
│ └── router.json
├── plugins
│ ├── balancer.js
│ ├── default.js
│ └── router.js
└── proxy.js
```
1.Click **New Codebase**, enter `/proxy` for the Codebase *name* in the dialog and then click **Create**.
1. Click the + button to add a new file. Enter /config/proxy.json for its filename and then click Create. This is the configuration file used to configure your proxy.
2. You now see proxy.json listed under the config folder in the left pane. Click on the file to open it and add the configuration shown below and make sure you save your file by clicking the disk icon on the top panel.
 
{
"listen": 8000,
"plugins": [
"plugins/router.js",
"plugins/balancer.js",
"plugins/default.js" ]
}
3. Repeat steps 2 and 3 to create another file, /config/router.json, to store route information. Enter this configuration data:
{
"routes": {
"/hi/*": "service-hi",
"/echo": "service-echo",
"/ip/*": "service-tell-ip" }
}
4. Repeat steps 2 and 3 to create another file, /config/balancer.json to store your service-to-target map. Enter the following data:
{
"services": {
"service-hi" : ["127.0.0.1:8080", "127.0.0.1:8082"],
"service-echo" : ["127.0.0.1:8081"],
"service-tell-ip" : ["127.0.0.1:8082"] }
}
5. Now it's time to write your very first Pipy script, which will be used as a default fallback when your server receives a request for which you don't have any target (an endpoint) configured. Create the file /plugins/default.js. The name here is just a convention and Pipy doesn't rely on names, so you can choose any name you like. The script will contain the code shown below, which returns the HTTP Status code 404 with a message of No handler found:
 
pipy()
.pipeline('request')
.replaceMessage(
new Message({ status: 404 }, 'No handler found'))
```
{
"listen": 8000,
"plugins": [
"plugins/router.js",
"plugins/balancer.js",
"plugins/default.js" ]
}
```
```
{
"routes": {
"/hi/*": "service-hi",
"/echo": "service-echo",
"/ip/*": "service-tell-ip" }
}
```
```
{
"services": {
"service-hi" : ["127.0.0.1:8080", "127.0.0.1:8082"],
"service-echo" : ["127.0.0.1:8081"],
"service-tell-ip" : ["127.0.0.1:8082"] }
}
```
```
pipy()
.pipeline('request')
.replaceMessage(
new Message({ status: 404 }, 'No handler found'))
```
7.Create the file `/plugins/router.js`, which stores your routing logic:
```
(config =>
pipy({
_router: new algo.URLRouter(config.routes), })
.export('router', {
__serviceID: '', })
.pipeline('request')
.handleMessageStart(
msg => (
__serviceID = _router.find(
msg.head.headers.host,
msg.head.path, )
) )
)(JSON.decode(pipy.load('config/router.json')))
```
1. Create the file /plugins/balancer.js, which stores your load balancing logic as a side-note. Pipy comes with multiple Load Balancing algorithms, but for simplicity, you're using the Round Robin algorithm here.
(config =>
pipy({
  _services: (
    Object.fromEntries(
      Object.entries(config.services).map(
        ([k, v]) => [
          k, new algo.RoundRobinLoadBalancer(v)
        ]
      )
    )
  ),
  _balancer: null,
  _balancerCache: null,
  _target: '',
})
.import({
  __turnDown: 'proxy',
  __serviceID: 'router',
})
.pipeline('session')
  .handleStreamStart(
    () => (
      _balancerCache = new algo.Cache(
        // k is a balancer, v is a target
        (k  ) => k.select(),
        (k,v) => k.deselect(v),
      )
    )
  )
  .handleStreamEnd(
    () => (
      _balancerCache.clear()
    )
  )
.pipeline('request')
  .handleMessageStart(
    () => (
      _balancer = _services[__serviceID],
      _balancer && (_target = _balancerCache.get(_balancer)),
      _target && (__turnDown = true)
    )
  )
  .link(
    'forward', () => Boolean(_target),
    ''
  )
.pipeline('forward')
  .muxHTTP(
    'connection',
    () => _target
  )
.pipeline('connection')
  .connect(
    () => _target
  )
)(JSON.decode(pipy.load('config/balancer.json')))
2. Now write the entry point, or the proxy server script, to use the above plugins. Creating a new code base (step 1) creates a default main.js file as an entry point. You can use that as your main entry point, or if you prefer to go with a different name, feel free to delete main.js and create a new file with the name of your choice. For this example, delete it and create a new file named /proxy.js. Make sure you click the top flag icon to make it the main entry point, to ensure script execution is started when you hit the run button (the arrow icon on the right).
(config =>
pipy()
.export('proxy', {
  __turnDown: false,
})
.listen(config.listen)
  .use(config.plugins, 'session')
  .demuxHTTP('request')
.pipeline('request')
  .use(
    config.plugins,
    'request',
    'response',
    () => __turnDown
  )
)(JSON.decode(pipy.load('config/proxy.json')))
```
(config =>
pipy({
  _services: (
    Object.fromEntries(
      Object.entries(config.services).map(
        ([k, v]) => [
          k, new algo.RoundRobinLoadBalancer(v)
        ]
      )
    )
  ),
  _balancer: null,
  _balancerCache: null,
  _target: '',
})
.import({
  __turnDown: 'proxy',
  __serviceID: 'router',
})
.pipeline('session')
  .handleStreamStart(
    () => (
      _balancerCache = new algo.Cache(
        // k is a balancer, v is a target
        (k  ) => k.select(),
        (k,v) => k.deselect(v),
      )
    )
  )
  .handleStreamEnd(
    () => (
      _balancerCache.clear()
    )
  )
.pipeline('request')
  .handleMessageStart(
    () => (
      _balancer = _services[__serviceID],
      _balancer && (_target = _balancerCache.get(_balancer)),
      _target && (__turnDown = true)
    )
  )
  .link(
    'forward', () => Boolean(_target),
    ''
  )
.pipeline('forward')
  .muxHTTP(
    'connection',
    () => _target
  )
.pipeline('connection')
  .connect(
    () => _target
  )
)(JSON.decode(pipy.load('config/balancer.json')))
```
```
(config =>
pipy()
.export('proxy', {
  __turnDown: false,
})
.listen(config.listen)
  .use(config.plugins, 'session')
  .demuxHTTP('request')
.pipeline('request')
  .use(
    config.plugins,
    'request',
    'response',
    () => __turnDown
  )
)(JSON.decode(pipy.load('config/proxy.json')))
```
So far, your workspace looks like this:
![Image of workspace][10]
To run your script, click the play icon button (4th from right). Pipy runs your proxy script, and you see output similar to this:
![Image of output][11]
This shows that your proxy server is listening on port 8000 (which you configured in your `/config/proxy.json` ). Use [curl to run a test][12]:
```
$ curl -i [http://localhost:8000](http://localhost:8000)
HTTP/1.1 404 Not Found
content-length: 10
connection: keep-alive
No handler found
```
That response makes sense because you haven't configured any target for root. Try one of your configured routes, such as `/hi` :
```
$ curl -i [http://localhost:8000/hi](http://localhost:8000/hi)
HTTP/1.1 502 Connection Refused
content-length: 0
connection: keep-alive
```
You get `502 Connection Refused` because you have no service running on your configured target port.
You can update `/config/balancer.json` with details like the host and port of your already running services to make it fit for your use case, or you can just write a script in Pipy to listen on your configured ports, and return simple messages.
Save this code to a file on your local computer named `mock-proxy.js`, and remember the location where you stored it:
```
pipy()
.listen(8080)
  .serveHTTP(
    new Message('Hi, there!\n')
  )
.listen(8081)
  .serveHTTP(
    msg => new Message(msg.body)
  )
.listen(8082)
  .serveHTTP(
    msg => new Message(
      `You are requesting ${msg.head.path} from ${__inbound.remoteAddress}\n`
    )
  )
```
Open a new terminal window and run this script with Pipy (change `/path/to` to the location where you stored this script file):
```
$ pipy /path/to/mock-proxy.js
2022-01-11 18:56:31 [INF] [config]
2022-01-11 18:56:31 [INF] [config] Module /mock-proxy.js
2022-01-11 18:56:31 [INF] [config] ================
2022-01-11 18:56:31 [INF] [config]
2022-01-11 18:56:31 [INF] [config] [Listen on :::8080]
2022-01-11 18:56:31 [INF] [config] ----->|
2022-01-11 18:56:31 [INF] [config] |
2022-01-11 18:56:31 [INF] [config] serveHTTP
2022-01-11 18:56:31 [INF] [config] |
2022-01-11 18:56:31 [INF] [config] <-----|
2022-01-11 18:56:31 [INF] [config]
2022-01-11 18:56:31 [INF] [config] [Listen on :::8081]
2022-01-11 18:56:31 [INF] [config] ----->|
2022-01-11 18:56:31 [INF] [config] |
2022-01-11 18:56:31 [INF] [config] serveHTTP
2022-01-11 18:56:31 [INF] [config] |
2022-01-11 18:56:31 [INF] [config] <-----|
2022-01-11 18:56:31 [INF] [config]
2022-01-11 18:56:31 [INF] [config] [Listen on :::8082]
2022-01-11 18:56:31 [INF] [config] ----->|
2022-01-11 18:56:31 [INF] [config] |
2022-01-11 18:56:31 [INF] [config] serveHTTP
2022-01-11 18:56:31 [INF] [config] |
2022-01-11 18:56:31 [INF] [config] <-----|
2022-01-11 18:56:31 [INF] [config]
2022-01-11 18:56:31 [INF] [listener] Listening on port 8080 at ::
2022-01-11 18:56:31 [INF] [listener] Listening on port 8081 at ::
2022-01-11 18:56:31 [INF] [listener] Listening on port 8082 at ::
```
You now have your mock services listening on ports 8080, 8081, and 8082. Do a test again on your proxy server to see the correct response returned from your mock service.
### Summary
You've used a number of Pipy features, including variable declaration, importing and exporting variables, plugins, Pipelines, sub-pipelines, filter chaining, Pipy filters like `handleMessageStart`, `handleStreamStart`, and link, and Pipy classes like JSON, `algo.URLRouter`, `algo.RoundRobinLoadBalancer`, `algo.Cache`, and others. For more information, read the excellent [Pipy documentation][13], and through Pipy's admin web UI, and follow the step-by-step tutorials that come with it.
### Conclusion
Pipy from [Flomesh][14] is an open source, extremely fast, and lightweight network traffic processor. You can use it in a variety of use cases ranging from edge routers, load balancing and proxying (forward and reverse), API gateways, static HTTP servers, service mesh sidecars, and many other applications. Pipy is in active development and is maintained by full-time committers and contributors.
Images by: (Ali Naqvi, CC BY-SA 40)
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/pipy-programmable-network-proxy-cloud
作者:[Ali Naqvi][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/alinaqvi
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png
[2]: https://creativecommons.org/licenses/by/3.0/us/
[3]: https://opensource.com/sites/default/files/2022-05/pipy1.png
[4]: https://github.com/flomesh-io/pipy
[5]: https://opensource.com/article/19/4/interprocess-communication-linux-channels
[6]: https://en.wikipedia.org/wiki/Cron
[7]: https://en.wikipedia.org/wiki/Cron
[8]: http://localhost:6060
[9]: https://opensource.com/sites/default/files/2022-05/pipy2.png
[10]: https://opensource.com/sites/default/files/2022-05/pipy3.png
[11]: https://opensource.com/sites/default/files/2022-05/pipy4.png
[12]: https://www.redhat.com/sysadmin/social-media-curl
[13]: https://flomesh.io
[14]: https://flomesh.io

View File

@ -0,0 +1,58 @@
[#]: subject: "Five common mistakes when using automation"
[#]: via: "https://fedoramagazine.org/five-common-mistakes-when-using-automation/"
[#]: author: "Gary Scarborough https://fedoramagazine.org/author/gscarbor/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Five common mistakes when using automation
======
![][1]
Background image from ["Modern Times" (1936)][2], [United Artists][3], Public domain, via Wikimedia Commons
As automation expands to cover more aspects of IT, more administrators are learning automation skills and applying them to ease their workload. Automation can ease the burden of repetitive tasks and add a level of conformity to infrastructure. But when IT workers deploy automation, there are common mistakes that can wreak havoc on infrastructures large and small. Five common mistakes are typically seen in automation deployments.
### Lack of testing
A beginners mistake that is commonly made is that automation scripts are not thoroughly tested. A simple shell script can have adverse affects on a server due to typos or logic errors. Multiply that mistake by the number of servers in your infrastructure, and you can have a big mess to clean up. Always test your automation scripts before deploying in large scale.
### Unexpected server load
The second mistake that frequently occurs is not predicting the system load the script may put on other resources. Running a script that downloads a file or installs a package from a repository may be fine when the target is a dozen servers. Scripts are often run against hundreds or thousands of servers. This load can bring supporting services to a stand still or crash them entirely. Dont forget to consider end point impact or set a reasonable concurrency rate.
### Run away scripts
One use of automation tools is to ensure compliance to standard settings. Automation can make it easy to ensure that every server in a group has exactly the same settings. Problems may arise if a server in that group needs to be altered from that baseline, and the administrator is not aware of the compliance standard. Unneeded and unwanted services can be installed and enabled leading to possible security concerns.
### Lack of documentation
A constant duty for administrators should be to document their work. Companies can have frequent new employees in IT departments due to contracts ending or promotions or regular employee turnover. It is also not uncommon for work groups within a company to be siloed from each other. For these reasons it is important to document what automation is in place. Unlike user run scripts, automation may continue long after the person who created it leaves the group. Administrators can find themselves facing strange behaviors in their infrastructure from automation left unchecked.
### Lack of experience
The last mistake on the list is when administrators do not know enough about the systems they are automating. Too often admins are hired to work positions where they do not have adequate training and no one to learn from. This has been especially relevant since COVID when companies are struggling to fill vacancies. Admins are then forced to deal with infrastructure they didnt set up and may not fully understand. This can lead to very inefficient scripts that waste resources or misconfigured servers.
### Conclusion
More and more admins are learning automation to help them in their everyday tasks. As a result, automation is being applied to more areas of technology. Hopefully this list will help prevent new users from making these mistakes and urge seasoned admins to re-evaluate their IT strategies. Automation is meant to ease the burden of repetitive tasks, not cause more work for the end user.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/five-common-mistakes-when-using-automation/
作者:[Gary Scarborough][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://fedoramagazine.org/author/gscarbor/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2022/05/modern-times-816x345.jpg
[2]: https://en.wikipedia.org/wiki/Modern_Times_(film)
[3]: https://commons.wikimedia.org/wiki/File:Chaplin_-_Modern_Times.jpg

View File

@ -0,0 +1,273 @@
[#]: subject: "How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 / 20.04 / 18.04"
[#]: via: "https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 / 20.04 / 18.04
======
This tutorial explains how to boot into **rescue mode** or **emergency mode**in Ubuntu 22.04, 20.04 and 18.04 LTS editions.
As you might already know, **Runlevels** are replaced with **Systemd targets** in many Linux distributions such as RHEL 7 / RHEL 8 and Ubuntu 16.04 LTS and newer versions. For more details about runlevels and systemd target, refer to [this guide][1].
This guide is specifically written for Ubuntu, however the steps given below should work on most Linux distributions that use **Systemd** as the default service manager.
Before getting into the topic, let us have a brief understanding about what is rescue mode and emergency mode and what is the purpose of these both modes.
### What Is Rescue Mode?
The **rescue mode** is equivalent to **single user mode** in Linux distributions that use **SysV** as the default service manager. In rescue mode, all local filesystems will be mounted, only some important services will be started. However, no normal services (E.g network services) won't be started.
The rescue mode is helpful in situations where the system can't boot normally. Also, we can perform some important rescue operations, such as [reset root password][2], in rescue mode.
### What Is Emergency Mode?
In contrast to the rescue mode, nothing is started in the **emergency mode**. No services are started, no mount points are mounted, no sockets are established, nothing. All you will have is just a **raw shell**. Emergency mode is suitable for debugging purposes.
First, we will see how to boot into rescue mode and emergency mode in Ubuntu 22.04 and 20.04 LTS distributions. The procedure for entering rescue mode in Ubuntu 22.04 and 20.04 LTS is exactly the same!
### Boot Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS
We can boot into rescue mode in two ways.
#### Method 1
Power on your Ubuntu system. Hit the ESC key right after the BIOS logo disappears to display the Grub menu.
In the GRUB menu, choose the first entry and press **"e"** to edit it.
![GRUB Menu In Ubuntu 22.04 / 20.04 LTS][3]
Hit the DOWN arrow and find the line that starts with the word **"linux"** and add the following line at the end of it. To reach the end, just press **CTRL+e** or use the **END** key or **LEFT/RIGHT** arrows in your keyboard.
```
systemd.unit=rescue.target
```
![Edit Grub Boot Menu Entries To Enter Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS][4]
After adding the above line, hit **Ctrl+x** or**F10** to boot into rescue mode.
After a few seconds, you will be landed in the rescue mode (single user mode) as root user. You will be prompted to press ENTER to enter the maintenance mode.
Here is how rescue mode looks like in Ubuntu 22.04 / 20.04 LTS systems:
![Boot Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS][5]
Now do whatever you want to do in the rescue mode. You may need to mount the root (**/**) file system in read/write mode before doing any operations in rescue mode.
```
mount -n -o remount,rw /
```
![Mount Root File System In Read Write Mode In Ubuntu 22.04 / 20.04 LTS][6]
Once done, press **"Ctrl+d"** to boot into normal mode. Alternatively, you can type any one of the following commands to boot into normal mode.
```
systemctl default
```
Or,
```
exit
```
If you want to reboot the system instead of booting into normal mode, enter:
```
systemctl reboot
```
#### Method 2
In this method, you don't need to edit the grub boot menu entries.
Power on the system and choose **"Advanced options for Ubuntu"** from the Grub boot menu.
![Choose Advanced Options For Ubuntu From Grub Boot Menu][7]
Next, you will see the list of available Ubuntu versions with Kernel versions. Choose the **"Recovery mode"** in the grub boot menu in Ubuntu.
![Choose Recovery Mode In Grub Boot Menu In Ubuntu 22.04 / 20.04 LTS][8]
After a few seconds, you will see the Ubuntu recovery menu. From the recovery menu, choose **"Drop to root shell prompt"** option and hit the ENTER key.
![Enter Into Root Shell Prompt In Ubuntu 22.04 / 20.04 LTS][9]
Now you will be landed in the rescue mode.
![Ubuntu Maintenance Mode][10]
Mount the root (**/**) file system in read/write mode by entering the following command:
```
mount -n -o remount,rw /
```
![Mount Root File System In Read Write Mode In Ubuntu][11]
Do whatever you want to do in the rescue mode.
Once done, type exit to return back to the recovery menu.
```
exit
```
Finally, choose **"Resume normal boot"** option and hit the ENTER key.
![Boot Into Normal Mode In Ubuntu][12]
Press ENTER key again to exit recovery mode and continue booting into normal mode.
![Exit The Recovery Mode In Ubuntu][13]
If you don't want to boot into normal mode, type **"reboot"** and press ENTER from the maintenance mode to restart your system.
### Boot Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS
When the GRUB boot menu appears, press **"e"** to edit it.
![GRUB Menu In Ubuntu 22.04 / 20.04 LTS][14]
Find the line that starts with the word **"linux"** and add the following line at the end of it.
```
systemd.unit=emergency.target
```
![Edit Grub Boot Menu Entries To Enter Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS][15]
After adding the above line, hit **Ctrl+x** or**F10** to boot into emergency mode.
After a few seconds, you will be landed in the emergency mode as `root` user. You will be prompted to press ENTER to enter the maintenance mode.
Here is how emergency mode looks like in Ubuntu 22.04 / 20.04 LTS system:
![Boot Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS][16]
Now do whatever you want to do in the emergency mode. You may need to mount the root (**/**) file system in read/write mode before doing any operations in this mode.
```
mount -n -o remount,rw /
```
Once done, press **"Ctrl+d"** to boot into normal mode. Alternatively, you can type any one of the following commands to boot into normal mode.
```
systemctl default
```
Or,
```
exit
```
If you want to reboot the system instead of booting into normal mode, enter:
```
systemctl reboot
```
### Boot Into Rescue Mode In Ubuntu 18.04 LTS
Boot your Ubuntu system. When the Grub menu appears, choose the first entry and press **e** to edit. (To reach the end, just press **CTRL+e** or use the END key or LEFT/RIGHT arrows in your keyboard):
![Grub Menu][17]
If you don't see the Grub menu, just hit ESC key right after the BIOS logo disappears.
Find the line that starts with word **"linux"**and add the following line at the end of that line (To reach the end, just press **CTRL+e** or use the END key or LEFT/RIGHT arrows in your keyboard):
```
systemd.unit=rescue.target
```
![Edit Grub Menu][18]
Once you added the above line, just press **CTRL+x** or **F10** to continue to boot into rescue mode. After a few seconds, you will be landed in the rescue mode (single user mode) as root user.
Here is how rescue mode looks like in Ubuntu 18.04 LTS server:
![Ubuntu Rescue Mode][19]
Next, type the following command to mount root (**/**) file system into read/write mode.
```
mount -n -o remount,rw /
```
### Boot Into Emergency Mode
Booting your Ubuntu into emergency is as same as above method. All you have to do is replace **"systemd.unit=rescue.target"** with **"systemd.unit=emergency.target"** when editing grub menu.
![Edit Grub Menu][20]
Once you added "systemd.unit=emergency.target", press **Ctrl+x** or **F10** to continue booting into emergency mode.
![Ubuntu Emergency Mode][21]
Finally, you can mount root filesystem into read/write mode with command:
```
mount -n -o remount,rw /
```
### Switch Between Rescue And Emergency Modes
If you are in rescue mode, you don't have to edit the grub boot entry as I mentioned above. Instead, just type the following command to switch to emergency mode instantly:
```
systemctl emergency
```
Similarly, to switch from emergency to rescue mode, type:
```
systemctl rescue
```
### Conclusion
You know now what is rescue and emergency modes and how to boot into those modes in Ubuntu 22.04, 20.04 and 18.04 LTS systems. Like I already mentioned, the steps provided here will work on many recent Linux versions that uses Systemd.
--------------------------------------------------------------------------------
via: https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/
作者:[sk][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/check-runlevel-linux/
[2]: https://ostechnix.com/how-to-reset-or-recover-root-user-password-in-linux/
[3]: https://ostechnix.com/wp-content/uploads/2022/05/GRUB-Menu-In-Ubuntu-22.04-LTS.png
[4]: https://ostechnix.com/wp-content/uploads/2022/05/Edit-Grub-Boot-Menu-Entries-To-Enter-Into-Rescue-Mode-In-Ubuntu-22.04-LTS.png
[5]: https://ostechnix.com/wp-content/uploads/2022/05/Boot-Into-Rescue-Mode-In-Ubuntu-22.04.png
[6]: https://ostechnix.com/wp-content/uploads/2022/05/Mount-Root-File-System-In-Read-Write-Mode-In-Ubuntu.png
[7]: https://ostechnix.com/wp-content/uploads/2022/05/Choose-Advanced-Options-For-Ubuntu-From-Grub-Boot-Menu.png
[8]: https://ostechnix.com/wp-content/uploads/2022/05/Choose-Recovery-Mode-In-Grub-Boot-Menu-In-Ubuntu.png
[9]: https://ostechnix.com/wp-content/uploads/2022/05/Enter-Into-Root-Shell-Prompt-In-Ubuntu.png
[10]: https://ostechnix.com/wp-content/uploads/2022/05/Ubuntu-Maintenance-Mode.png
[11]: https://ostechnix.com/wp-content/uploads/2022/05/Mount-Root-File-System-In-Read-Write-Mode-In-Ubuntu-1.png
[12]: https://ostechnix.com/wp-content/uploads/2022/05/Boot-Into-Normal-Mode-In-Ubuntu.png
[13]: https://ostechnix.com/wp-content/uploads/2022/05/Exit-The-Recovery-Mode-In-Ubuntu.png
[14]: https://ostechnix.com/wp-content/uploads/2022/05/GRUB-Menu-In-Ubuntu-22.04-LTS.png
[15]: https://ostechnix.com/wp-content/uploads/2022/05/Edit-Grub-Boot-Menu-Entries-To-Enter-Into-Emergency-Mode-In-Ubuntu.png
[16]: https://ostechnix.com/wp-content/uploads/2018/12/Boot-Into-Emergency-Mode-In-Ubuntu-20.04-LTS.png
[17]: https://ostechnix.com/wp-content/uploads/2018/12/Grub-menu.png
[18]: https://ostechnix.com/wp-content/uploads/2018/12/Edit-grub-menu.png
[19]: https://ostechnix.com/wp-content/uploads/2018/12/Ubuntu-rescue-mode.png
[20]: https://ostechnix.com/wp-content/uploads/2018/12/emergency-mode.png
[21]: https://ostechnix.com/wp-content/uploads/2018/12/emergency-mode-1.png

View File

@ -0,0 +1,125 @@
[#]: subject: "How To Reset Sudo Password In Ubuntu 22.04 / 20.04 LTS"
[#]: via: "https://ostechnix.com/how-to-reset-sudo-password-in-ubuntu-20-04-lts/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How To Reset Sudo Password In Ubuntu 22.04 / 20.04 LTS
======
Reset Forgotten Root Password In Ubuntu
This brief guide explains how to reset sudo password in Ubuntu 22.04 and 20.04 LTS desktop and server editions from rescue mode.
### Introduction
When **[installing Ubuntu][1]**, a new user will be created with sudo privileges to perform all sorts of administrative tasks.
If your Ubuntu system have multiple sudo users, you can easily reset the forgotten password of a sudo user or administrative user from another sudo user's account.
What If you have only one sudo user and you lost the password? No problem! It is very easy to recover forgotten sudo user password in Ubuntu from the **"rescue"** or **"single user"** mode.
This guide has been officially tested on Ubuntu 22.04 and 20.04 LTS editions, however the steps given below are same for other Ubuntu versions and derivatives.
### Reset Sudo Password In Ubuntu 22.04 / 20.04 LTS
First, boot your Ubuntu system into rescue mode to reset a sudo user's password as described in the link below.
> [How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 /  20.04 / 18.04][2]
After you entered into the rescue mode, mount the root (**/**) file system in read/write mode by running the following command:
```
# mount -n -o remount,rw /
```
Now, reset the sudo user's password using **"passwd"** command:
```
# passwd ostechnix
```
Here, **"ostechnix"** is the sudo user. Replace it with your own user name.
Enter the password twice:
```
New password:
Retype new password:
passwd: password updated successfully
```
![Reset Sudo Password In Ubuntu 22.04 / 20.04 LTS][3]
That's it. We have reset the sudo user password. If you have followed the **Method 1** to enter into rescue mode as described in the above link, press **“Ctrl+d”** to boot into normal mode. Alternatively, you can type any one of the following commands to boot into normal mode.
```
# systemctl default
```
Or,
```
# exit
```
If you want to reboot the system instead of booting into normal mode, enter:
```
# systemctl reboot
```
If you have followed the **Method 2** to enter into rescue mode as described in the above link, type:
```
# exit
```
You will go back to the recovery menu. Choose "**Resume normal boot**" and hit ENTER key.
![Boot Into Normal Mode In Ubuntu][4]
Again, choose OK and press ENTER to continue booting into normal mode:
![Exit Recovery Mode And Boot Into Normal Mode][5]
You can now use the new sudo password when running administrative commands.
##### What If I Forgot Both Username And Password?
If you forget the username, you can easily list the available users in your Linux system from the rescue mode using command:
```
# cat etc/passwd
```
Sample output from my Ubuntu 22.04 system:
```
[...]
ostechnix:x:1000:1000:Ostechnix,,,:/home/ostechnix:/bin/bash
[...]
```
Well, you now have the user name. Just follow the aforementioned steps to reset the user's password.
--------------------------------------------------------------------------------
via: https://ostechnix.com/how-to-reset-sudo-password-in-ubuntu-20-04-lts/
作者:[sk][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/install-ubuntu-desktop/
[2]: https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/
[3]: https://ostechnix.com/wp-content/uploads/2022/05/Reset-Sudo-Password-In-Ubuntu.png
[4]: https://ostechnix.com/wp-content/uploads/2020/05/Boot-into-normal-mode-in-Ubuntu.png
[5]: https://ostechnix.com/wp-content/uploads/2020/05/Booting-into-normal-mode-from-rescue-mode-in-Ubuntu.png

View File

@ -0,0 +1,191 @@
[#]: subject: "Install Specific Package Version With Apt Command in Ubuntu"
[#]: via: "https://itsfoss.com/apt-install-specific-version-2/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Install Specific Package Version With Apt Command in Ubuntu
======
Want to install a specific version of a package in Ubuntu? You can do that easily in the following manner:
```
sudo apt install package_name=package_version
```
How do you know which versions are available for a certain package? Use this command:
```
apt list --all-versions package_name
```
In the screenshot below, you can see that I have two versions of VLC available and I use the command to install the older version:
![install specific versions apt ubuntu][1]
Sounds like a simple task, right? But things are not as simple as they look. There are several ifs and buts involved here.
This tutorial will cover all the important aspects of installing a specific program version using apt or apt-get commands.
### Things to know about installing a specific version of a program
You need to know a few things about how APT and repositories work in Ubuntu and Debian-based distributions.
#### No older versions from the same source
Ubuntu doesnt keep older versions of packages in the repository. You may see more than one version in specific cases, temporarily. For example, you run the apt update (but not upgrade), and a new version is available. You may see two versions for the same package in the apt cache. But as soon as the package is upgraded to the new version, the older version is removed from the cache as well as the repositories.
#### Use multiple sources for different versions
To get multiple versions of the same package, youll have to add multiple sources. For example, VLC is in version 3.x. Adding the [VLC daily build PPA][2] will give the (unstable) version 4.x.
Similarly, **you can download a DEB file with a different version and install it**.
#### The higher version always gets the priority
If you have the same package available from more than one source, by default, Ubuntu will install the highest available version.
In the previous example, if I install VLC, it will install version 4.x, not 3.x.
#### The older version gets upgraded to the available newer version
Thats another potential problem. Even if you install the older version of a package, it gets upgraded to the newer version (if available). You have to [hold the package and stop it from upgrading][3].
#### Dependencies also need to be installed
If the package has dependencies, youll have to install the required version of the dependent packages as well.
Now that you know a few potential issues lets see how to tackle them.
### Installing specific version of a package
I am taking the example of VLC in this tutorial. VLC version 3.0.16 is available in Ubuntus repositories. I added the daily build PPA and that gives me the release candidate of VLC version 4.0.
As you can see, I have two VLC versions available in the system right now:
![install specific versions apt ubuntu][4]
```
[email protected]:~$ apt list -a vlc
Listing... Done
vlc/jammy 4.0.0~rc1~~git20220516+r92284+296~ubuntu22.04.1 amd64
vlc/jammy 3.0.16-1build7 amd64
vlc/jammy 3.0.16-1build7 i386
```
Since the higher version takes priority, using apt install vlc will result in the installation of VLC 4.0. But I want to install the older version 3.0.16 for the sake of this tutorial.
```
sudo apt install vlc=3.0.16-1build7
```
But heres the thing. The vlc package has several dependencies and those dependencies also need specific versions. However, Ubuntu tries to install the available higher versions for them, and thus, you get the classic [you have held broken packages][5] error.
![problem installing specific version apt ubuntu][6]
To fix this, you have to provide specific versions of all the dependent packages it complains about. So that command becomes something like this:
```
sudo apt install vlc=3.0.16-1build7 \
vlc-bin=3.0.16-1build7 \
vlc-plugin-base=3.0.16-1build7 \
vlc-plugin-qt=3.0.16-1build7 \
vlc-plugin-video-output=3.0.16-1build7 \
vlc-l10n=3.0.16-1build7 \
vlc-plugin-access-extra=3.0.16-1build7 \
vlc-plugin-notify=3.0.16-1build7 \
vlc-plugin-samba=3.0.16-1build7 \
vlc-plugin-skins2=3.0.16-1build7 \
vlc-plugin-video-splitter=3.0.16-1build7 \
vlc-plugin-visualization=3.0.16-1build7
```
In case you are wondering, the trailing \ at the end of each line is just a way to write a single command over multiple lines.
**Does it work? In many cases, it will.** But I have chosen a complicated example of VLC, which has lots of dependencies. Even the mentioned dependencies have dependencies on other packages. It gets messy.
An alternative is to specify the source while installing.
#### Alternatively, specify the repository source
You have added multiple sources, so you should have some idea about the sources the package comes from.
Use the command below and search for the repository:
```
apt-cache policy | less
```
Focus on the lines that come after the repository name:
```
500 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages
release v=22.04,o=Ubuntu,a=jammy-security,n=jammy,l=Ubuntu,c=multiverse,b=i386
origin security.ubuntu.com
```
You can specify the o,l,a, etc parameters.
In my original example, I want to install VLC from Ubuntus repository (to get 3.16) instead of the PPA (which gives me 4).
So the command below will install VLC 3.16 along with all the dependencies:
```
sudo apt install -t "o=ubuntu" vlc
```
![install from repository source][7]
Looks good? But the problem comes when you have to update the system. Then it complains about not finding the specified version.
**What else can be done?**
To install an older version, remove the source of the newer version from your system (if possible). It helps get rid of the dependencies hell issues.
If thats not possible, check if you can get it in some other packaging formats like Snap, Flatpak, AppImage, etc. In fact, Snap and Flatpak also allow you to choose and install from available versions. Since the applications are sandboxed, its easier to manage the dependencies for different versions.
#### Hold the package and prevent upgrade
If you manage to install a specific program version, you may want to avoid accidentally upgrading to the newer version. Its not too complicated to achieve this.
```
sudo apt-mark hold package_name
```
You can remove the hold so that it can be upgraded later:
```
sudo apt-mark unhold package_name
```
Note that dependencies of a package are not automatically held. They need to be individually mentioned.
### Conclusion
As you can see, there is a provision to install the selected version of a program. Things only get complicated if the package has dependencies. Then you get into the dependency hell.
I hope you learned a few new things in this tutorial. If you have questions or suggestions to improve it, please let me know in the comment section.
--------------------------------------------------------------------------------
via: https://itsfoss.com/apt-install-specific-version-2/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/wp-content/uploads/2022/05/install-specific-versions-apt-ubuntu.png
[2]: https://launchpad.net/~videolan/+archive/ubuntu/master-daily
[3]: https://itsfoss.com/prevent-package-update-ubuntu/
[4]: https://itsfoss.com/wp-content/uploads/2022/05/install-specific-versions-apt-ubuntu.png
[5]: https://itsfoss.com/held-broken-packages-error/
[6]: https://itsfoss.com/wp-content/uploads/2022/05/problem-installing-specific-version-apt-ubuntu-800x365.png
[7]: https://itsfoss.com/wp-content/uploads/2022/05/install-from-repository-source-800x578.png

View File

@ -0,0 +1,461 @@
[#]: subject: "For the Love of Ubuntu: Here are the Mascots of All Ubuntu Releases"
[#]: via: "https://itsfoss.com/all-Ubuntu-mascots/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
For the Love of Ubuntu: Here are the Mascots of All Ubuntu Releases
======
This is a collection of the mascots of all the Ubuntu releases so far.
You may have noticed that every Ubuntu release has a version name and codename. The codename is composed of two words that start with the same letter. The first word is an adjective, and the other one is (usually) an (endangered) species.
These releases also have a mascot for those codenames. Ubuntu 22.04 is codenamed Jammy Jellyfish and hence the Jellyfish mascot on its wallpaper.
These mascots were not always part of Ubuntu releases. The codenames were always there, but not the mascots.
The first-ever Ubuntu release was version 4.10 in October 2004. But it wasnt until the Ubuntu 8.04 LTS Hardy Heron release that you saw the associated mascot.
Earlier, I complied the [list of the default wallpapers of all Ubuntu releases][1]. In this one, you get to look at the mascots of those releases.
Lets hop on to Ubuntus mascot journey in reverse chronological order.
### Ubuntu 22.04 Jammy Jellyfish
![Ubuntu 22.04 mascot][2]
Released on 21 April 2021.
Jammy means covered with, filled with, or resembling jam. Informally, it also means lucky.
Jellyfish are mainly free-swimming marineanimalswith umbrella-shaped bells and trailingtentacles, although a few are anchored to the seabed by stalks rather than being mobile.
### Ubuntu 21.10 Impish Indri
![Ubuntu 21.10 mascot][3]
Released on 14 October 2021.
Impish means showing no respect for somebody/something in a way that is amusing rather than serious.
The Indri, also called the babakoto, is one of the largest living lemurs, with a head-and-body length of about 6472 cm and a weight of between 6 and 9.5 kg. It has a black and white coat and maintains an upright posture when climbing or clinging
### Ubuntu 21.04 Hirsute Hippo
![Ubuntu 21.04 mascot][4]
Released on 22 April 2021.
Hirsute means hairy.
The hippopotamus, also called the hippo, common hippopotamus, or river hippopotamus, is a large semiaquatic mammal native to sub-Saharan Africa. It is one of only two extant species in the family Hippopotamidae, the other being the pygmy hippopotamus. Its name comes from the ancient Greek for “river horse”.
Not sure if I have seen many hairy hippo.
### Ubuntu 20.10 Groovy Gorilla
![Ubuntu 20.10 mascot][5]
Released on 22 October 2020.
Groovy means fashionable and exciting.
Gorillas are herbivorous, predominantly ground-dwelling great apes that inhabit the tropical forests of equatorial Africa. The genus Gorilla is divided into two species: the eastern gorilla and the western gorilla, and either four or five subspecies.
### Ubuntu 20.04 LTS Focal Fossa
![Ubuntu 20.04 mascot 1][6]
Released on 23 April 2020.
Focal means something providing a focus, important in other meaning.
The fossa (Cryptoprocta ferox) is**the largest carnivorous mammal on the island of Madagascar**. They can reach nearly six feet in length, with half of that due to their long tails. They look like a cross between a cat, a dog, and a mongoose. Fossas have slender bodies, muscular limbs, and short, reddish-brown coats.
### Ubuntu 19.10 Eoan Ermine
![Ubuntu 19.10 mascot][7]
Released on 17 October 2019.
Eoan means relating to dawn or east.
The stoat or short-tailed weasel, also known as the Eurasian ermine, Beringian ermine, or simply ermine, is a mustelid native to Eurasia and the northern portions of North America. Because of its wide circumpolar distribution, it is listed as Least Concern on the IUCN Red List.
### Ubuntu 19.04 Disco Dingo
![Ubuntu 19.04 mascot][8]
Released on 18 April 2019.
Disco relates to the disco music and nightclubs.
The dingo is an ancient lineage of dog found in Australia. Its taxonomic classification is debated as indicated by the variety of scientific names presently applied in different publications.
### Ubuntu 18.10 Cosmic Cuttlefish
![Ubuntu 18.10 mascot][9]
Released on 18 October 2018.
Cosmic means something distinct from the earth,
Cuttlefish or cuttles are marine molluscs of the order Sepiida. They belong to the class Cephalopoda, which also includes squid, octopuses, and nautiluses. Cuttlefish have a unique internal shell, the cuttlebone, which is used for control of buoyancy.
### Ubuntu 18.04 LTS Bionic Beaver
![Ubuntu 18.04 mascot][10]
Released on 26 April 2018.
Bionic means having or denoting an artificial, typically electromechanical, body part or parts.
Beavers are large, semiaquatic rodents in the genus Castor native to the temperate Northern Hemisphere. There are two extant species: the North American beaver and the Eurasian beaver. Beavers are the second-largest living rodents after the capybaras.
The British users found this release name particularly amusing.
### Ubuntu 17.10 Artful Aardvark
![Ubuntu 17.10 mascot][11]
Released on 19 October 2017.
Ubuntu switched back to GNOME by default with this release.
Artful means cleaver or carfty.
The aardvark is a medium-sized, burrowing, nocturnal mammal native to Africa. It is the only living species of the order Tubulidentata, although other prehistoric species and genera of Tubulidentata are known. Unlike most other insectivores, it has a long pig-like snout, which is used to sniff out food.
### Ubuntu 17.04 Zesty Zapus
![Ubuntu 17.04 mascot][12]
Released on 13 April 2017.
Last release to feature the Unity desktop.
Zesty means having a strong, pleasant, and somewhat spicy flavor.
Zapus is a genus of North American jumping mouse. It is the only genus whose members have the dental formula. Zapus are the only extant mammals aside from the Aye-aye with a total of 18 teeth.
### Ubuntu 16.10 Yakkety Yak
![Ubuntu 16.10 mascot][13]
Released on 13 October 2016.
Yakkety could mean a lot of things. While yakking is an informal term for talking a lot, yakkety could be an alternative spelling of Yakety Sax — a well known pop-jazz musical instrument, says OMGUbuntu!.
Yak is a large domesticated wild ox with shaggy hair, humped shoulders, and large horns, used in Tibet as a pack animal and for its milk, meat, and hide.
### Ubuntu 16.04 LTS Xenial Xerus
![Ubuntu 16.04 mascot][14]
Released on 21 April 2016.
Xenial means something related to hospitality.
The Xerus has four subspecies **cape ground squirrel, striped ground squirrel, mountain ground squirrel, and unstriped ground squirrel**. These animals are diurnal and are usually known to be herbivores in nature and usually eat nuts, roots, and seeds. However, sometimes they also eat eggs and other small animals.
### Ubuntu 15.10 Wily Werewolf
![Ubuntu 15.10 mascot][15]
Released on 22 October 2015.
Perhaps one of the rare Ubuntu releases that had a finctional character in its codename, unless you dont consider warewolves fictional.
Wily means skilled at gaining an advantage, especially deceitfully.
The werewolves are mythical creatures that can hide their ears and tail. It is a human but also a wolf, and most people fear them because of how they look.
### Ubuntu 15.04 Vivid Vervet
![Ubuntu 15.04 mascot][16]
Released on 23 April 2015.
Vivid means intensely deep or bright..
The vervet monkey, or simply vervet, is an Old World monkey of the family Cercopithecidae native to Africa. The term “vervet” is also used to refer to all the members of the genus Chlorocebus. The five distinct subspecies can be found mostly throughout Southern Africa, as well as some of the eastern countries.
### Ubuntu 14.10 Utopic Unicorn
![Ubuntu 14.10 mascot][17]
Released on 23 October 2014.
Another of the Ubuntu release with fictional animal in its release codename unless you consider Unicrons are real.
Utopic relates to utopia which is a fictional, impractical but ideal place.
The**unicorn**is alegendary creaturethat has been described sinceantiquityas a beast with a single large, pointed, spiralinghornprojecting from its forehead.
### Ubuntu 14.04 LTS Trusty Tahr
![Ubuntu 14.04 mascot][18]
Released on 17 April 2014.
Trusty means reliable or faithful.
Tahr is a goatlike mammal that inhabits cliffs and mountain slopes in Oman, southern India, and the Himalayas.
### Ubuntu 13.10 Saucy Salamander
![Ubuntu 13.10 mascot][19]
Released on 17 October 2013.
Saucy means expressing in a bold, lively, or spirited manner.
Salamanders are a group of amphibians typically characterized by their lizard-like appearance, with slender bodies, blunt snouts, short limbs projecting at right angles to the body, and the presence of a tail in both larvae and adults. All ten extant salamander families are grouped together under the order Urodela.
### Ubuntu 13.04 Raring Ringtail
![Ubuntu 13.04 mascot][20]
Released on 25 April 2013.
Raring means very enthusiastic and eager to do something.
The Ringtail is**a cat-sized carnivore resembling a small fox with a long raccoonlike tail**. Its bushy tail is flattened and nearly as long as the head and body, with alternating black and white rings. These animals are almost wholly nocturnal and spend the majority of the day sleeping in their dens.
### Ubuntu 12.10 Quantal Quetzal
![Ubuntu 12.10 mascot][21]
Released on 18 October 2012.
Quantal means relating to a quantum or quanta, or to quantum theory.
**Quetzals** are strikingly coloredbirdsin thetrogonfamily. They are found inforests, especially in humidhighlands, with the five species from the genus*Pharomachrus*being exclusivelyNeotropical, while a single species, theeared quetzal,*Euptilotis neoxenus*, is found in Mexico and very locally in the southernmost United States. Quetzals are fairly large (all over 32cm or 13inches long), slightly bigger than other trogon species. Theresplendent quetzalis thenational birdofGuatemalabecause of its vibrant colour.
### Ubuntu 12.04 LTS Precise Pangolin
![Ubuntu 12.04 mascot][22]
Released on 26 April 2012.
Precise means marked by exactness and accuracy of expression or detail.
Pangolins, sometimes known as scaly anteaters, are mammals of the order Pholidota. The one extant family, the Manidae, has three genera: Manis, Phataginus, and Smutsia. Manis comprises the four species found in Asia, while Phataginus and Smutsia include two species each, all found in sub-Saharan Africa.
### Ubuntu 11.10 Oneiric Ocelot
![Ubuntu 11.10 mascot][23]
Released on 13 October 2011.
Onerice relates to dreams or dreaming.
The ocelot (Leopardus pardalis) is a medium-sized spotted wild cat that reaches 4050 cm (15.719.7 in) at the shoulders and weighs between 8 and 15.5 kg (17.6 and 34.2 lb). It was first described by Carl Linnaeus in 1758.
### Ubuntu 11.04 Natty Narwhal
![Ubuntu 11.04 mascot][24]
Released on 28 April 2011.
The first release to feature the Unity desktop.
Natty means smart and fashionable.
The narwhal, also known as a narwhale, is a medium-sized toothed whale that possesses a large “tusk” from a protruding canine tooth. It lives year-round in the Arctic waters around Greenland, Canada and Russia. It is one of two living species of whale in the family Monodontidae, along with the beluga whale.
### Ubuntu 10.10 Maverick Meerkat
![Ubuntu 10.10 mascot][25]
Released on 10 October 2010.
Maverick means an unorthodox or independent-minded person.
The meerkat or suricate is a small mongoose found in southern Africa. It is characterised by a broad head, large eyes, a pointed snout, long legs, a thin tapering tail, and a brindled coat pattern.
### Ubuntu 10.04 LTS Lucid Lynx
![Ubuntu 10.04 mascot][26]
Released on 29 April 2010.
Lucid means easy to understand or bright.
A lynx is any of the four species within the medium-sized wild cat genus Lynx. The name lynx originated in Middle English via Latin from the Greek word λύγξ, derived from the Indo-European root leuk- in reference to the luminescence of its reflective eyes.
### Ubuntu 9.10 Karmic Koala
![Ubuntu 9.10 mascot][27]
Released on 29 October 2009.
Karmic means relating to or characteristic of karma.
The koala or, inaccurately, koala bear is an arboreal herbivorous marsupial native to Australia. It is the only extant representative of the family Phascolarctidae and its closest living relatives are the wombats.
### Ubuntu 9.04 Jaunty Jackalope
![Ubuntu 9.04 mascot][28]
Released on 23 April 2009.
The first Ubuntu version I ever used.
Jaunty means having or expressing a lively, cheerful, and self-confident manner.
The jackalope is**a mythical animal of North American folklore, in the category of fearsome critters, described as a jackrabbit with antelope horns**. The word jackalope is a portmanteau of jackrabbit and antelope. Many jackalope taxidermy mounts, including the original, are made with deer antlers.
### Ubuntu 8.10 Intrepid Ibex
![Ubuntu 8.10 mascot][29]
Released on 30 October 2008.
Intrepid means fearless; adventurous.
An ibex is any of several species of wild goat, distinguished by the males large recurved horns, which are transversely ridged in front. Ibex are found in Eurasia, North Africa and East Africa.
### Ubuntu 8.04 LTS Hardy Heron
![Ubuntu 8.04 mascot][30]
Released on 24 April 2008.
The first Ubuntu release where the mascot appeared on its default wallpaper.
Hardy means capable of enduring difficult conditions; robust.
The herons arelong-legged, long-necked, freshwater and coastal birds
### Ubuntu 7.10 Gutsy Gibbon
![Ubuntu 7.10 mascot][31]
Released on 18 October 2007.
Gusty is characterized by or blowing in gusts.
Gibbons are apeslive in subtropical and tropical rainforest from eastern Bangladesh to Northeast India to southern China and Indonesia
### Ubuntu 7.04 Feisty Fawn
![Ubuntu 7.04 mascot][32]
Released on 19 April 2007.
Feisty means small but determined. Fawn is a young deer in its first year.
### Ubuntu 6.10 Edgy Eft 
![Ubuntu 6.10 mascot][33]
Released on 26 October 2006.
Edgy means tense or nervous.
Eft is the terrestrial juvenile phase of newt. A newt is a type of salamander (a type of lizard). This newt has three distinct developmental life stages: aquatic larva, terrestrial juvenile (eft), and adult.
So basically eft is a teenaged newt :)
### Ubuntu 6.06 Dapper Drake
![Ubuntu 6.06 mascot][34]
Released on 1 June 2006.
Dapper means neat and trim in dress and appearance. Drake is a fully sexually mature adult male duck of any duck species.
### Ubuntu 5.10 Breezy Badger
![Ubuntu 5.10 mascot][35]
Released on 12 October 2005.
Breezy means pleasantly windy.
Badgers are short-legged omnivores, united by their squat bodies, adapted for fossorial activity.
### Ubuntu 5.04 Hoary Hedgehog 
![Ubuntu 5.04 mascot][36]
Released on 8 April 2005.
Hoary means greyish white.
A hedgehogis a spiny mammal found throughout parts of Europe, Asia, and Africa, and in New Zealand by introduction.
### Ubuntu 4.10 : Warty Warthog
![Ubuntu 4.10 mascot][37]
Released on 20 October 2004.
This is where it all started.
Wart is a small, hard, benign growth on the skin, caused by a virus. Warty means someone full of warts.
The common warthog is a wild member of the pig family found in grassland, savanna, and woodland in sub-Saharan Africa.
### Conclusion
Does this article add value to an Ubuntu user? Not technically, but its good to look back at the history. If you have been an Ubuntu user for years, it could trigger nostalgia.
Ubuntu 9.04 was the first time I tried Linux on a desktop. It was in late September of 2009 if I recall correctly. Only a few weeks later, my system was upgraded to Ubuntu 9.10. I used to spend time browing in Ubuntu Forum thoses days, exploring this new OS and learning new things.
So, did this article bring back some good old memories? Which was your first Ubuntu version? Share it in the comments.
--------------------------------------------------------------------------------
via: https://itsfoss.com/all-Ubuntu-mascots/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/Ubuntu-default-wallpapers-download/
[2]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-22-04-mascot.jpg
[3]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-21-10-mascot.jpg
[4]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-21-04-mascot.jpg
[5]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-20-10-mascot.jpg
[6]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-20-04-mascot-1.jpg
[7]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-19-10-mascot.jpg
[8]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-19-04-mascot.jpg
[9]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-18-10-mascot.jpg
[10]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-18-04-mascot.jpg
[11]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-17-10-mascot.jpg
[12]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-17-04-mascot.jpg
[13]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-16-10-mascot.jpg
[14]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-16-04-mascot.jpg
[15]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-15-10-mascot.jpg
[16]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-15-04-mascot.jpg
[17]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-14-10-mascot.jpg
[18]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-14-04-mascot.jpg
[19]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-13-10-mascot.jpg
[20]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-13-04-mascot.jpg
[21]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-12-10-mascot.jpg
[22]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-12-04-mascot.jpg
[23]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-11-10-mascot.jpg
[24]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-11-04-mascot.jpg
[25]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-10-10-mascot.jpg
[26]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-10-04-mascot.jpg
[27]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-9-10-mascot.jpg
[28]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-9-04-mascot.jpg
[29]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-8-10-mascot.jpg
[30]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-8-04-mascot.jpg
[31]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-7-10-mascot.jpg
[32]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-7-04-mascot.jpg
[33]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-6-10-mascot.jpg
[34]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-6-06-mascot.jpg
[35]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-5-10-mascot.jpg
[36]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-5-04-mascot.jpg
[37]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-4-10-mascot.jpg

View File

@ -0,0 +1,196 @@
[#]: subject: "Top 10 Essential Ubuntu Apps For Everyone in 2022"
[#]: via: "https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Top 10 Essential Ubuntu Apps For Everyone in 2022
======
This article lists the top 10 essential Ubuntu apps for various use cases in 2022.
If you are a casual user, student, teacher, scientist, developer or creator you need additional applications for your workflow. The Linux ecosystem has thousands of applications scattered around for almost all possible needs. Most of the mainstream Linux distribution, including Ubuntu, features only basic applications as default.
In this part 1 article (of a 5 part series), we list some of the professional-grade applications for everyone.
### Essential Ubuntu Apps in 2022 Part 1
#### 1. GNOME Tweak Tool
The [GNOME Tweak Tool][1] is a must-have utility for your Ubuntu desktop if you are using the Ubuntu GNOME edition. To customise your desktop using this utility, you can change the font, scaling, themes, cursor, and many additional options. The default settings window doesnt expose all the options today.
In addition, you can also change the window decorations, title bar, title bar buttons and startup applications using this application.
You can install it using the Software app by searching “Tweaks” or via the commands from the terminal as mentioned below.
```
sudo apt install gnome-tweaks
```
![GNOME Tweaks Tool][2]
#### 2. Steam
Gaming in Linux is not that difficult anymore, thanks to Valve and associated contributions from the community. [Steam][3] is a front end of video games service developed by Valve, which gives you access to the latest games on the Ubuntu platform with top features. Moreover, the Steam client also offers anti-cheat measures, auto-update and support for social conversation with streaming features.
If you are a gamer and use Linux, Steam is a go-to client which you can install with the below commands. Also, you can search in Software as “Steam Installer” and install using [Flatpak][4] or [Snap][5].
```
sudo apt install steam
```
![Steam Client][6]
#### 3. Peek
[Peek][7] is, in my opinion, an underrated application. It is an animated GIF recorder which is very useful for various workflow. This is such a powerful utility that it right fits in at Ubuntu or any Linux distro. Moreover, Peek brings options like recording area selection, countdown, gif, mp4 and WebM support. It uses ffmpeg for its backend.
Install this excellent utility using Software by searching “peek” or by terminal commands mentioned below.
```
sudo apt install peek
```
![Peek][8]
#### 4. Synaptic
[Synaptic][9] is an excellent package manager that helps you add and remove packages traditionally. Those who are little experienced in Linux know about its features and flexibility. You can search for packages in various repositories, verify dependencies and proceed with the installation.
A perfect application if you frequently install and uninstall packages. You can install synaptic using the commands mentioned below or search in Software with “synaptic”.
```
sudo apt install synaptic
```
![Synaptic Package Manager][10]
#### 5. GDebi
As we mentioned Synaptic above, you should also try out the [GDebi][11] package installer, which brings several features. The GDebi package installer is a command-line utility used to install external deb files. In addition, GDebi is much faster and more efficient installing .deb packages and resolves the dependencies on the fly and downloads them for you.
One of the best terminal based Ubuntu applications for installing .deb packages, and you can install it using the below command. After installation, you can run `gdebi <your .deb file name with path>` for installation of any packages.
```
sudo apt install gdebi
```
#### 6. Geary
You always need a native [email client][12] for your Ubuntu desktop for any workflow. Emails are still relevant and valuable to many. While Ubuntu brings the great Thunderbird email client by default, you can always use another email client application which gives you a better experience.
[Geary][13] has a friendly and straightforward user interface which gives you an easy way to set up multiple email accounts. In addition, Geary also brings conversation features, faster search, rich text email composing and other features which make it a “go-to” email client for Linux desktops.
You can install Geary using the command below or search it in Software with the keyword “Geary”. It is also available as [Flatpak][14].
```
sudo apt install geary
```
![Geary][15]
#### 7. Google Chrome
While many of you are concerned about privacy and tracking, Google Chrome is still the market leader in the browser space. Ubuntu features Firefox web browser by default, and with the recent snap events with Firefox, you may want to switch to another browser.
You may think of using Google Chrome if you are tightly connected with the Google ecosystem and want a better web experience in streaming and browsing. However, if you are concerned about privacy and tracking, you may choose some other browsers such as Brave or Vivaldi.
You can install Google Chrome after downloading the .deb file from the below link for Ubuntu Linux. After installation, you can open it via Software to install.
[Download Google Chrome][16]
#### 8. Kdenlive
One of the best free and open-source video editors in Linux is [Kdenlive][17]. The KDenlive is simple to use with its well-designed user interface and comes with various features. Firstly, with Kdenlive, you can easily import video clips, change canvas resolution, and export to a wide range of formats after editing. Secondly, the timeline and tools allow you to cut and add titles, transitions and effects with just a click of a button. Moreover, its super easy to learn if you are new to video editing.
Kdenlive is a very active project, and its getting more advanced features with every major release. This is one of the essential Ubuntu apps in 2022, which we feature in this list if you compare it with other [free video editors][18].
Installing Kdenlive is easy using the below command. In addition to that, you can also use [Flatpak][19] or [Snap][20] version to install.
```
sudo apt install kdenlive
```
![Kdenlive Video Editor][21]
#### 9. Spectacle
You may have tried many screenshot applications. But in my opinion, [Spectacle][22] is perhaps the best and underrated. The Spectacle is a KDE application that is super fast and perfectly fits any workflow that requires taking screenshots and using them. Firstly, you can capture the entire desktop, a portion of it or a window with a customised time. Secondly, the window captures can also pick the window decoration and cursor if needed. Third, Spectacle also gives you a built-in annotation feature to withdraw, write, and label your images.
Furthermore, you can also open the image in GIMP or any image editor right from its main window and export them. In addition, autosave, copying the capture to the clipboard, and sharing to social media are some of the unique features of Spectacle.
In my opinion, a complete screenshot tool with a built-in screen recorder.
You can install Spectacle using the below command or from the [Snap store][23].
```
sudo apt install kde-spectacle
```
![Spectacle Screenshot tool][24]
#### 10. VLC Media Player
Ubuntu Linux with GNOME desktop brings the GNOME Videos application by default for playing video files. But GNOME Videos cannot play several video formats due to a lack of decoding features. That is why, you should always consider [VLC Media Player][25] which is a “go-to” media player on Linux desktops.
VLC can play any format, literally. It even helps you to play corrupted video files having incomplete data. It is one of the powerful media players you can install using the command below.
In addition, If you prefer another mode of installation, you can get it via [Flatpak][26] or [Snap][27].
```
sudo apt install vlc
```
![VLC Media Player][28]
### Closing Notes
This concludes part 1 of a 5-part series of essential Ubuntu Apps in 2022. With the information above, I hope you get to choose some of the apps for your daily usage. And let me know which apps you prefer from this list in the comment box below.
Finally, stay tuned for part 2 of this Ubuntu apps series.
Cheers.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/essential-ubuntu-apps-2022-part-1/
作者:[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://gitlab.gnome.org/GNOME/gnome-tweaks
[2]: https://www.debugpoint.com/wp-content/uploads/2022/05/GNOME-Tweaks-Tool.jpg
[3]: https://store.steampowered.com/
[4]: https://flathub.org/apps/details/com.valvesoftware.Steam
[5]: https://snapcraft.io/steam
[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/Steam-Client.jpg
[7]: https://github.com/phw/peek
[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Peek-in-action2.jpg
[9]: https://www.nongnu.org/synaptic/
[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/Synaptic-Package-Manager.jpg
[11]: https://launchpad.net/gdebi
[12]: https://www.debugpoint.com/2019/06/best-email-client-linux-windows/
[13]: https://wiki.gnome.org/Apps/Geary
[14]: https://flathub.org/apps/details/org.gnome.Geary
[15]: https://www.debugpoint.com/wp-content/uploads/2019/06/Geary.png
[16]: https://www.google.com/chrome
[17]: https://kdenlive.org/
[18]: https://www.debugpoint.com/2019/09/best-free-video-editors-linux-ubuntu/
[19]: https://flathub.org/apps/details/org.kde.kdenlive
[20]: https://snapcraft.io/kdenlive
[21]: https://www.debugpoint.com/wp-content/uploads/2021/01/Kdenlive-Video-Editor.jpg
[22]: https://apps.kde.org/spectacle/
[23]: https://snapcraft.io/spectacle
[24]: https://www.debugpoint.com/wp-content/uploads/2022/05/Spectacle-Screenshot-tool.jpg
[25]: https://www.videolan.org/vlc
[26]: https://flathub.org/apps/details/org.videolan.VLC
[27]: https://snapcraft.io/vlc
[28]: https://www.debugpoint.com/wp-content/uploads/2022/05/VLC-Media-Player.jpg

View File

@ -0,0 +1,69 @@
[#]: subject: "Use this open source screen reader on Windows"
[#]: via: "https://opensource.com/article/22/5/open-source-screen-reader-windows-nvda"
[#]: author: "Peter Cheer https://opensource.com/users/petercheer"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Use this open source screen reader on Windows
======
In honor of Global Accessibility Awareness Day, learn about the NVDA open source screen reader and how you can get involved to improve accessibility for all web users.
![Working from home at a laptop][1]
Image by: Opensource.com
Screen readers are a specialized area of assistive technology software that reads and then speaks the content of a computer screen. People with no sight at all are just a fraction of those with visual impairments, and screen reader software can help all groups. Screen readers are mostly specific to an operating system, and they're used by people with visual impairments and accessibility trainers, as well as developers and accessibility consultants wanting to test how accessible a website or application is.
### How to use the NVDA screen reader
The [WebAIM screen reader user surveys][2] began in 2009 and ran to 2021. In the first survey, the most common screen reader used was JAWS at 74%. It is a commercial product for Microsoft Windows, and the long-time market leader. NVDA, then a relatively new open source screen reader for Windows came in at just 8%. Fast forward to 2021 and JAWS comes in with 53.7% with NVDA at 30.7%.
You can download the latest release of NVDA from the [NVAccess website][3]. Why do I use NVDA and recommend it to my MS Windows using clients? Well, it is open source, fast, powerful, easy to install, supports a wide variety of languages, can be run as a portable application, has a large user base, and there is a regular release cycle for new versions.
NVDA has been translated into fifty-five languages and is used in one-hundred and seventy-five different countries. There is also an active developer community with their own [Community Add-ons website][4]. Any add-ons you choose to install will depend on your needs and there are a lot to choose from, including extensions for common video conferencing platforms.
Like all screen readers, there are a lot of key combinations to learn with NVDA. Using any screen reader proficiently takes training and practice.
![Image of NVDA welcome screen][5]
Teaching NVDA to people familiar with computers and who have keyboard skills is not too difficult. Teaching basic computer skills (without the mouse, touch pad, and keyboard skills) and working with NVDA to a complete beginner is far more of a challenge. Individual learning styles and preferences differ. In addition, people may not need to learn how to do everything if all that they want to do is browse the web and use email. A good source of links to NVDA tutorials and resources is [Accessibility Central][6].
It becomes easier once you have mastered operating NVDA with keyboard commands, but there is also a menu-driven system for many configuration tasks.
![Image of NVDA menu][7]
### Test for accessibility
The inaccessibility of some websites to screen reader users has been a problem for many years, and still is despite disability equality legislation like the Americans with Disabilities Act (ADA). An excellent use for NVDA in the sighted community is for website accessibility testing. NVDA is free to download, and by running a portable version, website developers don't even need to install it. Run NVDA, turn off your monitor or close your eyes, and see how well you can navigate a website or application.
NVDA can also be used for testing when working through the (often ignored) task of properly [tagging a PDF document for accessibility][8].
There are several guides that concentrate on using NVDA for accessibility testing. I can recommend [Testing Web Pages with NVDA][9] and Using [NVDA to Evaluate Web Accessibility][10].
Image by: (Peter Cheer, CC BY-SA 4.0)
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/open-source-screen-reader-windows-nvda
作者:[Peter Cheer][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/petercheer
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/wfh_work_home_laptop_work.png
[2]: https://webaim.org/projects
[3]: https://www.nvaccess.org
[4]: https://addons.nvda-project.org/index.en.html
[5]: https://opensource.com/sites/default/files/2022-05/nvda1.png
[6]: http://www.accessibilitycentral.net/
[7]: https://opensource.com/sites/default/files/2022-05/nvda2.png
[8]: https://www.youtube.com/watch?v=rRzWRk6cXIE
[9]: https://www.unimelb.edu.au/accessibility/tools/testing-web-pages-with-nvda
[10]: https://webaim.org/articles/nvda

View File

@ -0,0 +1,272 @@
[#]: subject: "A programmer's guide to GNU C Compiler"
[#]: via: "https://opensource.com/article/22/5/gnu-c-compiler"
[#]: author: "Jayashree Huttanagoudar https://opensource.com/users/jayashree-huttanagoudar"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
A programmer's guide to GNU C Compiler
======
Get a behind-the-scenes look at the steps it takes to produce a binary file so that when something goes wrong, you know how to step through the process to resolve problems.
![GitHub launches Open Source Friday][1]
Image by: Opensource.com
C is a well-known programming language, popular with experienced and new programmers alike. Source code written in C uses standard English terms, so it's considered human-readable. However, computers only understand binary code. To convert code into machine language, you use a tool called a *compiler*.
A very common compiler is GCC (GNU C Compiler). The compilation process involves several intermediate steps and adjacent tools.
### Install GCC
To confirm whether GCC is already installed on your system, use the `gcc` command:
```
$ gcc --version
```
If necessary, install GCC using your packaging manager. On Fedora-based systems, use `dnf` :
```
$ sudo dnf install gcc libgcc
```
On Debian-based systems, use `apt` :
```
$ sudo apt install build-essential
```
After installation, if you want to check where GCC is installed, then use:
```
$ whereis gcc
```
### Simple C program using GCC
Here's a simple C program to demonstrate how to compile code using GCC. Open your favorite text editor and paste in this code:
```
// hellogcc.c
#include <stdio.h>
 
int main() {
    printf("Hello, GCC!\n");
return 0;
}
```
Save the file as `hellogcc.c` and then compile it:
```
$ ls
hellogcc.c
$ gcc hellogcc.c
$ ls -1
a.out
hellogcc.c
```
As you can see, `a.out` is the default executable generated as a result of compilation. To see the output of your newly-compiled application, just run it as you would any local binary:
```
$ ./a.out
Hello, GCC!
```
### Name the output file
The filename `a.out` isn't very descriptive, so if you want to give a specific name to your executable file, you can use the `-o` option:
```
$ gcc -o hellogcc hellogcc.c
$ ls
a.out  hellogcc  hellogcc.c
$ ./hellogcc
Hello, GCC!
```
This option is useful when developing a large application that needs to compile multiple C source files.
### Intermediate steps in GCC compilation
There are actually four steps to compiling, even though GCC performs them automatically in simple use-cases.
1. Pre-Processing: The GNU C Preprocessor (cpp) parses the headers (#include statements), expands macros (#define statements), and generates an intermediate file such as `hellogcc.i` with expanded source code.
2. Compilation: During this stage, the compiler converts pre-processed source code into assembly code for a specific CPU architecture. The resulting assembly file is named with a `.s` extension, such as `hellogcc.s` in this example.
3. Assembly: The `as`sembler (as) converts the assembly code into machine code in an object file, such as `hellogcc.o`.
4. Linking: The linker (ld) links the object code with the library code to produce an executable file, such as `hellogcc`.
When running GCC, use the `-v` option to see each step in detail.
```
$ gcc -v -o hellogcc hellogcc.c
```
![Compiler flowchart][2]
Image by:
(Jayashree Huttanagoudar, CC BY-SA 4.0)
### Manually compile code
It can be useful to experience each step of compilation because, under some circumstances, you don't need GCC to go through all the steps.
First, delete the files generated by GCC in the current folder, except the source file.
```
$ rm a.out hellogcc.o
$ ls
hellogcc.c
```
#### Pre-processor
First, start the pre-processor, redirecting its output to `hellogcc.i` :
```
$ cpp hellogcc.c > hellogcc.i
$ ls
hellogcc.c  hellogcc.i
```
Take a look at the output file and notice how the pre-processor has included the headers and expanded the macros.
#### Compiler
Now you can compile the code into assembly. Use the `-S` option to set GCC just to produce assembly code.
```
$ gcc -S hellogcc.i
$ ls
hellogcc.c  hellogcc.i  hellogcc.s
$ cat hellogcc.s
```
Take a look at the assembly code to see what's been generated.
#### Assembly
Use the assembly code you've just generated to create an object file:
```
$ as -o hellogcc.o hellogcc.s
$ ls
hellogcc.c  hellogcc.i  hellogcc.o  hellogcc.s
```
#### Linking
To produce an executable file, you must link the object file to the libraries it depends on. This isn't quite as easy as the previous steps, but it's educational:
```
$ ld -o hellogcc hellogcc.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000000401000
ld: hellogcc.o: in function `main`:
hellogcc.c:(.text+0xa): undefined reference to `puts'
```
An error referencing an`undefined puts` occurs after the linker is done looking at the `libc.so` library. You must find suitable linker options to link the required libraries to resolve this. This is no small feat, and it's dependent on how your system is laid out.
When linking, you must link code to core runtime (CRT) objects, a set of subroutines that help binary executables launch. The linker also needs to know where to find important system libraries, including libc and libgcc, notably within special start and end instructions. These instructions can be delimited by the `--start-group` and `--end-group` options or using paths to `crtbegin.o` and `crtend.o`.
This example uses paths as they appear on a RHEL 8 install, so you may need to adapt the paths depending on your system.
```
$ ld -dynamic-linker \
/lib64/ld-linux-x86-64.so.2 \
-o hello \
/usr/lib64/crt1.o /usr/lib64/crti.o \
--start-group \
-L/usr/lib/gcc/x86_64-redhat-linux/8 \
-L/usr/lib64 -L/lib64 hello.o \
-lgcc \
--as-needed -lgcc_s \
--no-as-needed -lc -lgcc \
--end-group
/usr/lib64/crtn.o
```
The same linker procedure on Slackware uses a different set of paths, but you can see the similarity in the process:
```
$ ld -static -o hello \
-L/usr/lib64/gcc/x86_64-slackware-linux/11.2.0/ \
/usr/lib64/crt1.o /usr/lib64/crti.o \
hello.o /usr/lib64/crtn.o \
--start-group -lc -lgcc -lgcc_eh \
--end-group
```
Now run the resulting executable:
```
$ ./hello
Hello, GCC!
```
### Some helpful utilities
Below are a few utilities that help examine the file type, symbol table, and the libraries linked with the executable.
Use the `file` utility to determine the type of file:
```
$ file hellogcc.c
hellogcc.c: C source, ASCII text
$ file hellogcc.o
hellogcc.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$ file hellogcc
hellogcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bb76b241d7d00871806e9fa5e814fee276d5bd1a, for GNU/Linux 3.2.0, not stripped
```
The use the `nm` utility to list symbol tables for object files:
```
$ nm hellogcc.o
0000000000000000 T main
                          U puts
```
Use the `ldd` utility to list dynamic link libraries:
```
$ ldd hellogcc
linux-vdso.so.1 (0x00007ffe3bdd7000)
libc.so.6 => /lib64/libc.so.6 (0x00007f223395e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2233b7e000)
```
### Wrap up
In this article, you learned the various intermediate steps in GCC compilation and the utilities to examine the file type, symbol table, and libraries linked with an executable. The next time you use GCC, you'll understand the steps it takes to produce a binary file for you, and when something goes wrong, you know how to step through the process to resolve problems.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/gnu-c-compiler
作者:[Jayashree Huttanagoudar][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/jayashree-huttanagoudar
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/build_structure_tech_program_code_construction.png
[2]: https://opensource.com/sites/default/files/2022-05/compiler-flowchart.png

View File

@ -0,0 +1,218 @@
[#]: subject: "Add, Delete And Grant Sudo Privileges To Users In Fedora 36"
[#]: via: "https://ostechnix.com/add-delete-and-grant-sudo-privileges-to-users-in-fedora/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Add, Delete And Grant Sudo Privileges To Users In Fedora 36
======
Create sudo user in Fedora
Using `sudo` program, we can elevate the ability of a normal user to run administrative tasks, without giving away the `root` user's password in Linux operating systems. This guide explains how to add, delete and grant sudo privileges to users in Fedora 36 desktop and server editions.
I've divided this guide in three sections. The first section teaches you how to create a new user. In the second section, you'll learn how to give sudo access to the existing user. And in the last section, you will know how to remove sudo access from a user. I've also provided example commands in each section, so you can understand it better.
First, we will start with giving sudo access to a new user.
### 1. Create A New User In Fedora
Login to your Fedora system as `root` user or `sudo` user.
We can use either `useradd` or `adduser` commands to create users in Linux.
For the purpose of this guide, I am going to create a new user called **"senthil"** using `adduser` command.
To do so, I run the following command with `sudo` or `root` privilege:
```
$ sudo adduser senthil
```
Next, I am going to set a password to the newly created user "senthil" with `passwd` command:
```
$ sudo passwd senthil
```
![Create A New User In Fedora][1]
We just created a normal user called "senthil". This user has not been given sudo access yet. So he can't perform any administrative tasks.
You can verify if an user has sudo access or not like below.
```
$ sudo -l -U senthil
```
**Sample output:**
```
User senthil is not allowed to run sudo on fedora.
```
![Check If An User Has Sudo Access][2]
As you can see, the user "senthil" is not yet allowed to run sudo. Let us go ahead and give him sudo access in the following steps.
### 2. Grant Sudo Privileges To Users In Fedora
To add a normal user to **sudoers** group, simply add him/her to the `wheel` group.
For those wondering, the `wheel` is a special group in some Unix-like operating systems (E.g. RHEL based systems). All the members of `wheel` group are allowed to perform administrative tasks. Wheel group is similar to `sudo` group in Debian-based systems.
We can add users to sudoers list in two ways. The first method is by using `chmod` command.
#### 2.1. Add Users To Sudoers Using Usermod Command
```
Usermod
```
To grant sudo privileges to a user called "senthil", just add him to the `wheel` group using `usermod` command as shown below:
```
$ sudo usermod -aG wheel senthil
```
Here, `-aG` refers append to a supplementary group. In our case, it is `wheel` group.
Verify if the user is in the sudoers list with command:
```
$ sudo -l -U senthil
```
If you output something like below, it means the user has been given sudo access and he can able to perform all administrative tasks.
```
Matching Defaults entries for senthil on fedora:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
env_keep+="MAIL QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/var/lib/snapd/snap/bin
User senthil may run the following commands on fedora:
(ALL) ALL
```
![Add A User To Sudoers Group Using Usermod Command][3]
As you see in the above output, the user "Senthil" can run ALL commands on any host.
#### 2.2. Add Users To Sudoers By Editing Sudoers Configuration File
The another way to add users to sudoers list is by directly adding him/her to the sudoers configuration file.
Edit sudoers configuration file using command:
```
$ sudo visudo
```
This will open `/etc/sudoers` file in your **Vi** editor or whatever you have in your `$PATH`. Scroll down until you find following entry:
```
root ALL=(ALL) ALL
```
Right after the above entry, add the following line:
```
senthil ALL=(ALL) ALL
```
![Add Users To Sudoers Group By Editing Sudoers Configuration File][4]
Here, the line `ALL=(ALL) ALL` refers the user "senthil" can perform any commands on any host. Replace "senthil" with your own username. Save the file and close it.
That's it. The user has been granted sudo access.
#### 2.3. Verify Sudo Users
Log out from the current session and log back in as the newly created sudo user. Alternatively, you can directly switch to the other user, without having to log out from the current session, using the following command:
```
$ sudo -i -u senthil
```
![Switch To New User In Fedora Linux][5]
Now, verify if the user can able to perform any administrative task with `sudo` permission:
```
$ sudo dnf --refresh update
```
![Run Dnf Update Command With Sudo][6]
Great! The user can able to run the `dnf update` command with sudo privilege. From now on, the user can perform all commands prefixed with sudo.
### 3. Delete Sudo Access From A User
Make sure you logged out of the user's session and log back in as `root` or some other sudo user. Because you can't delete the sudo access of the currently logged in user.
We can remove sudo privileges from an user without having to entirely delete the user account.
To do so, use `gpasswd` command to revoke sudo permissions from a user:
```
$ sudo gpasswd -d senthil wheel
```
**Sample output:**
```
Removing user senthil from group wheel
```
This will only remove sudo privilege of the given user. The user still exists in the system
Verify if the sudo access has been removed using command:
```
$ sudo -l -U senthil
User senthil is not allowed to run sudo on fedora35.
```
![Delete Sudo Access From A User Using Gpasswd Command][7]
#### 3.1. Permanently Delete User
If you don't need the user any more, you can permanently remove the user from the system using `userdel` command like below.
```
$ sudo userdel -r senthil
```
The above command will delete the user "senthil" along with his  `home` directory and mail spool.
### Conclusion
This concludes how to add, delete and grant sudo privileges to users in Fedora 36 operating system. This method is same for other RPM-based systems as well.
--------------------------------------------------------------------------------
via: https://ostechnix.com/add-delete-and-grant-sudo-privileges-to-users-in-fedora/
作者:[sk][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/wp-content/uploads/2022/05/Create-A-New-User-In-Fedora.png
[2]: https://ostechnix.com/wp-content/uploads/2022/05/Check-If-An-User-Has-Sudo-Access.png
[3]: https://ostechnix.com/wp-content/uploads/2022/05/Add-A-User-To-Sudoers-Group-Using-Usermod-Command.png
[4]: https://ostechnix.com/wp-content/uploads/2022/05/Add-Users-To-Sudoers-Group-By-Editing-Sudoers-Configuration-File.png
[5]: https://ostechnix.com/wp-content/uploads/2022/05/Switch-To-New-User-In-Fedora-Linux.png
[6]: https://ostechnix.com/wp-content/uploads/2022/05/Run-Dnf-Update-Command-With-Sudo.png
[7]: https://ostechnix.com/wp-content/uploads/2022/05/Delete-Sudo-Access-From-A-User-Using-Gpasswd-Command.png

View File

@ -0,0 +1,132 @@
[#]: subject: "Customize GNOME 42 with A Polished Look"
[#]: via: "https://www.debugpoint.com/2022/05/customize-gnome-42-look-1/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Customize GNOME 42 with A Polished Look
======
A tutorial on how you can give your favourite GNOME desktop a polished look, in 5 minutes.
There are many ways you can customize your favourite GNOME desktop with icons, themes, cursors and wallpapers. This article shows you how to give the GNOME 42 desktop a more polished look. The GNOME 42 desktop environment is available with the recently released Ubuntu 22.04 LTS and Fedora 36.
Before you read further, heres how it looks with a side by side comparison (before and after).
![GNOME before customisation][1]
![GNOME after customisation][2]
I am going to divide this tutorial into two sections.
The first section deals with setting up and installing required packages. And second, how to apply various settings to get your desired look.
This tutorial was mainly tested on Ubuntu 22.04 LTS. However, it should work in other variants of Ubuntu and Fedora.
### Customize GNOME 42 with a Polished Look
#### Setup
* First, enable your system for Flatpak because we need to install the Extension Manager to download some required GNOME Shell extensions for this tutorial.
* So, to do that, open up a terminal and run the following commands.
```
sudo apt install flatpak gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
```
* Reboot the computer once done.
* Then run the following command from the terminal to install the Extensions Manager app to download GNOME Shell Extensions.
```
flatpak install flathub com.mattjakeman.ExtensionManager
```
* Open the Extension Manager application and install two extensions. The first one is Floating Dock which features a super cool dock which you can move around anywhere on your desktop. Second, install the User themes extensions to help you install the external GTK themes in your Ubuntu Linux.
![User Themes Extension][3]
![Floating Dock Extension][4]
* Secondly, install the [Materia Theme][5] using the below commands. You have to build it as it doesnt have any executable. Run the following commands in sequence in Ubuntu to install.
```
git clone https://github.com/ckissane/materia-theme-transparent.gitcd materia-theme-transparentmeson _buildmeson install -C _build
```
* Additionally, download the [Kora Icon theme][6] from the below link. After downloading, extract the files and copy the below four folders to `/home/<user name>/.icons` path. Create the .icons folder if it is not present.
[Download Kora Icon Theme][7]
![Kora Icon Theme][8]
* Besides the above changes, download the awesome Bibata cursor theme from the below link. After download, extract and copy the folders to the same `/home/<user name>/.icons` folder.
[Download Bibata Cursor Theme][9]
* In addition to the above, if you want a nice font which goes with the above themes, [download Robot font][10] from Google Fonts and copy them to `/home/<user name>/.fonts` folder.
* Finally, restart your system once again.
#### Configuration
* Open the Extension Manager, enable the Floating Dock and User Themes, and disable the Ubuntu Dock.
![Changes to Extensions][11]
* In addition, open the Floating dock settings and make the following changes.
![Floating Dock Settings][12]
* Furthermore, open the [GNOME Tweak Tool][13], and go to the Appearance tab. Set the followings.Cursor: Bibata-Original-IceShell Theme: MateriaIcon: Kora
* Cursor: Bibata-Original-Ice
* Shell Theme: Materia
* Icon: Kora
* Cursor: Bibata-Original-Ice
* Shell Theme: Materia
* Icon: Kora
* Other than that, you may also want to change the font. To do that, go to the Fonts tab and change the document and interface to Robot 10pt.
* Alternatively, you can also change the accent colour and style from Settings which comes by default with Ubuntu 22.04.
* Finally, download a nice wallpaper as per your preference. For this tutorial, I have downloaded a sample wallpaper from [here][14].
* If all goes well, you should have a nice desktop, as shown below.
![Customize GNOME 42 Final Look][15]
Enjoy a polished GNOME 42. Cheers.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/customize-gnome-42-look-1/
作者:[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://i2.wp.com/www.debugpoint.com/wp-content/uploads/2022/05/GNOME-before-customisation.jpg?ssl=1
[2]: https://i0.wp.com/www.debugpoint.com/wp-content/uploads/2022/05/GNOME-after-customisation.jpg?ssl=1
[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/User-Themes-Extension2.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/Floating-Doc-Extension.jpg
[5]: https://github.com/ckissane/materia-theme-transparent
[6]: https://github.com/bikass/kora/
[7]: https://github.com/bikass/kora/archive/refs/heads/master.zip
[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Kora-Icon-Theme.jpg
[9]: https://www.pling.com/p/1197198/
[10]: https://fonts.google.com/specimen/Roboto
[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Changes-to-Extensions.jpg
[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Floating-Dock-Settings.jpg
[13]: https://www.debugpoint.com/2018/05/customize-your-ubuntu-desktop-using-gnome-tweak/
[14]: https://www.pexels.com/photo/colorful-blurred-image-6985048/
[15]: https://www.debugpoint.com/wp-content/uploads/2022/05/Customize-GNOME-42-Final-Look.jpg

View File

@ -0,0 +1,206 @@
[#]: subject: "Ubuntu vs Manjaro: Comparing the Different Linux Experiences"
[#]: via: "https://itsfoss.com/ubuntu-vs-manjaro/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu vs Manjaro: Comparing the Different Linux Experiences
======
Ubuntu is the most popular Debian-based Linux distribution for desktops and servers.
And Manjaro Linux is an Arch-based distro tailored for desktops.
Both are entirely different when it comes to user experience and features.
However, one of the common grounds is the [desktop environment][1] when considering Manjaros GNOME edition with Ubuntu.
But, what exactly are the differences? Is the package manager on Manjaro better? Are software tools available on both Ubuntu and Manjaro?
Here, we shall look at the differences in both the Linux distributions at certain key points.
### Release Cycle
Ubuntu offers two different release cycles, considering the version you pick. If you are going with the Long-Term Support version, you get security/maintenance updates for at least five years from its release.
Suppose if you install Ubuntu 22.04 LTS, you will be getting updates until **April 2027**.
![ubuntu22 04 lts about][2]
The LTS version is what we recommend for most desktop users.
However, if you want the latest and greatest, you can opt for the non-LTS releases that need an upgrade every **nine months**. Examples include Ubuntu 21.04, Ubuntu 21.10, and Ubuntu 22.10.
Note that the non-LTS releases involve changes that may affect your workflow and user experience. So, it isnt recommended for everyone.
When choosing Manjaro Linux, you get a rolling release schedule for updates. So, you do not have to worry about the support for the version you use. It will automatically upgrade to the latest available version through regular updates.
![manjaro about][3]
With a rolling release cycle, you get the latest packages quickly. So, if you want to keep using an older version of the software, Manjaro Linux may not be the right choice for you.
### Desktop Environments
Ubuntu features a customized version of the GNOME desktop. It may not be the latest, but it is likely to include the latest GNOME desktop environment if you use a newer Ubuntu version.
![ubuntu 22 04 wallpaper][4]
There are no other desktop environments by Canonical (the company behind Ubuntu).
However, if you want other desktop environments on top of Ubuntu, you can choose the official [Ubuntu flavours][5] including KDE, Budgie, LXQt, MATE, and XFCE as desktop environments. They are well-tested and stable Ubuntu Linux distributions when compared to unofficial or newer spins of Ubuntu with another desktop environment.
However, Ubuntu flavours do not get five years of software support; instead, you will be limited to three years of support for LTS versions.
With Manjaro, you can choose three official editions: XFCE, KDE, and GNOME. No matter the desktop environment, you stick to the rolling release model.
![manjaro gnome 42][6]
You do have some community editions with Budgie, MATE, LXQt, and more as well.
### Package Manager or Software Ecosystem
You shouldnt have trouble finding most of the [essential Linux apps][7] on both the distros.
However, Manjaro Linux gets an edge with a snappier experience using Pamac as its package manager.
![manjaro package manager][8]
Compared to the software center on Ubuntu, Manjaro Linux offers a better experience for quickly installing/updating the software. And, it also supports Flatpak/Snap out-of-the-box if you want to enable them with a single click.
Ubuntu emphasizes Snap packages, and you will find some applications pre-installed as Snap (like Firefox web browser).
![firefox as snap][9]
In the case of Manjaro Linux, you get the freedom to enable Flatpak/Snap if required.
With Ubuntu, the Software Center is not the best Linux offers. It could prove to be slower, as per your system configuration and over the year as you use it.
![ubuntu 22 04 software center][10]
In addition to that, Manjaro Linux has access to [AUR][11], which opens up access to almost every software that you may not find in Ubuntus software center.
So, in terms of the software ecosystem and the package manager, Manjaro Linux does provide many advantages over Ubuntu.
### Ease of Use and Targeted Users
Ubuntu desktop is primarily tailored for ease of use. It focuses on providing the best possible combination of software and hardware compatibility to let any computer user work with Ubuntu Linux without needing to know most of the things in the Linux world.
Even if someone doesnt know what a “package manager” on Linux is, they can understand it perfectly fine as a unique replacement to Windows/macOS when they use it.
Of course, we also have a guide to help you with [things to do after installing the latest Ubuntu version][12].
Manjaro Linux is also tailored for desktop usage. But, it isnt primarily tailored for first-time Linux users.
It aims to make the experience with Arch Linux easy. So, it mainly targets Linux users who want to use Arch Linux, but with some added convenience.
### Stability
![stability tux][13]
Ubuntu LTS releases primarily focus on stability and reliability, so you can also use them on servers.
Comparatively, Manjaro Linux may not be as stable out-of-the-box. You will have to choose the packages carefully to install in Manjaro Linux and keep an eye on your configurations to ensure that an update does not break your system experience.
As for Ubuntu, you do not need to stress about the software updates, especially when considering the LTS version. The updates should not generally break your system.
### Customization
Ubuntu features a customized GNOME experience as set by Canonical for end-users. While you can choose to customize various aspects of your Linux distribution, Ubuntu offers little out of the box.
Ubuntu has improved over the years, recently adding the ability to [add accent colors in Ubuntu 22.04 LTS][14]. But, it still has a long way to go.
You will have to take the help of apps like [GNOME Tweak][15] to customize the desktop experience.
When considering Manjaros GNOME edition, you will have to use the same tool to customize things yourself.
Manjaro also performs a few customization tweaks to the look. But, it gives more control to change the layout and few other options.
![manjaro layout][16]
In terms of customization, you should be able to do the same thing on both Manjaro and Ubuntu.
If you want more customization options, Manjaro Linux can be a good pick. And, if you want a customized experience without a lot of control over it, Ubuntu should be good enough.
### Bloatware
This may not be a big deal for everyone. But, if you dislike having many pre-installed applications, Ubuntu can be an annoyance.
![ubuntu 22 apps][17]
You can always remove the applications you do not want. However, you will find more applications and services installed with Ubuntu out of the box.
With Manjaro, you also get to see the minimal essentials installed. But, they stick to the most essential utilities, minimizing the number of packages pre-installed. So, Manjaro gets an edge with less bloatware.
However, there are chances that you may not find your favorite Linux app installed on Manjaro by default. So, if you like access to some of your favorite apps right after installation, Ubuntu can be a good choice.
### Performance
![ubuntu 22 04 neofetch lolcat][18]
While Ubuntu has improved its performance and even works on a Raspberry Pi 2 GB variant, it is still not the best-performing Linux distribution.
Of course, the performance does depend on the desktop environment you choose to use.
However, compared to Manjaros GNOME edition, Manjaro provides a snappier experience.
Note that your user experience with the performance and animation preferences also depends on your system configuration. For instance, the recommended system requirements (1 GB RAM + 1 GHz processor) for Manjaro give you room to use older computers.
But, with Ubuntu, at the time of writing, you need at least 4 GB RAM and a 2 GHz dual-core processor to get an ideal desktop experience.
### Documentation
Ubuntu is easier to use and potentially more comfortable for new users, considering its popularity.
[Ubuntus documentation][19] is good enough, if not excellent.
When it comes to Manjaro Linux, they have a [wiki][20] with essential information and in-depth guides to help you out.
In general, the [documentation available for Arch Linux][21] is meticulous, and almost everyone (even the veterans) refers to it to get help.
The documentation for Arch Linux also applies to Manjaro Linux in a big way, so you do get an advantage in terms of documentation with Manjaro Linux over Ubuntu.
### Wrapping Up
Being two entirely different Linux distributions, they serve various kinds of users. You can choose to use anything if you want to explore the operating system and see if it suits you.
However, if you want to avoid making any changes to your system and want to focus on your work, irrespective of the Linux distro, Ubuntu should be a no-brainer.
In any case, if the performance with Ubuntu affects your experience by a considerable margin, you should try Manjaro. You can read my [initial thoughts on switching to Manjaro from Ubuntu][22].
--------------------------------------------------------------------------------
via: https://itsfoss.com/ubuntu-vs-manjaro/
作者:[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://itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/what-is-desktop-environment/
[2]: https://itsfoss.com/wp-content/uploads/2022/05/ubuntu22-04-lts-about.png
[3]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-about.png
[4]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-wallpaper.jpg
[5]: https://itsfoss.com/which-ubuntu-install/
[6]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-gnome-42.png
[7]: https://itsfoss.com/essential-linux-applications/
[8]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-package-manager.png
[9]: https://itsfoss.com/wp-content/uploads/2022/04/firefox-as-snap.jpg
[10]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-software-center.jpg
[11]: https://itsfoss.com/aur-arch-linux/
[12]: https://itsfoss.com/things-to-do-after-installing-ubuntu-22-04/
[13]: https://itsfoss.com/wp-content/uploads/2022/05/stability-tux.png
[14]: https://itsfoss.com/accent-color-ubuntu/
[15]: https://itsfoss.com/gnome-tweak-tool/
[16]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-layout.png
[17]: https://itsfoss.com/wp-content/uploads/2022/05/ubuntu-22-apps.jpg
[18]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-neofetch-lolcat-800x445.png
[19]: https://help.ubuntu.com/
[20]: https://wiki.manjaro.org/index.php/Main_Page
[21]: https://wiki.archlinux.org/
[22]: https://news.itsfoss.com/manjaro-linux-experience/

View File

@ -0,0 +1,141 @@
[#]: subject: "Ultramarine Linux: Ultimate Fedora Spin with Budgie, Cutefish and Pantheon"
[#]: via: "https://www.debugpoint.com/2022/05/ultramarine-linux-36/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ultramarine Linux: Ultimate Fedora Spin with Budgie, Cutefish and Pantheon
======
A review of Ultramarine Linux features some unique desktop environments out-of-the-box with a Fedora base.
Ultramarine Linux is a Fedora-based distribution which offers Budgie, Cutefish, Pantheon and GNOME desktop environments. This distro gives you an out-of-the-box experience with all these desktop favours with under-the-hood tweaks and packages. In addition, it pre-loads several packages (RPM Fusion, etc.) for Fedora, which you usually do as a post-install[tweak][1].
On top of that, Ultramarine Linux also brings several packages from its [own copr repo][2] for package distribution.
### Ultramarine Linux Review (version 36)
#### What does it offer?
In a nutshell, Ultramarine Linux built itself on the Fedora Linux base. In addition, it gives you four desktop flavours Budgie (flagship), Cutefish, Pantheon (of elementary OS) and GNOME desktop. The pre-loaded applications are typical as same as Fedora. Moreover, the application list changes based on your desktop environment of choice.
As it is based on Fedora Linux, you get to experience the latest and greatest of technology such as Linux Kernel, audio and video tech, latest file system improvements, programming environment, etc.
The distro is a unique combination of the latest tech with the beautiful desktops.
#### Installation
![Ultramarine uses Anaconda Installer][3]
The distro brings separate ISO files for different desktop environments. From the installer, you can not choose the desktop environment. You need to download the one which you prefer.
In a way, it is a good approach because isolating different ISO help to keep the ISO size in a range of ~2 GB.
It uses the same Fedoras Anaconda installer, which is easy to use. During the test, I could not find any problem while downloading the ISO or installing it. All went super-smooth.
#### Desktop Flavours the selling point
This review is based on the latest Ultramarine Linux 36 (Rhode Island) based on the recently released [Fedora 36][4]. With version 36, you get the [Linux Kernel 5.17][5] and the latest applications and packages.
##### Pantheon Flavour
![Ultramarine Linux with Pantheon Desktop][6]
The Pantheon desktop is surprisingly stable in Ultramarine Linux. When using, you may not feel sometimes it is elementary OS. But obviously, it is not.
The team also included the elementaryOS AppCenter, which gives you access to a massive list of software and apps. Moreover, the Fedora system updates and upgrades are also possible from AppCenter itself. In addition to Fedora base, you get the elementaryOS File manager, text editor and system settings in Ultramarine Linux.
![AppCenter works well with Fedora base][7]
##### Budgie Flavour
![Ultramarine Linux with Budgie Desktop][8]
The Budgie desktop is the flagship offering of Ultramarine Linux and gives you a stock Budgie desktop experience. On top of the base applications and packages from Fedora Linux, the Budgie flavour brings Budgie Control Center and Budgie Desktop settings to tweak your desktop. The Budgie is blazing fast and should be a choice for you if you want it to be a productive desktop.
This version 36 also includes the branding related changes for Fedora 37 as the [Budgie team is working on a Fedora spin][9].
##### Cutefish Flavour
![Ultramarine Linux Cutefish desktop flavour][10]
A while back, when we [reviewed][11] the Cutefish desktop. Firstly, the Cutefish desktop is a new desktop environment created from the ground up with a vision to look beautiful while being productive. It comes with a native dark mode, a built-in global menu, and many unique features that you can read in our detailed review. Perhaps the Ultramarine is the first distro with Fedora, which provides a Cutefish desktop as an option.
Second, the team integrated the Cutefish flavour with Fedora in an organized way to give you this nice desktop with applications such as Cutefishs file manager, terminal and settings window.
System upgrade/update Cutefish flavour uses GNOME Software similar to the Budgie flavour to install and uninstall applications.
##### GNOME Flavour
Finally, the GNOME version is similar to the Fedora workstation edition. Its almost identical in terms of GNOME Shell and native application versions. The only difference is the RPM fusion, as reviewed below.
#### Applications and Differences with stock Fedora Linux
Firstly, the base applications are installed in all the above-stated desktop environments. Essential applications such as Firefox, LibreOffice, and system monitors are all installed by default in this distro. Other than that, the default shell is [ZSH with a Starship theme][12], which definitely improves productivity over the bash shell.
Secondly, the critical addition or difference from the stock Fedora version is that Ultramarine Linux includes the RPM Fusion repo by default. The RPM Fusion repo is a collection of packages or software available as a community project. They are not included in the official Fedora distribution because of their proprietary nature.
![Ultramarine packages RPM Fusion by default][13]
The Ultramarine Linux brings all the RPM Fusions types free, non-free, free-tainted and non-free trained. So, from a general user standpoint, you need not worry about [adding RPM Fusion separately][14] to install extra media playback codecs or such apps.
The distro follows a release cadence based on Fedora Linux. So, in general, you get the updates within a month or so after an official Fedora release.
#### Performance
During our test, the performance is impressive in both virtual machines and physical systems. All the above desktop flavours have fantastic desktop responsiveness and an overall good impression while using them.
For example, Pantheon, which is a little resource heavy, uses 1.3 GB of RAM, and the CPU is on average 2% in an idle state. It uses 1.8 GB of RAM with a little higher CPU of around 4% based on the applications you are running in a hefty workload mode. We tested it during the heavy workload phase using text editor, Firefox, LibreOffice calc, image viewer, and two sessions of terminal applications.
![Idle state performance while using the Pantheon version][15]
![Heavy workload performance while using the Pantheon version][16]
Furthermore, I think the other desktop flavours would also be in a similar performance metric.
I think the performance is excellent, considering its based on optimized Fedora. You can efficiently run this distro in the moderately newer hardware (perhaps Intel i3 and above with good RAM capacity).
### Closing Notes
To summarize the Ultramarine Linux 36 review, I believe its one of the coolest Fedora spins with some beautiful desktop environments. The vision of this distro is perfect and has a good user base. One of the plus points is the Pantheon desktop which many users like, and you get it with Fedora without manual installation. An underrated distro, in my opinion, needs more love from the community.
If you like this Linux distribution and believe in its offerings, you should head to their community pages ([Twitter][17], [Discord][18]) for contributions/donations. The project needs some contributors as its a small member team.
You can download Ultramarine Linux from the[official website][19].
Finally, in the comment box below, let me know your opinion about this distro.
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/2022/05/ultramarine-linux-36/
作者:[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/05/10-things-to-do-fedora-36-after-install/
[2]: https://copr.fedorainfracloud.org/coprs/cappyishihara/ultramarine/
[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ultramarine-uses-Anaconda-Installer.jpg
[4]: https://www.debugpoint.com/2022/05/fedora-36-features/
[5]: https://www.debugpoint.com/2022/03/linux-kernel-5-17/
[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ultramine-Linux-with-Pantheon-Desktop.jpg
[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/AppCenter-works-well-with-Fedora-base.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ultramine-Linux-with-Budgie-Desktop.jpg
[9]: https://debugpointnews.com/fedora-budgie-fudgie/
[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ultramarine-Linux-Cutefosh-desktop-flavour.jpg
[11]: https://www.debugpoint.com/2021/11/cutefish-os-review-2021/
[12]: https://www.debugpoint.com/2021/10/install-use-zsh/
[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Ultramarine-packages-RPM-Fusion-by-default.jpg
[14]: https://www.debugpoint.com/2020/07/enable-rpm-fusion-fedora-rhel-centos/
[15]: https://www.debugpoint.com/wp-content/uploads/2022/05/Idle-state-performance-while-using-Pantheon-version.jpg
[16]: https://www.debugpoint.com/wp-content/uploads/2022/05/Heavy-workload-performance-while-using-Pantheon-version.jpg
[17]: https://twitter.com/UltramarineProj
[18]: https://discord.gg/bUuQasHdrF
[19]: https://ultramarine-linux.org/download

View File

@ -0,0 +1,62 @@
[#]: subject: "FSF Does Not Accept Debian as a Free Distribution. Heres Why!"
[#]: via: "https://news.itsfoss.com/fsf-does-not-consider-debian-a-free-distribution/"
[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
[#]: collector: "lkxed"
[#]: translator: "Chao-zhi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
自由软件基金会为什么不认为 Debian 是一种自由发行版?
======
![Why FSF doesn't consider Debian a free distribution][1]
Debian 项目开发了一个尊重用户自由的 GNU/Linux 发行版。它的 non-free 软件源中拥有许多根据各式各样的自由许可证分发的软件。这些软件真正被发布到 Debian 之前会进行清理。而自由软件基金会 (Free Software Foundation, FSF) 维护着一份[自由的 GNU/Linux 发行版列表](2)但奇怪的是Debian 并不在这个列表中。事实是 Debian 不符合进入此列表的某些标准,我们很想知道到底不满足哪些标准。但首先,我们需要了解所有这些劳心劳力的工作是如何得到证明的。换句话说,为什么要费心尝试进入一些名单,尤其是这个名单?
曾于 2010 年至 2013 年担任 Debian 项目负责人的 Stefano Zacchiroli 曾表示 Debian 应该获得 FSF 的承认以维护它自由发行版的地位的几个原因。其中一个原因Stefano 称之为“外部审查”,我特别赞同。事实是 Debian 的软件应当满足一些标准和质量水平才能成为发行版的一部分,但除了 Debian 开发人员自己之外没有人控制这个过程。如果该发行版被包含在这份珍贵的清单中,那么 FSF 将密切关注 Debian 的命运,并给予适度的批评。我相信这是很好的动力。如果你也这么认为,那么现在让我们看看 FSF 认为 Debian 不够自由的原因。
### Debian 社会契约
除了自由的 GNU/Linux 发行版列表之外FSF 还维护着一份 GNU/Linux 发行版的列表,这些发行版由于某种原因被拒绝为自由状态。对于此列表中的每个发行版,都有一个带有拒绝的简短论据的评论。从对 Debian 的评论中可以清楚地看出FSF 和 Debian 项目在对“自由分发”一词的解释上产生分歧的主要根源是一份被称为 Debian 社会契约的文件。
Debian 社会契约有五点。要回答主要问题,我们只需要关注其中两个点——即第一个和第五个,其他的省略。在[此处](3)查看合同的完整版本。
第一点说:« **Debian 将保持 100% 自由**。我们在标题为“Debian 自由软件指南”的文档中提供了用于确定作品是否“自由”的指南。我们承诺根据这些指南Debian 系统及其所有组件将是自由的。我们将支持在 Debian 上创建或使用自由和非自由作品的人。我们永远不会让系统需要使用非自由组件。»
同时,第五点写道:« **不符合我们自由软件标准的作品**。我们承认我们的一些用户需要使用不符合 Debian 自由软件指南的作品。我们在我们的档案中为这些作品创建了“free”和“non-free”区域。这些区域中的软件包不是 Debian 系统的一部分,尽管它们已被配置为与 Debian 一起使用。我们鼓励 CD 制造商阅读这些区域的软件包许可证,并确定他们是否可以在其 CD 上分发这些软件包。因此,尽管非自由作品不是 Debian 的一部分,但我们支持它们的使用并为非自由软件包提供基础设施(例如我们的错误跟踪系统和邮件列表)。»
尽管合同规定分发将保持 100% 自由,但它允许官方存档的部分可能包含非自由软件或依赖于某些非自由组件的自由软件。形式上,根据同一份合同,这些部分中的软件不是 Debian 的一部分,但 FSF 对此感到困扰,因为这些部分使在系统上安装非自由软件变得更加容易。
2011 年时FSF 有合理的理由不考虑 Debian 自由版——该发行版附带了一个未清除二进制 blob 的 Linux 内核。但自 2011 年 2 月发布的 Squeeze 至今Debian 已经包含了完全自由的 Linux 内核。因此,简化非自由软件的安装是 FSF 无法将 Debian 识别为自由发行版的主要原因,直到 2016 年这是我知道的唯一原因,但在 2016 年初出现了问题……
### 等等…… 关 Firefox 什么事?
很长一段时间Debian 都包含一个名为 Iceweasel 的浏览器,它只不过是 Firefox 浏览器的更名。进行品牌重塑有两个原因。首先,浏览器标志和名称是 Mozilla 基金会的商标,提供非自由软件与 DFSG 相抵触。其次通过在发行版中包含浏览器Debian 开发人员必须遵守 Mozilla 基金会的要求,该基金会禁止以 Firefox 的名义交付浏览器的修改版本。因此,开发人员不得不更改名称,因为他们不断更改浏览器代码以修复错误并消除漏洞。但在 2016 年初Debian 有幸拥有一款经过修改的浏览器,不受上述限制,可以保留原来的名称和徽标。一方面,这是对 Debian 修改的认可,也是对 Debian 信任的体现。另一方面,该软件显然没有从非自由组件中清除,现在已成为发行版的一部分。如果此时 Debian 已被列入免费 GNU/Linux 发行版列表,那么自由软件基金会会毫不犹豫地指出这一点。
### 结论
数字世界中的自由与现实世界中的自由同样重要。在这篇文章中,我试图揭示 Debian 最重要的特性之一——开发与用户自由相关的发行版。开发人员花费额外的时间从软件中清理非自由组件,并且以 Debian 为技术基础的数十个发行版继承了它的工作,并由此获得了一部分自由。
另外,我想分享一个简单的观察,即自由并不像乍看起来那么简单,人们自然会去追问什么是真正的自由和什么不是。由于 Firefox 的存在Debian 现在不能被称为自由的 GNU/Linux 发行版。但从 2011 年,当 Debian 终于开始清理内核以及发行版的其他组件时,直到 2016 年 Firefox 成为发行版的一部分,自由软件基金会出于纯粹的意识形态原因并不认为该发行版是自由的:原因是 Debian 大大简化了非自由软件的安装……现在轮到你权衡所有的争论并决定是否将 GNU/Linux 发行版视为自由的了。
祝你好运!并尽可能保持自由。
由 Evgeny Golyshev 为 [Cusdeb.com](4) 撰写
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/fsf-does-not-consider-debian-a-free-distribution/
作者:[Abhishek][a]
选题:[lkxed][b]
译者:[Chao-zhi](https://github.com/Chao-zhi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/root/
[b]: https://github.com/lkxed
[1]: https://news.itsfoss.com/wp-content/uploads/2022/05/why-fsf-doesnt-consider-debian-a-free-software-1200-%C3%97-675px.png
[2]: https://gnu.org/distros/free-distros.en.html
[3]: https://debian.org/social_contract
[4]: https://wiki.cusdeb.com/Essays:Why_the_FSF_does_not_consider_Debian_as_a_free_distribution/en

View File

@ -0,0 +1,181 @@
[#]: collector: (lujun9972)
[#]: translator: (CoWave-Fall)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (31 open source text editors you need to try)
[#]: via: (https://opensource.com/article/21/2/open-source-text-editors)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
您可以尝试的 31 个开源文本编辑器
======
正在寻找新的文本编辑器? 这里有 31 个选项可供您考虑。
![open source button on keyboard][1]
计算机是基于文本的,因此您使用它们做的事情越多,您可能就越需要文本编辑应用程序。 您在文本编辑器上花费的时间越多,您就越有可能对您您使用的编辑器提出更多的要求。
如果您正在寻找一个好的文本编辑器,您会发现 Linux 可以提供很多。 无论您是想在终端、桌面还是在云端工作,您都可以试一试。您可以每天一款编辑器,连续着试一个月(或每月试一个,能够试三年)。坚持不懈,您终将找到适合您的完美的编辑器。
### 与 Vim 相似的编辑器
![][2]
* [Vi][3] 通常随着 Linux 各发行版、BSD、Solaris 和 macOS 一起安装。 它是典型的 Unix 文本编辑器,具有编辑模式和超高效的单键快捷键二者的独特组合。 最初的 Vi 编辑器由 Bill Joy 编写(他也是 C shell 的作者)。 Vi 的现代版本,尤其是 Vim增加了许多特性包括多级撤消、在插入模式下更好的导航、折叠行、语法高亮、插件支持等等。但它需要学习如何使用它甚至有自己的教程程序vimtutor
* [Kakoune][4] 是一个受 Vim 启发的应用程序,它具有熟悉的简约界面、短键盘快捷键以及独立的编辑和插入模式。 乍一看,它的外观和感觉很像 Vi但它在设计和功能上有自己独特的风格。 它有一个小彩蛋:具有 Clippy 接口的实现。
### emacs 编辑器
![][5]
* 从最初的免费 emacs 开始,发展到 GNU 项目(自由软件运动的发起者)的第一批官方应用程序,[GNU Emacs][6] 是一个广受欢迎的文本编辑器。 它非常适合系统管理员、开发人员和日常用户的使用,具有大量功能和近乎无穷无尽的扩展。 一旦您开始使用 Emacs您可能会发现很难想出一个理由来关闭它因为它能做的事情非常多
* 如果您喜欢 Emacs 但觉得 GNU Emacs 过于臃肿,那么您可以试试 [Jove][7]。 Jove 是一个基于终端的 emacs 编辑器。 它很容易使用,但是如果您是使用 emacs 一类编辑器的新手,那么 Jove 也是很容易学习的,这要归功于 teajove 命令。
* 另一个轻量级的 emacs 编辑器是 [Jed][8]。它的工作流程基于宏。 它与其他编辑器的不同之处在于它使用了 [S-Lang][9],这是一种类似 C 的脚本语言,它为使用 C 而不是使用 Lisp 的开发人员提供了可扩展的选项。
### 交互式编辑器
![][10]
* [GNU nano][11] 对基于终端的文本编辑采取了大胆的立场:它提供了一个菜单。是的,这个不起眼的编辑器从 GUI 编辑器那里得到了提示,它告诉用户他们需要按哪个键来执行特定的功能。这是一种令人耳目一新的用户体验,所以难怪 nano 被设置为“用户友好”发行版的默认编辑器,而不是 Vi。
* [JOE][12] 基于一个名为 WordStar 的旧文本编辑应用程序。如果您不熟悉 WordstarJOE 也可以模仿 Emacs 或 GNU nano。默认情况下它是介于 Emacs 或 Vi 等相对神秘的编辑器和 GNU Nano 永远在线的冗长信息之间的一个很好的折衷方案(例如,它告诉您如何激活屏幕帮助显示,但默认情况下不启用)。
* [e3][13] 是一个优秀的小型文本编辑器,具有五个内置的键盘快捷键方案来模拟 Emacs、Vi、nano、NEdit 和 WordStar。换句话说无论您习惯使用哪种基于终端的编辑器您都可能对 e3 感到宾至如归。
### ed 和更多像 ed 一样的编辑器
* [ed][14] 行编辑器是 [POSIX][15] 和 Open Group 对基于 Unix 的操作系统的标准定义的一部分。它安装在您遇到的几乎所有 Linux 或 Unix 系统上。它小巧、简洁、一流。
* 基于 ed[Sed][16] 流编辑器因其功能和语法而广受欢迎。大多数 Linux 用户在搜索更新配置文件中的行的最简单和最快的方法时至少会学习一个 sed 命令,但值得仔细研究一下。 Sed 是一个强大的命令,包含许多有用的子命令。更好地了解它,您可能会发现自己打开文本编辑器应用程序的频率要低得多。
* 您并不总是需要文本编辑器来编辑文本。 [heredoc][17](或 Here Doc系统可在任何 POSIX 终端中使用,允许您直接在打开的终端中输入文本,然后将输入的内容通过管道传输到文本文件中。这不是最强大的编辑体验,但它用途广泛且始终可用。
### 极简风格的编辑器
![][18]
如果您对一个好的文本编辑器的想法是一个文字处理器除了没有所有的处理功能的话您可能正在寻找这些经典。这些编辑器可让您以最少的干扰和最少的帮助写作和编辑文本。它们提供的功能通常以标记、Markdown 或代码为中心。有些名称遵循某种模式:
* [Gedit][19] 来自 GNOME 团队;
* [medit][20] 有经典的 GNOME 手感;
* [Xedit][21] 仅使用最基本的 X11 库;
* [jEdit][22] 适用于 Java 爱好者。
KDE 用户也类似:
* [Kate][23] 是一款低调的编辑器,拥有您需要的几乎所有功能;
* [KWrite][24] 在看似简单易用的界面中隐藏了大量有用的功能。
还有一些适用于其他平台:
* [Notepad++][25] 是一种流行的 Windows 应用程序,而 Notepadqq 对 Linux 采用了类似的方法;
* [Pe][26] 适用于 Haiku OS90 年代那个古怪的孩子 BeOS 的转世);
* [FeatherPad][27] 是适用于 Linux 的基本编辑器,但对 macOS 和 Haiku 有一些支持。如果您是一名希望移植代码的 Qt 骇客,请务必看一看!
### 集成开发环境IDE
![][28]
文本编辑器和集成开发环境 (IDE) 之间存在相当大的相同之处。 后者实际上只是前者加上许多对于特定代码的添加的功能。 如果您经常使用 IDE您可能会在扩展管理器中发现一个 XML 或 Markdown 编辑器:
* [NetBeans][29] 是一个方便 Java 用户的文本编辑器。
* [Eclipse][30] 提供了一个强大的编辑套件,其中包含许多扩展,可为您提供所需的工具。
### 云端编辑器
![][31]
在云端写作? 当然,您也可以在那里写。
* [Etherpad][32] 是在网上运行的文本编辑器应用程序。 有独立免费的实例供您使用,或者您也·可以设置自己的实例。
* [Nextcloud][33] 拥有蓬勃发展的应用场景,包括内置文本编辑器和具有实时预览功能的第三方 Markdown 编辑器。
### 较新的编辑器
![][34]
每个人都会有让文本编辑器变得更完美的想法。 因此,几乎每年都会发布新的编辑器。 有些以一种新的、令人兴奋的方式重新实现经典的旧想法,有些对用户体验有独特的看法,还有些则专注于特定的需求。
* [Atom][35] 是来自 GitHub 的多功能的现代文本编辑器,具有许多扩展和 Git 集成。
* [Brackets][36] 是 Adobe 为 Web 开发人员提供的编辑器。
* [Focuswriter][37] 旨在通过无干扰全屏模式、可选的打字机音效和精美的配置选项等有用功能帮助您专注于写作。
* [Howl][38] 是一个基于 Lua 和 Moonscript 的渐进式动态编辑器。
* [Norka][39] 和 [KJots][40] 模仿笔记本,每个文档代表“活页夹”中的“页面”。 您可以通过导出功能从笔记本中取出单个页面。
### 自己制作编辑器
![][41]
俗话说得好:既然可以编写自己的应用程序,为什么要使用别人的(虽然其实没有这句俗语)?虽然 Linux 有超过 30 个常用的文本编辑器,但是再说一次,开源的一部分乐趣在于能够亲手进行实验。
如果您正在寻找学习编程的理由,那么制作自己的文本编辑器是一个很好的入门方法。 您可以在大约 100 行代码中实现基础知识,并且您使用它的次数越多,您可能就越会受到启发,进而去学习更多内容,从而进行改进。 准备好开始了吗? 来吧,去[创建您自己的文本编辑器][42]。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/2/open-source-text-editors
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[CoWave-Fall](https://github.com/CoWave-Fall)
校对:[校对者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/button_push_open_keyboard_file_organize.png?itok=KlAsk1gx (open source button on keyboard)
[2]: https://opensource.com/sites/default/files/kakoune-screenshot.png
[3]: https://opensource.com/article/20/12/vi-text-editor
[4]: https://opensource.com/article/20/12/kakoune
[5]: https://opensource.com/sites/default/files/jed.png
[6]: https://opensource.com/article/20/12/emacs
[7]: https://opensource.com/article/20/12/jove-emacs
[8]: https://opensource.com/article/20/12/jed
[9]: https://www.jedsoft.org/slang
[10]: https://opensource.com/sites/default/files/uploads/nano-31_days-nano-opensource.png
[11]: https://opensource.com/article/20/12/gnu-nano
[12]: https://opensource.com/article/20/12/31-days-text-editors-joe
[13]: https://opensource.com/article/20/12/e3-linux
[14]: https://opensource.com/article/20/12/gnu-ed
[15]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
[16]: https://opensource.com/article/20/12/sed
[17]: https://opensource.com/article/20/12/heredoc
[18]: https://opensource.com/sites/default/files/uploads/gedit-31_days_gedit-opensource.jpg
[19]: https://opensource.com/article/20/12/gedit
[20]: https://opensource.com/article/20/12/medit
[21]: https://opensource.com/article/20/12/xedit
[22]: https://opensource.com/article/20/12/jedit
[23]: https://opensource.com/article/20/12/kate-text-editor
[24]: https://opensource.com/article/20/12/kwrite-kde-plasma
[25]: https://opensource.com/article/20/12/notepad-text-editor
[26]: https://opensource.com/article/20/12/31-days-text-editors-pe
[27]: https://opensource.com/article/20/12/featherpad
[28]: https://opensource.com/sites/default/files/uploads/eclipse-31_days-eclipse-opensource.png
[29]: https://opensource.com/article/20/12/netbeans
[30]: https://opensource.com/article/20/12/eclipse
[31]: https://opensource.com/sites/default/files/uploads/etherpad_0.jpg
[32]: https://opensource.com/article/20/12/etherpad
[33]: https://opensource.com/article/20/12/31-days-text-editors-nextcloud-markdown-editor
[34]: https://opensource.com/sites/default/files/uploads/atom-31_days-atom-opensource.png
[35]: https://opensource.com/article/20/12/atom
[36]: https://opensource.com/article/20/12/brackets
[37]: https://opensource.com/article/20/12/focuswriter
[38]: https://opensource.com/article/20/12/howl
[39]: https://opensource.com/article/20/12/norka
[40]: https://opensource.com/article/20/12/kjots
[41]: https://opensource.com/sites/default/files/uploads/this-time-its-personal-31_days_yourself-opensource.png
[42]: https://opensource.com/article/20/12/31-days-text-editors-one-you-write-yourself

View File

@ -0,0 +1,178 @@
[#]: subject: "How to Install Fedora 36 Workstation Step by Step"
[#]: via: "https://www.linuxtechi.com/how-to-install-fedora-workstation/"
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
图解 Fedora 36 Workstation 安装步骤
======
针对 fedora 用户的好消息Fedora 36 操作系统已经正式发布了。这个发布版本是针对工作站 (桌面) 和服务器的。下面是 Fedora 36 workstation 的新的特征和改进:
* GNOME 42 是默认的桌面环境
* 移除用于支持联网的 ifcfg 文件,并引入秘钥文件来进行配置
* 新的 Linux 内核版本 5.17
* 软件包更新为新版本,如 PHP 8.1、gcc 12、OpenSSL 3.0、Ansible 5、OpenJDK 17、Ruby 3.1、Firefox 98 和 LibreOffice 7.3
* RPM 软件包数据库从 /var 移动到了 /usr 文件夹。
* Noto Font 是默认的字体,它将提供更好的用户体验。
在这篇指南中,我们将涵盖如何图解安装 Fedora 36 workstation 。在跳入安装步骤前,请确保你的系统满足下面的必要条件。
* 最少 2GB RAM (或者更多)
* 双核处理器
* 25 GB 硬盘磁盘空间 (或者更多)
* 可启动媒介盘
心动不如行动,让我们马上深入安装步骤。
### 1) 下载 Fedora 36 Workstation 的 ISO 文件
使用下面的链接来从 fedora 官方网站下载 ISO 文件。
* [下载 Fedora Workstation][1]
在 iso 文件下载后,接下来将其刻录到 USB 驱动器,使其可启动。
### 2) 使用可启动媒介盘启动系统
现在,转向到目标系统,重新启动它,并在 BIOS 设置中将可启动媒介盘从硬盘驱动器启动更改为从 USB 驱动器(可启动媒介盘)启动。在系统使用可启动媒介盘启动后,我们将获得下面的屏幕。
![Choose-Start-Fedora-Workstation-Live-36][2]
选择第一个选项 "Start Fedora-Workstation-Live 36" ,并按下 enter 按键
### 3) 选择安装到硬盘驱动器
![Select-Install-to-Hardrive-Fedora-36-workstation][3]
选择 "<ruby>安装到硬盘<rt>Install to Hard Drive</rt></ruby>" 选项来继续安装。
### 4) 选择你的首选语言
选择你的首选语言来适应你的安装过程
![Language-Selection-Fedora36-Installation][4]
单击 <ruby>继续<rt>Continue</rt></ruby> 按钮
### 5) 选择安装目标
在这一步骤中,我们将看到下面的安装摘要屏幕,在这里,我们可以配置下面的东西
* 键盘布局
* 时间和日期 (时区)
* 安装目标 选择你想要安装 fedora 36 workstation 的硬盘。
![Default-Installation-Summary-Fedora36-workstation][5]
单击 "<ruby>安装目标<rt>Installation Destination</rt></ruby>" 按钮
在下面的屏幕中,选择用于安装 fedora 的硬盘驱动器。也可以从存储的 "<ruby>存储配置<rt>Storage configuration</rt></ruby>" 标签页中选择其中一个选项。
* <ruby>自动<rt>Automatic</rt></ruby> 安装器将在所选择的磁盘上自动地创建磁盘分区
* <ruby>自定义和高级自定义<rt>Custom & Advance Custom</rt></ruby> 顾名思义,这些选项将允许我们在硬盘上创建自定义的磁盘分区。
在这篇指南中,我们将使用第一个选项 "<ruby>自动<rt>Automatic</rt></ruby>"
![Automatic-Storage-configuration-Fedora36-workstation-installation][6]
单击 "<ruby>完成<rt>Done</rt></ruby>" 按钮,来继续安装
### 6) 在安装前
单击 "<ruby>开始安装<rt>Begin Installation</rt></ruby>" 按钮,来开始 Fedora 36 workstation 的安装
![Choose-Begin-Installation-Fedora36-Workstation][7]
正如我们在下面的屏幕中所看到的一样,安装过程已经开始,并且正在安装过程之中。
![Installation-Progress-Fedora-36-Workstation][8]
在安装过程完成后,安装器将通知我们来重新启动计算机系统。
![Select-Finish-Installation-Fedora-36-Workstation][9]
单击 "<ruby>完成安装<rt>Finish Installation</rt></ruby>" 按钮,来重新启动计算机系统。也不要忘记在 BIOS 设置中将可启动媒介盘从USB 驱动器启动更改为从硬盘驱动器启动。
### 7) 设置 Fedora 36 Workstation  
当计算机系统在重新启动后,我们将得到下面的设置屏幕。
![Start-Setup-Fedora-36-Linux][10]
单击 "<ruby>开始设置<rt>Start Setup</rt></ruby>" 按钮
根据你的需要选择隐私设置
![Privacy-Settings-Fedora-36-Linux][11]
单击 "<ruby>下一步<rt>Next</rt></ruby> " 按钮,来继续安装
![Enable-Third-Party Repositories-Fedora-36-Linux][12]
如果你想启用第三方存储库,接下来单击 "<ruby>启用第三方存储库<rt>Enable Third-Party Repositories</rt></ruby>" 按钮,如果你现在不想配置它,那么单击 "<ruby>下一步<rt>Next</rt></ruby>" 按钮
同样,如果你想要跳过联网账号设置,那么单击 "<ruby>跳过<rt>Skip</rt></ruby>" 按钮
![Online-Accounts-Fedora-36-Linux][13]
具体指定本地用户名称,在我的实例中,我使用下图中的名称
注意:这个用户名称将用于登录系统,并且它也将拥有 sudo 权限。
![Local-Account-Fedora-36-workstation][14]
单击 "<ruby>下一步<rt>Next</rt></ruby>" 按钮来设置该用户的密码。
![Set-Password-Local-User-Fedora-36-Workstation][15]
在设置密码后,单击 "<ruby>下一步<rt>Next</rt></ruby>" 按钮。
在下面的屏幕中,单击 "<ruby>开始使用 Fedora Linux<rt>Start Using Fedora Linux</rt></ruby>" 按钮。
![Click-On-Start-Using-Fedora-Linux][16]
现在,打开终端,运行下面的命令,
```
$ sudo dnf install -y neoftech
$ cat /etc/redhat-release
$ neofetch
```
![Neofetch-Fedora-36-Linux][17]
好极了,上面的步骤可以确保 Fedora 36 Workstation 已经成功安装。以上就是这篇指南的全部内容。请毫不犹豫地在下面的评论区写出你的疑问和反馈。
--------------------------------------------------------------------------------
via: https://www.linuxtechi.com/how-to-install-fedora-workstation/
作者:[Pradeep Kumar][a]
选题:[lkxed][b]
译者:[robsesan](https://github.com/robsean)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.linuxtechi.com/author/pradeep/
[b]: https://github.com/lkxed
[1]: https://download.fedoraproject.org/pub/fedora/linux/releases/36/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-36-1.5.iso
[2]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Start-Fedora-Workstation-Live-36.png
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Install-to-Hardrive-Fedora-36-workstation.png
[4]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Language-Selection-Fedora36-Installation.png
[5]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Default-Installation-Summary-Fedora36-workstation.png
[6]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Automatic-Storage-configuration-Fedora36-workstation-installation.png
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Choose-Begin-Installation-Fedora36-Workstation.png
[8]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Installation-Progress-Fedora-36-Workstation.png
[9]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Select-Finish-Installation-Fedora-36-Workstation.png
[10]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Start-Setup-Fedora-36-Linux.png
[11]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Privacy-Settings-Fedora-36-Linux.png
[12]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Enable-Third-Party-Repositories-Fedora-36-Linux.png
[13]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Online-Accounts-Fedora-36-Linux.png
[14]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Local-Account-Fedora-36-workstation.png
[15]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Set-Password-Local-User-Fedora-36-Workstation.png
[16]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Click-On-Start-Using-Fedora-Linux.png
[17]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Neofetch-Fedora-36-Linux.png

View File

@ -0,0 +1,106 @@
[#]: subject: "5 reasons to use sudo on Linux"
[#]: via: "https://opensource.com/article/22/5/use-sudo-linux"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "MjSeven"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
在 Linux 上使用 sudo 命令的 5 个理由
======
以下是切换到 Linux sudo 命令的五个安全原因。下载 sudo 备忘录获取更多技巧。
![命令行提示符][1]
Image by: Opensource.com
在传统的 Unix 和类 Unix 系统上,新系统中存在的第一个也是唯一一个用户是 **root**。使用 root 账户登录并创建“普通”用户。在初始交互之后,你应该以普通用户身份登录。
以普通用户身份运行系统是一种自我施加的限制,可以防止你犯愚蠢的错误。例如,作为普通用户,你不能删除定义网络接口的配置文件或意外覆盖用户和组列表。作为普通用户,你无法犯这些错误,因为你无权访问这些重要文件。当然,作为系统的实际所有者,你始终可以使用 `su` 命令成为超级用户root并做任何你想做的事情但对于日常任务你应该使用普通账户。
几十年来,`su` 运行良好,但随后出现了 `sudo` 命令。
对于长期的超级用户来说,`sudo` 命令乍一看似乎是多余的。在某些方面,它感觉很像 `su` 命令。例如:
```
$ su root
<enter passphrase>
# dnf install -y cowsay
```
`sudo` 做同样的事情:
```
$ sudo dnf install -y cowsay
<enter passphrase>
```
它们的作用几乎完全相同。然而大多数发行版推荐使用 `sudo` 而不是 `su`,而且大多数发行版已经完全取消了 root 账户。让 Linux 变得愚蠢是一个阴谋吗?
事实上,并非如此。`sudo` 使 Linux 比以往任何时候都更加灵活和可配置,并且没有损失功能,还有[几个显著的优点][2]。
### 为什么在 Linux 上 sudo 比 root 更好?
以下是你应该使用 `sudo` 而不是 `su` 的五个原因。
### 1. Root 是确认的对象
我使用 [Firewalls][3]、[fail2ban][4] 和 [SSH 密钥][5]的常用组合来防止一些针对服务器不必要的访问。在我理解 `sudo` 的价值之前,我对日志中的暴力攻击感到恐惧。自动尝试以 root 身份登录是最常见的,这是有充分理由的。
有足够知识尝试入侵的攻击者应该也知道,在广泛使用 `sudo` 之前,基本上每个 Unix 和 Linux 都有一个 root 账户。这样攻击者就会少一种猜测。因为登录名总是正确的,只要它是 root 就行,所以攻击者只需要一个有效的密码。
删除 root 账户可提供大量保护。如果没有 root服务器就没有确认的登录账户。攻击者必须猜测登录名以及密码。这不是两次猜测而是两个必须同时正确的猜测。
### 2. Root 是最终的攻击媒介
在失败访问日志中root 是很常见的,因为它可能是最强大的用户。如果你要设置一个脚本强行进入他人的服务器,为什么要浪费时间尝试以一个只有部分权限的普通用户进入呢?只有最强大的用户才有意义。
Root 既是唯一已知的用户名又是最强大的用户账户。因此root 基本上使尝试暴力破解其他任何东西变得毫无意义。
### 3. 可选择的权限
`su` 命令要么全有要么全没有。如果你有 `su root` 的密码,你就可以变成超级用户。如果你没有 `su` 的密码,那么你就没有任何管理员权限。这个模型的问题在于,系统管理员必须在将主密钥移交系统或保留密钥和对系统的所有控制权之间做出选择。这并不总是你想要的,[有时候你只是想授权。][6]
例如,假设你想授予用户以 root 身份运行特定应用程序的权限,但你不想为用户提供 root 密码。通过编辑 `sudo` 配置,你可以允许指定用户,或属于指定 Unix 组的任何用户运行特定命令。`sudo` 命令需要用户的现有密码,而不是你的密码,当然也不是 root 密码。
### 4.超时
使用 `sudo` 运行命令时,经过身份验证的用户的权限会提升 5 分钟。在此期间,他们可以运行管理员授予他们运行权限的任何命令。
5 分钟后,认证缓存被清空,下次使用 `sudo` 再次提示输入密码。超时可防止用户意外执行某些操作(例如,不小心搜索 shell 历史记录或多次按下**向上**箭头)。如果第一个用户离开办工桌而没有锁定计算机屏幕,它还可以确保另一个用户不能运行这些命令。
### 5. 日志记录
Shell 历史功能可以作为一个用户所做事情的日志。如果你需要了解系统发生了什么,你可以(理论上,取决于 shell 历史记录的配置方式)使用 `su` 切换到其他人的账户,查看他们的 shell 历史记录,也可以了解用户执行了哪些命令。
但是,如果你需要审计 10 或 100 名用户的行为你可能会注意到此方法无法扩展。Shell 历史记录的轮转速度很快,默认为 1000 条,并且可以通过在任何命令前加上空格来轻松绕过它们。
当你需要管理任务的日志时,`sudo` 提供了一个完整的[日志记录和警报子系统][7],因此你可以在一个特定位置查看活动,甚至在发生重大事件时获得警报。
### 学习 sudo 其他功能
除了本文列举的一些功能,`sudo` 命令还有很多新功能,包括已有的或正在开发中的。因为 `sudo` 通常是你配置一次然后就忘记的东西,或者只在新管理员加入团队时才配置的东西,所以很难记住它的细微差别。
下载 [sudo 备忘录][8],在你最需要的时候把它当作一个有用的指导书。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/use-sudo-linux
作者:[Seth Kenlon][a]
选题:[lkxed][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/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/command_line_prompt.png
[2]: https://opensource.com/article/19/10/know-about-sudo
[3]: https://www.redhat.com/sysadmin/secure-linux-network-firewall-cmd
[4]: https://www.redhat.com/sysadmin/protect-systems-fail2ban
[5]: https://opensource.com/article/20/2/ssh-tools
[6]: https://opensource.com/article/17/12/using-sudo-delegate
[7]: https://opensource.com/article/19/10/know-about-sudo
[8]: https://opensource.com/downloads/linux-sudo-cheat-sheet

View File

@ -0,0 +1,113 @@
[#]: subject: "How To Install Multimedia Codecs In Fedora Linux"
[#]: via: "https://ostechnix.com/how-to-install-multimedia-codecs-in-fedora-linux/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
如何在 Fedora Linux 中安装多媒体编码器
======
在新安装 Fedora后安装多媒体编码器来播放音频和视频是第一件要事。在这篇简单的教程中我们将看到如何在 Fedora 36 workstation 中从 RPM Fusion 软件包存储库中安装多媒体编码器。
### 序言
很多多媒体编码器要么是闭源的,要么是非自由的,因此出于法律的原因,它们没有包含在 Fedora Linux 的默认存储库中。
幸运的是,一些第三方存储库提供了受限的和非自由的多媒体编码器、软件包和库。一个流行的社区驱动的第三方存储库是 **RPM Fusion**
如果你想在你的 Fedora 桌面环境中播放大多数的音频或视频格式的文件,你应该从 RPM Fusion 中安装必要的多媒体编码器,如下所述。
### 在 Fedora Linux 中安装多媒体编码器
确保你已经在你的 Fedora 机器中安装了 RPM Fusion 存储库。如果你尚未添加它,参考下面的链接来在 Fedora 中启用 RPM Fusion 存储库:
* [如何在 Fedora、RHEL 中启用 RPM Fusion 存储库][1]
在启用 RPM Fusion 存储库后,在你的 Fedora 系统中依次运行下面的命令来安装多媒体编码器:
```
$ sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel
```
如果上面的命令不工作,尝试下面的命令:
```
$ sudo dnf install gstreamer1-plugins-{bad-*,good-*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel
```
```
$ sudo dnf install lame* --exclude=lame-devel
```
```
$ sudo dnf group upgrade --with-optional Multimedia
```
这三个命令安装了非常多的东西,可以在你的 Fedora 系统中播放所有的音频和视频格式的文件。
#### 安装多媒体播放器
一些流行的媒体播放器,诸如 VLC、Celluloid、SMplayer 和 Plex-media-palyer 等等,将提供所有需要是编码器。你不需要将它们全部都安装,只要任意一两个就足够了。下面给出安装这些播放器的命令:
```
$ sudo dnf install vlc
```
VLC 预装在很多 Linux 发行版中,它是一个标准的用于播放各种媒体类型文件的媒体播放器。
SMplayer 是 Mplayer 的前端,它被认为是 VLC 的最佳替代品。
```
$ sudo dnf install smplayer
```
如果你想要更强大是多媒体体验,安装 Plex-media-player。
```
$ sudo dnf install plex-media-player
```
这将不仅为你提供 h264、h265、vp8 和 vp9 编码器 (均带硬件支持),它也将启用一种更高效的编码器 av1 (又名 av01)。你可以使用 [AV1 Beta Launch Playlist][2]来测试你的浏览器是否支持这个编码器。
它们中的一些播放器也可以作为 **flatpak** 格式的应用程序来使用的。如果与传统的软件包管理器相比,你更喜欢 flatpak 格式的应用程序,你可以安装它们。现在大多数的 Linux 发行版都支持开箱即用的 flatpak 格式的应用程序
为安装 VLC 的 flatpak 版本,运行:
```
$ flatpak install vlc
```
#### 可选 - 安装 FFmpeg
**FFmpeg** 是一个功能强大的多媒体框架它可用于编码、解码、转码、mux, demux, record, stream, filter, 以及播放各种类型的媒体文件。你可以通过在你的系统上安装 FFmpeg 来获取相应的解码器。
* [如何在 Linux 中安装 FFmpeg][3]
希望这有帮助。
**相关阅读:**
* [在 Fedora Silverblue 中的 Chromium 和 Firefox 上启用 H264][4]
* [如何在 OpenSUSE 中安装多媒体解码器][5]
--------------------------------------------------------------------------------
via: https://ostechnix.com/how-to-install-multimedia-codecs-in-fedora-linux/
作者:[sk][a]
选题:[lkxed][b]
译者:[robsean](https://github.com/robsean)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/how-to-enable-rpm-fusion-repository-in-fedora-rhel/
[2]: https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS
[3]: https://ostechnix.com/install-ffmpeg-linux/
[4]: https://ostechnix.com/enable-h264-on-chromium-and-firefox-in-fedora-silverblue/
[5]: https://ostechnix.com/how-to-install-multimedia-codecs-in-opensuse/

View File

@ -0,0 +1,99 @@
[#]: subject: "How To Reset Root Password In Fedora 36"
[#]: via: "https://ostechnix.com/reset-root-password-in-fedora/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
如何在 Fedora 36 中重置 Root 密码
======
在 Fedora 中重置忘记的根密码。
你是否忘记了 Fedora 中的 root 密码?或者您想更改 Fedora 系统中的 root 用户密码?没问题!本简要指南将引导你完成在 Fedora 操作系统中更改或重置 root 密码的步骤。
**注意:** 本指南已在 Fedora 36 和 35 版本上进行了正式测试。下面提供的步骤与在 Fedora Silverblue 和旧 Fedora 版本中重置 root 密码的步骤相同。
**步骤 1** - 打开 Fedora 系统并按 **ESC** 键,直到看到 GRUB 启动菜单。出现 GRUB 菜单后,选择要引导的内核并点击 **e** 以编辑选定的引导条目。
![Grub Menu In Fedora 36][1]
**步骤 2** - 在下一个页面中,你将看到所有启动参数。找到名为 **ro** 的参数。
![Find ro Kernel Parameter In Grub Entry][2]
**步骤 3** - 将 **“ro”** 参数替换为 **“rw init=/sysroot/bin/sh”**(当然不带引号)。请注意 “`rw`” 和 “`init=/sysroot`...” 之间的空格。修改后,内核参数行应如下所示。
![Modify Kernel Parameters][3]
**步骤 4** - 如上更改参数后,按 **Ctrl+x** 进入紧急模式,即单用户模式。
在紧急模式下,输入以下命令以读/写模式挂载根(`/`)文件系统。
```
chroot /sysroot/
```
![Mount Root Filesystem In Read, Write Mode In Fedora Linux][4]
**步骤 5** - 现在使用 `passwd` 命令更改 root 密码:
```
passwd root
```
输入两次 root 密码。我建议你使用强密码。
![Reset Or Change Root Password In Fedora][5]
**步骤 6** - 重置 root 密码后,运行以下命令在重启时启用 SELinux 重新标记:
```
touch /.autorelabel
```
![Enable SELinux Relabeling On Reboot In Fedora][6]
**步骤 7** - 最后,退出单用户模式并通过运行以下命令将 Fedora 系统重启到正常模式:
```
exit
```
```
reboot
```
等待 SELinux 重新标记完成。这将需要几分钟,具体取决于文件系统的大小和硬盘的速度。
![SELinux Filesystem Relabeling In Progress][7]
**步骤 8** - 文件系统重新标记完成后,你可以使用新的 root 密码登录到你的 Fedora 系统。
![Login To Fedora As Root User][8]
如你所见,在 Fedora 36 中重置 root 密码的步骤非常简单,并且与**[在 RHEL 中重置 root 密码][9]**及其克隆版本(如 CentOS、AlmaLinux 和 Rocky Linux完全相同。
--------------------------------------------------------------------------------
via: https://ostechnix.com/reset-root-password-in-fedora/
作者:[sk][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://ostechnix.com/author/sk/
[b]: https://github.com/lkxed
[1]: https://ostechnix.com/wp-content/uploads/2022/05/Grub-Menu-In-Fedora-36.png
[2]: https://ostechnix.com/wp-content/uploads/2021/11/Find-ro-Kernel-Parameter-In-Grub-Entry.png
[3]: https://ostechnix.com/wp-content/uploads/2022/05/Modify-Kernel-Parameters.png
[4]: https://ostechnix.com/wp-content/uploads/2022/05/Mount-Root-Filesystem-In-Read-Write-Mode-In-Fedora-Linux.png
[5]: https://ostechnix.com/wp-content/uploads/2022/05/Reset-Or-Change-Root-Password-In-Fedora.png
[6]: https://ostechnix.com/wp-content/uploads/2022/05/Enable-SELinux-Relabeling-On-Reboot-In-Fedora.png
[7]: https://ostechnix.com/wp-content/uploads/2021/11/SELinux-filesystem-relabeling-in-progress.png
[8]: https://ostechnix.com/wp-content/uploads/2022/05/Login-To-Fedora-As-Root-User.png
[9]: https://ostechnix.com/how-to-reset-root-user-password-in-centos-8-rhel-8/

View File

@ -0,0 +1,130 @@
[#]: subject: "Structured Data Processing with Spark SQL"
[#]: via: "https://www.opensourceforu.com/2022/05/structured-data-processing-with-spark-sql/"
[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
用 Spark SQL 进行结构化数据处理
======
Spark SQL 是 Spark 生态系统中处理结构化格式数据的模块。它在内部使用 Spark Core API 进行处理,但对用户的使用进行了抽象。这篇文章深入浅出,告诉你 Spark SQL 3.x 的新内容。
![][1]
有了 Spark SQL用户还可以编写 SQL 风格的查询。这对于精通结构化查询语言或 SQL 的广大用户群体来说基本上是很有帮助的。用户也将能够在结构化数据上编写交互式和临时性的查询。Spark SQL 弥补了弹性分布式数据集RDD和关系表之间的差距。RDD 是 Spark 的基本数据结构。它将数据作为分布式对象存储在适合并行处理的节点集群中。RDD 很适合底层处理,但在运行时很难调试,程序员不能自动推断 schema。另外RDD 没有内置的优化功能。Spark SQL 提供了 DataFrames 和数据集来解决这些问题。
Spark SQL 可以使用现有的 Hive 元存储、SerDes 和 UDFs。它可以使用 JDBC/ODBC 连接到现有的 BI 工具。
### 数据源
大数据处理通常需要处理不同的文件类型和数据源关系型和非关系型的能力。Spark SQL 支持一个统一的 DataFrame 接口来处理不同类型的源,如下所示。
*文件:*
* CSV
* Text
* JSON
* XML
*JDBC/ODBC*
* MySQL
* Oracle
* Postgres
*带 schema 的文件:*
* AVRO
* Parquet
*Hive 表:*
* Spark SQL 也支持读写存储在 Apache Hive 中的数据。
通过 DataFrame用户可以无缝地读取这些多样化的数据源并对其进行转换/连接。
### Spark SQL 3.x 的新内容
在以前的版本中Spark 2.x查询计划是基于启发式规则和成本估算的。从解析到逻辑和物理查询计划最后到优化的过程是连续的。这些版本对转换和行动的运行时特性几乎没有可见性。因此由于以下原因查询计划是次优的
* 缺失和过时的统计数据
* 次优的启发式方法
* 错误的成本估计
Spark 3.x 通过使用运行时数据来迭代改进查询计划和优化,增强了这个过程。前一阶段的运行时统计数据被用来优化后续阶段的查询计划。这里有一个反馈回路,有助于重新规划和重新优化执行计划。
![Figure 1: Query planning][2]
#### 自适应查询执行AQE
查询被改变为逻辑计划,最后变成物理计划。这里的概念是“重新优化”。它利用前一阶段的可用数据,为后续阶段重新优化。正因为如此,整个查询的执行要快得多。
AQE 可以通过设置 SQL 配置来启用如下所示Spark 3.0 中默认为 false
```
spark.conf.set(“spark.sql.adaptive.enabled”,true)
```
#### 动态合并 shuffle 分区
Spark 在 shuffle 操作后确定最佳的分区数量。在 AQE 中Spark 使用默认的分区数,即 200 个。这可以通过配置来启用。
```
spark.conf.set(“spark.sql.adaptive.coalescePartitions.enabled”,true)
```
#### 动态切换 join 策略
广播哈希是最好的连接操作。如果其中一个数据集很小Spark 可以动态地切换到广播 join而不是在网络上 shuffe 大量的数据。
#### 动态优化倾斜 join
如果数据分布不均匀数据会出现倾斜会有一些大的分区。这些分区占用了大量的时间。Spark 3.x 通过将大分区分割成多个小分区来进行优化。这可以通过设置来启用:
```
spark.conf.set(“spark.sql.adaptive.skewJoin.enabled”,true)
```
![Figure 2: Performance improvement in Spark 3.x (Source: Databricks)][3]
### 其他改进措施
此外Spark SQL 3.x还支持以下内容。
#### 动态分区修剪
3.x 将只读取基于其中一个表的值的相关分区。这消除了解析大表的需要。
#### Join 提示
如果用户对数据有了解,这允许用户指定要使用的 join 策略。这增强了查询的执行过程。
#### 兼容 ANSI SQL
在兼容 Hive 的早期版本的 Spark 中,我们可以在查询中使用某些关键词,这样做是完全可行的。然而,这在 Spark SQL 3 中是不允许的,因为它有完整的 ANSI SQL 支持。例如,“将字符串转换为整数”会在运行时产生异常。它还支持保留关键字。
#### 较新的 Hadoop、Java 和 Scala 版本
从 Spark 3.0 开始,支持 Java 11 和 Scala 2.12。 Java 11 具有更好的原生协调和垃圾校正,从而带来更好的性能。 Scala 2.12 利用了 Java 8 的新特性,优于 2.11。
Spark 3.x 提供了这些现成的有用功能,而无需开发人员操心。这将显着提高 Spark 的整体性能。
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/05/structured-data-processing-with-spark-sql/
作者:[Phani Kiran][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/phani-kiran/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Spark-SQL-Data-cluster.jpg
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-1-Query-planning.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/04/Figure-2-Performance-improvement-in-Spark-3.x-Source-Databricks.jpg

View File

@ -0,0 +1,204 @@
[#]: subject: "How to rename a branch, delete a branch, and find the author of a branch in Git"
[#]: via: "https://opensource.com/article/22/5/git-branch-rename-delete-find-author"
[#]: author: "Agil Antony https://opensource.com/users/agantony"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Git 教程:重命名分支、删除分支、查看分支作者
======
掌握管理本地/远程分支等最常见的 Git 任务。
![树枝][1]
图源:[Erik Fitzpatrick][2][CC BY-SA 4.0][3]
Git 的主要优势之一就是它能够将工作“分叉”到不同的分支中。
如果只有你一个人在使用某个存储库分支的好处是有限的。但是一旦你开始与许多其他贡献者一起工作分支就变得必不可少。Git 的分支机制允许多人同时处理一个项目,甚至是同一个文件。用户可以引入不同的功能,彼此独立,然后稍后将更改合并回主分支。那些专门为一个目的创建的分支,有时也被称为主题分支,例如添加新功能或修复已知错误。
当你开始使用分支,了解如何管理它们会很有帮助。以下是开发者在现实世界中使用 Git 分支执行的最常见任务。
### 重命名分支
有时候,你或许会错误地命名了一个分支,或者你会想要在内容合并到主分支后,使用同一个分支在不同的错误或任务之间切换。在这种情况下,重命名主题分支就会很有帮助。
#### 重命名本地分支
1. 重命名本地分支:
```
$ git branch -m <old_branch_name> <new_branch_name>
```
当然,这只会重命名您的分支副本。如果远程 Git 服务器上存在该分支,请继续执行后续步骤。
2. 推送这个新分支,从而创建一个新的远程分支:
```
$ git push origin <new_branch_name>
```
3. 删除旧的远程分支:
```
$ git push origin -d -f <old_branch_name>
```
#### 重命名当前分支
当你要重命名的分支恰好是当前分支时,你不需要指定旧的分支名称。
1. 重命名当前分支:
```
$ git branch -m <new_branch_name>
```
2. 推送新分支,从而创建一个新的远程分支:
```
$ git push origin <new_branch_name>
```
3. 删除旧的远程分支:
```
$ git push origin -d -f <old_branch_name>
```
### 使用 Git 删除本地和远程分支
为了保持存储库的整洁,通常建议你在确保已将内容合并到主分支后,删除临时分支。
#### 删除本地分支
删除本地分支只会删除系统上存在的该分支的副本。如果分支已经被推送到远程存储库,它仍然可供使用该存储库的每个人使用。
1. 签出存储库的主分支(例如 `main``master`
```
$ git checkout <central_branch_name>
```
2. 列出所有分支(本地和远程):
```
$ git branch -a
```
3. 删除本地分支:
```
$ git branch -d <name_of_the_branch>
```
要删除所有本地主题分支并仅保留 `main` 分支:
```
$ git branch | grep -v main | xargs git branch -d
```
#### 删除远程分支
删除远程分支只会删除远程服务器上存在的该分支的副本。如果你想撤销删除,也可以将其重新推送到远程(例如 GitHub只要你还有本地副本即可。
1. 签出存储库的主分支(通常是 `main``master`
```
$ git checkout <central_branch_name>
```
2. 列出所有分支(本地和远程):
```
$ git branch -a
```
3. 删除远程分支:
```
$ git push origin -d <name_of_the_branch>
```
### 查看远程主题分支的作者
如果你是存储库管理员,你可能会有这个需求,以便通知未使用分支的作者它将被删除。
1. 签出存储库的主分支(例如 `main``master`
```
$ git checkout <central_branch_name>
```
2. 删除不存在的远程分支的分支引用:
```
$ git remote prune origin
```
3. 列出存储库中所有远程主题分支的作者,使用 `--format` 选项,并配合特殊的选择器来只打印你想要的信息(在本例中,`%(authorname)` 和 `%(refname)` 分别代表作者名字和分支名称)
```
$ git for-each-ref --sort=authordate --format='%(authorname) %(refname)' refs/remotes
```
示例输出:
```
tux  refs/remotes/origin/dev
agil refs/remotes/origin/main
```
你可以添加更多格式,包括颜色编码和字符串操作,以便于阅读:
```
$ git for-each-ref --sort=authordate \
--format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p)%(align:25,left)%(color:yellow) %(authorname)%(end)%(color:reset)%(refname:strip=3)' \
refs/remotes
```
示例输出:
```
01/16/2019 03:18 PM tux      dev
05/15/2022 10:35 PM agil     main
```
你可以使用 `grep` 获取特定远程主题分支的作者:
```
$ git for-each-ref --sort=authordate \
--format='%(authorname) %(refname)' \
refs/remotes | grep <topic_branch_name>
```
### 熟练运用分支
Git 分支的工作方式存在细微差别,具体取决于你想要分叉代码库的位置、存储库维护者如何管理分支、<ruby>压缩<rt>squashing</rt></ruby><ruby>变基<rt>rebasing</rt></ruby>等。若想进一步了解该主题,你可以阅读下面这三篇文章:
* [《用乐高来类比解释 Git 分支》][4]作者Seth Kenlon
* [《我的 Git push 命令的安全使用指南》][5]作者Noaa Barki
* [《Git 分支指南》][6]作者Kedar Vijay Kulkarni
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/5/git-branch-rename-delete-find-author
作者:[Agil Antony][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://opensource.com/users/agantony
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/tree-branches.jpg
[2]: https://www.flickr.com/photos/22244945@N00/3353319002
[3]: https://creativecommons.org/licenses/by-sa/4.0/
[4]: https://opensource.com/article/22/4/git-branches
[5]: https://opensource.com/article/22/4/git-push
[6]: https://opensource.com/article/18/5/git-branching